From f96c83cc846872fca844054ae0976ab2a062dba2 Mon Sep 17 00:00:00 2001 From: Zack Rauen Date: Wed, 26 Jun 2019 15:23:07 -0400 Subject: [PATCH] more strings --- css/main.css | 6 ++++++ js/main.js | 28 ++++++++++++++++++++-------- src/data/strings.js | 10 ++++++++++ src/ui/modals.js | 4 ++-- src/ui/settings.js | 11 ++--------- src/ui/settings/attribution.jsx | 22 ++++++++++++++++++++++ src/ui/settings/contentlist.jsx | 13 ++----------- src/ui/settings/plugincard.js | 25 ++++++++++++++++--------- src/ui/settings/themecard.js | 19 +++++++++++++------ 9 files changed, 93 insertions(+), 45 deletions(-) create mode 100644 src/ui/settings/attribution.jsx diff --git a/css/main.css b/css/main.css index c286a88f..45fada6e 100644 --- a/css/main.css +++ b/css/main.css @@ -171,6 +171,12 @@ background-color: rgb(46,154,74); } +.bd-version { + font-size: 12px; + font-weight: 600; + color: #72767d; + padding: 2px 10px; +} diff --git a/js/main.js b/js/main.js index d198dc28..202642ed 100644 --- a/js/main.js +++ b/js/main.js @@ -335,7 +335,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n en: {\n Panels: {\n plugins: \"Plugins\",\n themes: \"Themes\",\n customcss: \"Custom CSS\"\n },\n Collections: {\n settings: {\n name: \"Settings\",\n general: {\n name: \"General\",\n emotes: {\n name: \"Emote System\",\n note: \"Enables BD's emote system\"\n },\n publicServers: {\n name: \"Public Servers\",\n note: \"Display public servers button\"\n },\n voiceDisconnect: {\n name: \"Voice Disconnect\",\n note: \"Disconnect from voice server when closing Discord\"\n },\n twentyFourHour: {\n name: \"24-Hour Timestamps\",\n note: \"Hides channels when in minimal mode\"\n },\n classNormalizer: {\n name: \"Normalize Classes\",\n note: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Show Toasts\",\n note: \"Shows a small notification for important information\"\n }\n },\n appearance: {\n name: \"Appearance\",\n voiceMode: {\n name: \"Voice Mode\",\n note: \"Hides everything that isn't voice chat\"\n },\n minimalMode: {\n name: \"Minimal Mode\",\n note: \"Hide elements and reduce the size of elements\"\n },\n hideChannels: {\n name: \"Hide Channels\",\n note: \"Hides channels when in minimal mode\"\n },\n darkMode: {\n name: \"Dark Mode\",\n note: \"Make certain elements dark by default\"\n },\n coloredText: {\n name: \"Colored Text\",\n note: \"Make text colour the same as role color\"\n }\n },\n addons: {\n name: \"Addon Manager\",\n addonErrors: {\n name: \"Show Addon Errors\",\n note: \"Shows a modal with plugin/theme errors\"\n },\n autoScroll: {\n name: \"Scroll To Settings\",\n note: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\"\n },\n autoReload: {\n name: \"Automatic Loading\",\n note: \"Automatically loads, reloads, and unloads plugins and themes\"\n }\n },\n customcss: {\n name: \"Custom CSS\",\n customcss: {\n name: \"Custom CSS\",\n note: \"Enables the Custom CSS tab\"\n },\n liveUpdate: {\n name: \"Live Update\",\n note: \"Updates the css as you type\"\n },\n startDetached: {\n name: \"Start Detached\",\n note: \"Clicking the Custom CSS tab opens the editor in a separate window\"\n },\n nativeOpen: {\n name: \"Open in Native Editor\",\n note: \"Clicking the Custom CSS tab opens your custom css in your native editor\"\n }\n },\n developer: {\n name: \"Developer Settings\",\n developerMode: {\n name: \"Developer Mode\",\n note: \"Allows activating debugger when pressing F8\"\n },\n copySelector: {\n name: \"Copy Selector\",\n note: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\"\n }\n },\n window: {\n name: \"Window Preferences\",\n transparency: {\n name: \"Enable Transparency\",\n note: \"Enables the main window to be see-through (requires restart)\"\n },\n frame: {\n name: \"Window Frame\",\n note: \"Adds the native os window frame to the main window\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"General\",\n download: {\n name: \"Download Emotes\",\n note: \"Download emotes once a week to stay up to date\"\n },\n emoteMenu: {\n name: \"Emote Menu\",\n note: \"Show Twitch/Favourite emotes in emote menu\"\n },\n hideEmojiMenu: {\n name: \"Hide Emoji Menu\",\n note: \"Hides Discord's emoji menu when using emote menu\"\n },\n autoCaps: {\n name: \"Emote Autocapitalization\",\n note: \"Autocapitalize emote commands\"\n },\n showNames: {\n name: \"Show Names\",\n note: \"Show emote names on hover\"\n },\n modifiers: {\n name: \"Show Emote Modifiers\",\n note: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animate On Hover\",\n note: \"Only animate the emote modifiers on hover\"\n }\n },\n categories: {\n name: \"Categories\",\n twitch: {\n name: \"Twitch\",\n note: \"Show Twitch global & subscriber emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Show emotes from FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Show emotes from BTTV\"\n }\n }\n }\n },\n Emotes: {\n downloading: \"Downloading emotes in the background do not reload.\",\n downloaded: \"All emotes successfully downloaded.\",\n clearEmotes: \"Clear Emote Data\",\n favoriteAction: \"Favorite!\"\n },\n CustomCSS: {\n confirmationText: \"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.\",\n update: \"Update\",\n save: \"Save\",\n openNative: \"Open in System Editor\",\n openDetached: \"Detach Window\",\n settings: \"Editor Settings\",\n editorTitle: \"Custom CSS Editor\"\n },\n PublicServers: {\n button: \"public\",\n join: \"Join\",\n joining: \"Joining\",\n joined: \"Joined\",\n loading: \"Loading\",\n loadMore: \"Load More\",\n notConnected: \"Not connected to DiscordServers.com!\",\n search: \"Search\",\n connect: \"Connect\",\n reconnect: \"Reconnect\",\n categories: \"Categories\",\n connection: \"Connected as: {{username}}#{{discriminator}}\",\n results: \"Showing {{start}}-{{end}} of {{total}} results in {{category}}\",\n query: \"for {{query}}\"\n },\n Modals: {\n confirmClose: \"Are You Sure?\",\n okay: \"Okay\",\n cancel: \"Cancel\",\n name: \"Name\",\n message: \"Message\",\n error: \"Error\",\n addonErrors: \"Addon Errors\"\n }\n },\n es: {\n Collections: {\n settings: {\n name: \"Ajustes\",\n addons: {\n addonErrors: {\n name: \"Mostrar Errores de Addons\"\n }\n }\n }\n }\n },\n sv: {\n Panels: {\n plugins: \"Tillägg\",\n themes: \"Teman\",\n customcss: \"Egen CSS\"\n },\n Collections: {\n settings: {\n name: \"Inställningar\",\n general: {\n name: \"Generellt\",\n emotes: {\n name: \"Emotessystem\",\n note: \"Aktiverar BD's emotessystem\"\n },\n publicServers: {\n name: \"Publika Servrar\",\n note: \"Visa knappen för publika servrar\"\n },\n voiceDisconnect: {\n name: \"Lämna Röst\",\n note: \"Lämna röstsamtal när Discord stängs ner\"\n },\n twentyFourHour: {\n name: \"24-Timmars Tidsstämpel\",\n note: \"Visar 24-timmars tidsstämplar istället för AM/PM\"\n },\n classNormalizer: {\n name: \"Normalisera Klasser\",\n note: \"Lägger till statiska klasser för att underlätta teman (ex. lägger till .da-channels på .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Visa Toasts\",\n note: \"Visar en liten notification för viktig information\"\n }\n },\n appearance: {\n name: \"Utseende\",\n voiceMode: {\n name: \"Röstläge\",\n note: \"Gömmer allt förutom röstchatt\"\n },\n minimalMode: {\n name: \"Minimalt Läge\",\n note: \"Gömmer och förminskar komponenter\"\n },\n hideChannels: {\n name: \"Göm Kanaler\",\n note: \"Gömmer kanaler när minimalt läge är aktiverat\"\n },\n darkMode: {\n name: \"Mörkt Läge\",\n note: \"Gör vissa komponenter mörka\"\n },\n coloredText: {\n name: \"Färgad Text\",\n note: \"Gör att text får samma färg som rollfärgen\"\n }\n },\n addons: {\n name: \"Tilläggshanterare\",\n addonErrors: {\n name: \"Visa tilläggsfel\",\n note: \"Visar en modal med tillägg- och temafel\"\n },\n autoScroll: {\n name: \"Skrolla till inställningar Scroll To Settings\",\n note: \"Skrollar automatisks till ett tilläggs inställningar när knappen är tryckt (endast om inställningarna är utanför vy)\"\n },\n autoReload: {\n name: \"Automatisk Laddning\",\n note: \"Laddar automatisk in, om och ur tillägg och teman\"\n }\n },\n customcss: {\n name: \"Egen CSS\",\n customcss: {\n name: \"Egen CSS\",\n note: \"Aktiverar \\\"Egen CSS\\\"-fliken\"\n },\n liveUpdate: {\n name: \"Uppdatera Direkt\",\n note: \"Uppdaterar css allteftersom du skriver\"\n },\n startDetached: {\n name: \"Starta Frånkopplad\",\n note: \"Öppnar CSS redigeraren i ett separat fönster när \\\"Egen CSS\\\"-fliken klickas\"\n },\n nativeOpen: {\n name: \"Öppna I Standardredigerare\",\n note: \"Öppnar CSS filen i operativsystemets standardredigerare när \\\"Egen CSS\\\"-fliken klickas\"\n }\n },\n developer: {\n name: \"Utvecklarinställningar\",\n developerMode: {\n name: \"Utvecklarläge\",\n note: \"Gör det möjligt att aktivera avlusare med F8\"\n },\n copySelector: {\n name: \"Kopiera Selektor\",\n note: \"Lägger till valet \\\"Kopiera Selektor\\\" i kontext menyn när utvecklarläge är aktiverat\"\n }\n },\n window: {\n name: \"Fönsterinställningar\",\n transparency: {\n name: \"Aktivera Genomskinlighet\",\n note: \"Gör att huvudfönstret blir genomskinligt (kräver omstart)\"\n },\n frame: {\n name: \"Fönsterram\",\n note: \"Lägger till operativsystemets standard fönsterram runt huvudfönstret\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"Generellt\",\n download: {\n name: \"Ladda Ner Emotes\",\n note: \"Ladda ner emotes en gång i veckan för att hålla sig uppdaterad\"\n },\n emoteMenu: {\n name: \"Emote Meny\",\n note: \"Visa Twitch/Favorit emotes i emote meny\"\n },\n hideEmojiMenu: {\n name: \"Gömmer Emoji Meny\",\n note: \"Gömmer Discord's emoji meny när emote meny är aktiverad\"\n },\n autoCaps: {\n name: \"Automatiskt Stor Bokstav I Emotes\",\n note: \"Gör automatiskt stor bokstav i emote kommandon\"\n },\n showNames: {\n name: \"Visa namn\",\n note: \"Visa namn när musen hålls över en emote\"\n },\n modifiers: {\n name: \"Visa Emote Modifierare\",\n note: \"Aktivera emote modifierare (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animera När Musen Hålls Över\",\n note: \"Animera endast emote midiferare när musen hålls över emoten\"\n }\n },\n categories: {\n name: \"Kategorier\",\n twitch: {\n name: \"Twitch\",\n note: \"Visa Twitch global & prenumerant emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Visa emotes från FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Visa emotes från BTTV\"\n }\n }\n }\n },\n Emotes: {\n downloading: \"Laddar ner emotes i backgrunden, ladda inte om\",\n downloaded: \"Alla emotes laddades ner utan problem.\",\n clearEmotes: \"Rensa Emote Data\",\n favoriteAction: \"Favorit!\"\n },\n CustomCSS: {\n confirmationText: \"Du har osparade ändringar av egna CSS:en. Alla ändringar kommer försvinna om du stänger det här fönstret\",\n update: \"Uppdatera\",\n save: \"Spara\",\n openNative: \"Öppna I Standardredigerare\",\n openDetached: \"Koppla Loss Fönster\",\n settings: \"Inställningar för redigerare\",\n editorTitle: \"Egen CSS Redigerare\"\n },\n PublicServers: {\n button: \"Publik\",\n join: \"Gå med\",\n joining: \"Går med\",\n joined: \"Gick med\",\n loading: \"Laddar\",\n loadMore: \"ladda mer\",\n notConnected: \"Ingen anslutning till DiscordServers.com!\",\n search: \"Sök\",\n connect: \"Anslut\",\n reconnect: \"Återanslut\",\n categories: \"Kategorier\",\n connection: \"Ansluten som: {{username}}#{{discriminator}}\",\n results: \"Visar {{start}}-{{end}} av {{total}} resultat i {{category}}\",\n query: \"för {{query}}\"\n },\n Modals: {\n confirmClose: \"Är du säker?\",\n okay: \"Okej\",\n cancel: \"Avbryt\",\n name: \"Namn\",\n message: \"Meddelande\",\n error: \"Fel\",\n addonErrors: \"Tilläggsfel\"\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc3RyaW5ncy5qcz9iYzcxIl0sIm5hbWVzIjpbImVuIiwiUGFuZWxzIiwicGx1Z2lucyIsInRoZW1lcyIsImN1c3RvbWNzcyIsIkNvbGxlY3Rpb25zIiwic2V0dGluZ3MiLCJuYW1lIiwiZ2VuZXJhbCIsImVtb3RlcyIsIm5vdGUiLCJwdWJsaWNTZXJ2ZXJzIiwidm9pY2VEaXNjb25uZWN0IiwidHdlbnR5Rm91ckhvdXIiLCJjbGFzc05vcm1hbGl6ZXIiLCJzaG93VG9hc3RzIiwiYXBwZWFyYW5jZSIsInZvaWNlTW9kZSIsIm1pbmltYWxNb2RlIiwiaGlkZUNoYW5uZWxzIiwiZGFya01vZGUiLCJjb2xvcmVkVGV4dCIsImFkZG9ucyIsImFkZG9uRXJyb3JzIiwiYXV0b1Njcm9sbCIsImF1dG9SZWxvYWQiLCJsaXZlVXBkYXRlIiwic3RhcnREZXRhY2hlZCIsIm5hdGl2ZU9wZW4iLCJkZXZlbG9wZXIiLCJkZXZlbG9wZXJNb2RlIiwiY29weVNlbGVjdG9yIiwid2luZG93IiwidHJhbnNwYXJlbmN5IiwiZnJhbWUiLCJkb3dubG9hZCIsImVtb3RlTWVudSIsImhpZGVFbW9qaU1lbnUiLCJhdXRvQ2FwcyIsInNob3dOYW1lcyIsIm1vZGlmaWVycyIsImFuaW1hdGVPbkhvdmVyIiwiY2F0ZWdvcmllcyIsInR3aXRjaCIsImZmeiIsImJ0dHYiLCJFbW90ZXMiLCJkb3dubG9hZGluZyIsImRvd25sb2FkZWQiLCJjbGVhckVtb3RlcyIsImZhdm9yaXRlQWN0aW9uIiwiQ3VzdG9tQ1NTIiwiY29uZmlybWF0aW9uVGV4dCIsInVwZGF0ZSIsInNhdmUiLCJvcGVuTmF0aXZlIiwib3BlbkRldGFjaGVkIiwiZWRpdG9yVGl0bGUiLCJQdWJsaWNTZXJ2ZXJzIiwiYnV0dG9uIiwiam9pbiIsImpvaW5pbmciLCJqb2luZWQiLCJsb2FkaW5nIiwibG9hZE1vcmUiLCJub3RDb25uZWN0ZWQiLCJzZWFyY2giLCJjb25uZWN0IiwicmVjb25uZWN0IiwiY29ubmVjdGlvbiIsInJlc3VsdHMiLCJxdWVyeSIsIk1vZGFscyIsImNvbmZpcm1DbG9zZSIsIm9rYXkiLCJjYW5jZWwiLCJtZXNzYWdlIiwiZXJyb3IiLCJlcyIsInN2Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFlO0FBQ1hBLElBQUUsRUFBRTtBQUNBQyxVQUFNLEVBQUU7QUFDSkMsYUFBTyxFQUFFLFNBREw7QUFFSkMsWUFBTSxFQUFFLFFBRko7QUFHSkMsZUFBUyxFQUFFO0FBSFAsS0FEUjtBQU1BQyxlQUFXLEVBQUU7QUFDVEMsY0FBUSxFQUFFO0FBQ05DLFlBQUksRUFBRSxVQURBO0FBRU5DLGVBQU8sRUFBRTtBQUNMRCxjQUFJLEVBQUUsU0FERDtBQUVMRSxnQkFBTSxFQUFFO0FBQ0pGLGdCQUFJLEVBQUUsY0FERjtBQUVKRyxnQkFBSSxFQUFFO0FBRkYsV0FGSDtBQU1MQyx1QkFBYSxFQUFFO0FBQ1hKLGdCQUFJLEVBQUUsZ0JBREs7QUFFWEcsZ0JBQUksRUFBRTtBQUZLLFdBTlY7QUFVTEUseUJBQWUsRUFBRTtBQUNiTCxnQkFBSSxFQUFFLGtCQURPO0FBRWJHLGdCQUFJLEVBQUU7QUFGTyxXQVZaO0FBY0xHLHdCQUFjLEVBQUU7QUFDWk4sZ0JBQUksRUFBRSxvQkFETTtBQUVaRyxnQkFBSSxFQUFFO0FBRk0sV0FkWDtBQWtCTEkseUJBQWUsRUFBRTtBQUNiUCxnQkFBSSxFQUFFLG1CQURPO0FBRWJHLGdCQUFJLEVBQUU7QUFGTyxXQWxCWjtBQXNCTEssb0JBQVUsRUFBRTtBQUNSUixnQkFBSSxFQUFFLGFBREU7QUFFUkcsZ0JBQUksRUFBRTtBQUZFO0FBdEJQLFNBRkg7QUE2Qk5NLGtCQUFVLEVBQUU7QUFDUlQsY0FBSSxFQUFFLFlBREU7QUFFUlUsbUJBQVMsRUFBRTtBQUNQVixnQkFBSSxFQUFFLFlBREM7QUFFUEcsZ0JBQUksRUFBRTtBQUZDLFdBRkg7QUFNUlEscUJBQVcsRUFBRTtBQUNUWCxnQkFBSSxFQUFFLGNBREc7QUFFVEcsZ0JBQUksRUFBRTtBQUZHLFdBTkw7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QyxVQUFNLEVBQUU7QUFDSkMsa0JBQVksRUFBRSxjQURWO0FBRUpDLFVBQUksRUFBRSxNQUZGO0FBR0pDLFlBQU0sRUFBRSxRQUhKO0FBSUpwRSxVQUFJLEVBQUUsTUFKRjtBQUtKcUUsYUFBTyxFQUFFLFlBTEw7QUFNSkMsV0FBSyxFQUFFLEtBTkg7QUFPSnRELGlCQUFXLEVBQUU7QUFQVDtBQXJNUjtBQTVOTyxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvc3RyaW5ncy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICAgIGVuOiB7XHJcbiAgICAgICAgUGFuZWxzOiB7XHJcbiAgICAgICAgICAgIHBsdWdpbnM6IFwiUGx1Z2luc1wiLFxyXG4gICAgICAgICAgICB0aGVtZXM6IFwiVGhlbWVzXCIsXHJcbiAgICAgICAgICAgIGN1c3RvbWNzczogXCJDdXN0b20gQ1NTXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIENvbGxlY3Rpb25zOiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIlNldHRpbmdzXCIsXHJcbiAgICAgICAgICAgICAgICBnZW5lcmFsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHZW5lcmFsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgU3lzdGVtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlcyBCRCdzIGVtb3RlIHN5c3RlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBwdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUHVibGljIFNlcnZlcnNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJEaXNwbGF5IHB1YmxpYyBzZXJ2ZXJzIGJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB2b2ljZURpc2Nvbm5lY3Q6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWb2ljZSBEaXNjb25uZWN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzY29ubmVjdCBmcm9tIHZvaWNlIHNlcnZlciB3aGVuIGNsb3NpbmcgRGlzY29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB0d2VudHlGb3VySG91cjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIjI0LUhvdXIgVGltZXN0YW1wc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIGNoYW5uZWxzIHdoZW4gaW4gbWluaW1hbCBtb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTm9ybWFsaXplcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk5vcm1hbGl6ZSBDbGFzc2VzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWRkcyBzdGFibGUgY2xhc3NlcyB0byBlbGVtZW50cyB0byBoZWxwIHRoZW1lcy4gKGUuZy4gYWRkcyAuZGEtY2hhbm5lbHMgdG8gLmNoYW5uZWxzLUllMmw2QSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0czoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgVG9hc3RzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvd3MgYSBzbWFsbCBub3RpZmljYXRpb24gZm9yIGltcG9ydGFudCBpbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFwcGVhcmFuY2VcIixcclxuICAgICAgICAgICAgICAgICAgICB2b2ljZU1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWb2ljZSBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgZXZlcnl0aGluZyB0aGF0IGlzbid0IHZvaWNlIGNoYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWluaW1hbE1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJNaW5pbWFsIE1vZGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlIGVsZW1lbnRzIGFuZCByZWR1Y2UgdGhlIHNpemUgb2YgZWxlbWVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGlkZUNoYW5uZWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiSGlkZSBDaGFubmVsc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIGNoYW5uZWxzIHdoZW4gaW4gbWluaW1hbCBtb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGRhcmtNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGFyayBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTWFrZSBjZXJ0YWluIGVsZW1lbnRzIGRhcmsgYnkgZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcmVkVGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkNvbG9yZWQgVGV4dFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIk1ha2UgdGV4dCBjb2xvdXIgdGhlIHNhbWUgYXMgcm9sZSBjb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGFkZG9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQWRkb24gTWFuYWdlclwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGFkZG9uRXJyb3JzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBBZGRvbiBFcnJvcnNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93cyBhIG1vZGFsIHdpdGggcGx1Z2luL3RoZW1lIGVycm9yc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvU2Nyb2xsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2Nyb2xsIFRvIFNldHRpbmdzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQXV0by1zY3JvbGxzIHRvIGEgcGx1Z2luJ3Mgc2V0dGluZ3Mgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQgKG9ubHkgaWYgb3V0IG9mIHZpZXcpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9SZWxvYWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBdXRvbWF0aWMgTG9hZGluZ1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkF1dG9tYXRpY2FsbHkgbG9hZHMsIHJlbG9hZHMsIGFuZCB1bmxvYWRzIHBsdWdpbnMgYW5kIHRoZW1lc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjdXN0b21jc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkN1c3RvbSBDU1NcIixcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21jc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDdXN0b20gQ1NTXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlcyB0aGUgQ3VzdG9tIENTUyB0YWJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbGl2ZVVwZGF0ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkxpdmUgVXBkYXRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVXBkYXRlcyB0aGUgY3NzIGFzIHlvdSB0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RGV0YWNoZWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTdGFydCBEZXRhY2hlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkNsaWNraW5nIHRoZSBDdXN0b20gQ1NTIHRhYiBvcGVucyB0aGUgZWRpdG9yIGluIGEgc2VwYXJhdGUgd2luZG93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBuYXRpdmVPcGVuOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiT3BlbiBpbiBOYXRpdmUgRWRpdG9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQ2xpY2tpbmcgdGhlIEN1c3RvbSBDU1MgdGFiIG9wZW5zIHlvdXIgY3VzdG9tIGNzcyBpbiB5b3VyIG5hdGl2ZSBlZGl0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkZXZlbG9wZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRldmVsb3BlciBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRldmVsb3Blck1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZXZlbG9wZXIgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFsbG93cyBhY3RpdmF0aW5nIGRlYnVnZ2VyIHdoZW4gcHJlc3NpbmcgRjhcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29weVNlbGVjdG9yOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ29weSBTZWxlY3RvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgYSBcXFwiQ29weSBTZWxlY3RvclxcXCIgb3B0aW9uIHRvIGNvbnRleHQgbWVudXMgd2hlbiBkZXZlbG9wZXIgbW9kZSBpcyBhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB3aW5kb3c6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIldpbmRvdyBQcmVmZXJlbmNlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW5jeToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVuYWJsZSBUcmFuc3BhcmVuY3lcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJFbmFibGVzIHRoZSBtYWluIHdpbmRvdyB0byBiZSBzZWUtdGhyb3VnaCAocmVxdWlyZXMgcmVzdGFydClcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhbWU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJXaW5kb3cgRnJhbWVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBZGRzIHRoZSBuYXRpdmUgb3Mgd2luZG93IGZyYW1lIHRvIHRoZSBtYWluIHdpbmRvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlbW90ZXM6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICBnZW5lcmFsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHZW5lcmFsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEb3dubG9hZCBFbW90ZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJEb3dubG9hZCBlbW90ZXMgb25jZSBhIHdlZWsgdG8gc3RheSB1cCB0byBkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGVtb3RlTWVudToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3RlIE1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IFR3aXRjaC9GYXZvdXJpdGUgZW1vdGVzIGluIGVtb3RlIG1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGlkZUVtb2ppTWVudToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkhpZGUgRW1vamkgTWVudVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIERpc2NvcmQncyBlbW9qaSBtZW51IHdoZW4gdXNpbmcgZW1vdGUgbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvQ2Fwczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3RlIEF1dG9jYXBpdGFsaXphdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkF1dG9jYXBpdGFsaXplIGVtb3RlIGNvbW1hbmRzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dOYW1lczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgTmFtZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IGVtb3RlIG5hbWVzIG9uIGhvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgRW1vdGUgTW9kaWZpZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlIGVtb3RlIG1vZHMgKGZsaXAsIHNwaW4sIHB1bHNlLCBzcGluMiwgc3BpbjMsIDFzcGluLCAyc3BpbiwgM3NwaW4sIHRyLCBibCwgYnIsIHNoYWtlLCBzaGFrZTIsIHNoYWtlMywgZmxhcClcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZU9uSG92ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBbmltYXRlIE9uIEhvdmVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiT25seSBhbmltYXRlIHRoZSBlbW90ZSBtb2RpZmllcnMgb24gaG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjYXRlZ29yaWVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDYXRlZ29yaWVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHdpdGNoOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVHdpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBUd2l0Y2ggZ2xvYmFsICYgc3Vic2NyaWJlciBlbW90ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmZ6OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRnJhbmtlckZhY2VaXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBlbW90ZXMgZnJvbSBGRlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYnR0djoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkJldHRlclRUVlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGVzIGZyb20gQlRUVlwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbW90ZXM6IHtcclxuICAgICAgICAgICAgZG93bmxvYWRpbmc6IFwiRG93bmxvYWRpbmcgZW1vdGVzIGluIHRoZSBiYWNrZ3JvdW5kIGRvIG5vdCByZWxvYWQuXCIsXHJcbiAgICAgICAgICAgIGRvd25sb2FkZWQ6IFwiQWxsIGVtb3RlcyBzdWNjZXNzZnVsbHkgZG93bmxvYWRlZC5cIixcclxuICAgICAgICAgICAgY2xlYXJFbW90ZXM6IFwiQ2xlYXIgRW1vdGUgRGF0YVwiLFxyXG4gICAgICAgICAgICBmYXZvcml0ZUFjdGlvbjogXCJGYXZvcml0ZSFcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQ3VzdG9tQ1NTOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvblRleHQ6IFwiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIHRvIHlvdXIgQ3VzdG9tIENTUy4gQ2xvc2luZyB0aGlzIHdpbmRvdyB3aWxsIGxvc2UgYWxsIHRob3NlIGNoYW5nZXMuXCIsXHJcbiAgICAgICAgICAgIHVwZGF0ZTogXCJVcGRhdGVcIixcclxuICAgICAgICAgICAgc2F2ZTogXCJTYXZlXCIsXHJcbiAgICAgICAgICAgIG9wZW5OYXRpdmU6IFwiT3BlbiBpbiBTeXN0ZW0gRWRpdG9yXCIsXHJcbiAgICAgICAgICAgIG9wZW5EZXRhY2hlZDogXCJEZXRhY2ggV2luZG93XCIsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBcIkVkaXRvciBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICBlZGl0b3JUaXRsZTogXCJDdXN0b20gQ1NTIEVkaXRvclwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgICAgIGJ1dHRvbjogXCJwdWJsaWNcIixcclxuICAgICAgICAgICAgam9pbjogXCJKb2luXCIsXHJcbiAgICAgICAgICAgIGpvaW5pbmc6IFwiSm9pbmluZ1wiLFxyXG4gICAgICAgICAgICBqb2luZWQ6IFwiSm9pbmVkXCIsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IFwiTG9hZGluZ1wiLFxyXG4gICAgICAgICAgICBsb2FkTW9yZTogXCJMb2FkIE1vcmVcIixcclxuICAgICAgICAgICAgbm90Q29ubmVjdGVkOiBcIk5vdCBjb25uZWN0ZWQgdG8gRGlzY29yZFNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICBzZWFyY2g6IFwiU2VhcmNoXCIsXHJcbiAgICAgICAgICAgIGNvbm5lY3Q6IFwiQ29ubmVjdFwiLFxyXG4gICAgICAgICAgICByZWNvbm5lY3Q6IFwiUmVjb25uZWN0XCIsXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gICAgICAgICAgICBjb25uZWN0aW9uOiBcIkNvbm5lY3RlZCBhczoge3t1c2VybmFtZX19I3t7ZGlzY3JpbWluYXRvcn19XCIsXHJcbiAgICAgICAgICAgIHJlc3VsdHM6IFwiU2hvd2luZyB7e3N0YXJ0fX0te3tlbmR9fSBvZiB7e3RvdGFsfX0gcmVzdWx0cyBpbiB7e2NhdGVnb3J5fX1cIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiZm9yIHt7cXVlcnl9fVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBNb2RhbHM6IHtcclxuICAgICAgICAgICAgY29uZmlybUNsb3NlOiBcIkFyZSBZb3UgU3VyZT9cIixcclxuICAgICAgICAgICAgb2theTogXCJPa2F5XCIsXHJcbiAgICAgICAgICAgIGNhbmNlbDogXCJDYW5jZWxcIixcclxuICAgICAgICAgICAgbmFtZTogXCJOYW1lXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiTWVzc2FnZVwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCJFcnJvclwiLFxyXG4gICAgICAgICAgICBhZGRvbkVycm9yczogXCJBZGRvbiBFcnJvcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlczoge1xyXG4gICAgICAgIENvbGxlY3Rpb25zOiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkFqdXN0ZXNcIixcclxuICAgICAgICAgICAgICAgIGFkZG9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGFkZG9uRXJyb3JzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTW9zdHJhciBFcnJvcmVzIGRlIEFkZG9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIHN2OiB7XHJcbiAgICAgICAgUGFuZWxzOiB7XHJcbiAgICAgICAgICAgIHBsdWdpbnM6IFwiVGlsbMOkZ2dcIixcclxuICAgICAgICAgICAgdGhlbWVzOiBcIlRlbWFuXCIsXHJcbiAgICAgICAgICAgIGN1c3RvbWNzczogXCJFZ2VuIENTU1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDb2xsZWN0aW9uczoge1xyXG4gICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJJbnN0w6RsbG5pbmdhclwiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJlbGx0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGVzc3lzdGVtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWt0aXZlcmFyIEJEJ3MgZW1vdGVzc3lzdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJQdWJsaWthIFNlcnZyYXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIGtuYXBwZW4gZsO2ciBwdWJsaWthIHNlcnZyYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VEaXNjb25uZWN0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTMOkbW5hIFLDtnN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkbW5hIHLDtnN0c2FtdGFsIG7DpHIgRGlzY29yZCBzdMOkbmdzIG5lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB0d2VudHlGb3VySG91cjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIjI0LVRpbW1hcnMgVGlkc3N0w6RtcGVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYXIgMjQtdGltbWFycyB0aWRzc3TDpG1wbGFyIGlzdMOkbGxldCBmw7ZyIEFNL1BNXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTm9ybWFsaXplcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk5vcm1hbGlzZXJhIEtsYXNzZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMw6RnZ2VyIHRpbGwgc3RhdGlza2Ega2xhc3NlciBmw7ZyIGF0dCB1bmRlcmzDpHR0YSB0ZW1hbiAoZXguIGzDpGdnZXIgdGlsbCAuZGEtY2hhbm5lbHMgcMOlIC5jaGFubmVscy1JZTJsNkEpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dUb2FzdHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWaXNhIFRvYXN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2FyIGVuIGxpdGVuIG5vdGlmaWNhdGlvbiBmw7ZyIHZpa3RpZyBpbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0c2VlbmRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUsO2c3Rsw6RnZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkfDtm1tZXIgYWxsdCBmw7ZydXRvbSByw7ZzdGNoYXR0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbmltYWxNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTWluaW1hbHQgTMOkZ2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIG9jaCBmw7ZybWluc2thciBrb21wb25lbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoaWRlQ2hhbm5lbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHw7ZtIEthbmFsZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIGthbmFsZXIgbsOkciBtaW5pbWFsdCBsw6RnZSDDpHIgYWt0aXZlcmF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGRhcmtNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTcO2cmt0IEzDpGdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciB2aXNzYSBrb21wb25lbnRlciBtw7Zya2FcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3JlZFRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGw6RyZ2FkIFRleHRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZyIGF0dCB0ZXh0IGbDpXIgc2FtbWEgZsOkcmcgc29tIHJvbGxmw6RyZ2VuXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYWRkb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUaWxsw6RnZ3NoYW50ZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICBhZGRvbkVycm9yczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZpc2EgdGlsbMOkZ2dzZmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYXIgZW4gbW9kYWwgbWVkIHRpbGzDpGdnLSBvY2ggdGVtYWZlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvU2Nyb2xsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2tyb2xsYSB0aWxsIGluc3TDpGxsbmluZ2FyIFNjcm9sbCBUbyBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNrcm9sbGFyIGF1dG9tYXRpc2tzIHRpbGwgZXR0IHRpbGzDpGdncyBpbnN0w6RsbG5pbmdhciBuw6RyIGtuYXBwZW4gw6RyIHRyeWNrdCAoZW5kYXN0IG9tIGluc3TDpGxsbmluZ2FybmEgw6RyIHV0YW5mw7ZyIHZ5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvUmVsb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGlzayBMYWRkbmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkxhZGRhciBhdXRvbWF0aXNrIGluLCBvbSBvY2ggdXIgdGlsbMOkZ2cgb2NoIHRlbWFuXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWNzczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRWdlbiBDU1NcIixcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21jc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFZ2VuIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFrdGl2ZXJhciBcXFwiRWdlbiBDU1NcXFwiLWZsaWtlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBsaXZlVXBkYXRlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVXBwZGF0ZXJhIERpcmVrdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlVwcGRhdGVyYXIgY3NzIGFsbHRlZnRlcnNvbSBkdSBza3JpdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RGV0YWNoZWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTdGFydGEgRnLDpW5rb3BwbGFkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiw5ZwcG5hciBDU1MgcmVkaWdlcmFyZW4gaSBldHQgc2VwYXJhdCBmw7Zuc3RlciBuw6RyIFxcXCJFZ2VuIENTU1xcXCItZmxpa2VuIGtsaWNrYXNcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZU9wZW46IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLDlnBwbmEgSSBTdGFuZGFyZHJlZGlnZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLDlnBwbmFyIENTUyBmaWxlbiBpIG9wZXJhdGl2c3lzdGVtZXRzIHN0YW5kYXJkcmVkaWdlcmFyZSBuw6RyIFxcXCJFZ2VuIENTU1xcXCItZmxpa2VuIGtsaWNrYXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkZXZlbG9wZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0dmVja2xhcmluc3TDpGxsbmluZ2FyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcGVyTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0dmVja2xhcmzDpGdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBkZXQgbcO2amxpZ3QgYXR0IGFrdGl2ZXJhIGF2bHVzYXJlIG1lZCBGOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb3B5U2VsZWN0b3I6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJLb3BpZXJhIFNlbGVrdG9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkZ2dlciB0aWxsIHZhbGV0IFxcXCJLb3BpZXJhIFNlbGVrdG9yXFxcIiBpIGtvbnRleHQgbWVueW4gbsOkciB1dHZlY2tsYXJsw6RnZSDDpHIgYWt0aXZlcmF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgd2luZG93OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGw7Zuc3Rlcmluc3TDpGxsbmluZ2FyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQWt0aXZlcmEgR2Vub21za2lubGlnaGV0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBhdHQgaHV2dWRmw7Zuc3RyZXQgYmxpciBnZW5vbXNraW5saWd0IChrcsOkdmVyIG9tc3RhcnQpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRsO2bnN0ZXJyYW1cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMw6RnZ2VyIHRpbGwgb3BlcmF0aXZzeXN0ZW1ldHMgc3RhbmRhcmQgZsO2bnN0ZXJyYW0gcnVudCBodXZ1ZGbDtm5zdHJldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlbW90ZXM6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICBnZW5lcmFsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHZW5lcmVsbHRcIixcclxuICAgICAgICAgICAgICAgICAgICBkb3dubG9hZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkxhZGRhIE5lciBFbW90ZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMYWRkYSBuZXIgZW1vdGVzIGVuIGfDpW5nIGkgdmVja2FuIGbDtnIgYXR0IGjDpWxsYSBzaWcgdXBwZGF0ZXJhZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlbW90ZU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBNZW55XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBUd2l0Y2gvRmF2b3JpdCBlbW90ZXMgaSBlbW90ZSBtZW55XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhpZGVFbW9qaU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHw7ZtbWVyIEVtb2ppIE1lbnlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIERpc2NvcmQncyBlbW9qaSBtZW55IG7DpHIgZW1vdGUgbWVueSDDpHIgYWt0aXZlcmFkXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9DYXBzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGlza3QgU3RvciBCb2tzdGF2IEkgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBhdXRvbWF0aXNrdCBzdG9yIGJva3N0YXYgaSBlbW90ZSBrb21tYW5kb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd05hbWVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVmlzYSBuYW1uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBuYW1uIG7DpHIgbXVzZW4gaMOlbGxzIMO2dmVyIGVuIGVtb3RlXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZpc2EgRW1vdGUgTW9kaWZpZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBa3RpdmVyYSBlbW90ZSBtb2RpZmllcmFyZSAoZmxpcCwgc3BpbiwgcHVsc2UsIHNwaW4yLCBzcGluMywgMXNwaW4sIDJzcGluLCAzc3BpbiwgdHIsIGJsLCBiciwgc2hha2UsIHNoYWtlMiwgc2hha2UzLCBmbGFwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlT25Ib3Zlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFuaW1lcmEgTsOkciBNdXNlbiBIw6VsbHMgw5Z2ZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBbmltZXJhIGVuZGFzdCBlbW90ZSBtaWRpZmVyYXJlIG7DpHIgbXVzZW4gaMOlbGxzIMO2dmVyIGVtb3RlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkthdGVnb3JpZXJcIixcclxuICAgICAgICAgICAgICAgICAgICB0d2l0Y2g6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIFR3aXRjaCBnbG9iYWwgJiBwcmVudW1lcmFudCBlbW90ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmZ6OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRnJhbmtlckZhY2VaXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBlbW90ZXMgZnLDpW4gRkZaXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGJ0dHY6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIGVtb3RlcyBmcsOlbiBCVFRWXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIEVtb3Rlczoge1xyXG4gICAgICAgICAgICBkb3dubG9hZGluZzogXCJMYWRkYXIgbmVyIGVtb3RlcyBpIGJhY2tncnVuZGVuLCBsYWRkYSBpbnRlIG9tXCIsXHJcbiAgICAgICAgICAgIGRvd25sb2FkZWQ6IFwiQWxsYSBlbW90ZXMgbGFkZGFkZXMgbmVyIHV0YW4gcHJvYmxlbS5cIixcclxuICAgICAgICAgICAgY2xlYXJFbW90ZXM6IFwiUmVuc2EgRW1vdGUgRGF0YVwiLFxyXG4gICAgICAgICAgICBmYXZvcml0ZUFjdGlvbjogXCJGYXZvcml0IVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDdXN0b21DU1M6IHtcclxuICAgICAgICAgICAgY29uZmlybWF0aW9uVGV4dDogXCJEdSBoYXIgb3NwYXJhZGUgw6RuZHJpbmdhciBhdiBlZ25hIENTUzplbi4gQWxsYSDDpG5kcmluZ2FyIGtvbW1lciBmw7Zyc3Zpbm5hIG9tIGR1IHN0w6RuZ2VyIGRldCBow6RyIGbDtm5zdHJldFwiLFxyXG4gICAgICAgICAgICB1cGRhdGU6IFwiVXBwZGF0ZXJhXCIsXHJcbiAgICAgICAgICAgIHNhdmU6IFwiU3BhcmFcIixcclxuICAgICAgICAgICAgb3Blbk5hdGl2ZTogXCLDlnBwbmEgSSBTdGFuZGFyZHJlZGlnZXJhcmVcIixcclxuICAgICAgICAgICAgb3BlbkRldGFjaGVkOiBcIktvcHBsYSBMb3NzIEbDtm5zdGVyXCIsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBcIkluc3TDpGxsbmluZ2FyIGbDtnIgcmVkaWdlcmFyZVwiLFxyXG4gICAgICAgICAgICBlZGl0b3JUaXRsZTogXCJFZ2VuIENTUyBSZWRpZ2VyYXJlXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgYnV0dG9uOiBcIlB1Ymxpa1wiLFxyXG4gICAgICAgICAgICBqb2luOiBcIkfDpSBtZWRcIixcclxuICAgICAgICAgICAgam9pbmluZzogXCJHw6VyIG1lZFwiLFxyXG4gICAgICAgICAgICBqb2luZWQ6IFwiR2ljayBtZWRcIixcclxuICAgICAgICAgICAgbG9hZGluZzogXCJMYWRkYXJcIixcclxuICAgICAgICAgICAgbG9hZE1vcmU6IFwibGFkZGEgbWVyXCIsXHJcbiAgICAgICAgICAgIG5vdENvbm5lY3RlZDogXCJJbmdlbiBhbnNsdXRuaW5nIHRpbGwgRGlzY29yZFNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICBzZWFyY2g6IFwiU8O2a1wiLFxyXG4gICAgICAgICAgICBjb25uZWN0OiBcIkFuc2x1dFwiLFxyXG4gICAgICAgICAgICByZWNvbm5lY3Q6IFwiw4V0ZXJhbnNsdXRcIixcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogXCJLYXRlZ29yaWVyXCIsXHJcbiAgICAgICAgICAgIGNvbm5lY3Rpb246IFwiQW5zbHV0ZW4gc29tOiB7e3VzZXJuYW1lfX0je3tkaXNjcmltaW5hdG9yfX1cIixcclxuICAgICAgICAgICAgcmVzdWx0czogXCJWaXNhciB7e3N0YXJ0fX0te3tlbmR9fSBhdiB7e3RvdGFsfX0gcmVzdWx0YXQgaSB7e2NhdGVnb3J5fX1cIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiZsO2ciB7e3F1ZXJ5fX1cIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgTW9kYWxzOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1DbG9zZTogXCLDhHIgZHUgc8Oka2VyP1wiLFxyXG4gICAgICAgICAgICBva2F5OiBcIk9rZWpcIixcclxuICAgICAgICAgICAgY2FuY2VsOiBcIkF2YnJ5dFwiLFxyXG4gICAgICAgICAgICBuYW1lOiBcIk5hbW5cIixcclxuICAgICAgICAgICAgbWVzc2FnZTogXCJNZWRkZWxhbmRlXCIsXHJcbiAgICAgICAgICAgIGVycm9yOiBcIkZlbFwiLFxyXG4gICAgICAgICAgICBhZGRvbkVycm9yczogXCJUaWxsw6RnZ3NmZWxcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/strings.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n en: {\n Panels: {\n plugins: \"Plugins\",\n themes: \"Themes\",\n customcss: \"Custom CSS\"\n },\n Collections: {\n settings: {\n name: \"Settings\",\n general: {\n name: \"General\",\n emotes: {\n name: \"Emote System\",\n note: \"Enables BD's emote system\"\n },\n publicServers: {\n name: \"Public Servers\",\n note: \"Display public servers button\"\n },\n voiceDisconnect: {\n name: \"Voice Disconnect\",\n note: \"Disconnect from voice server when closing Discord\"\n },\n twentyFourHour: {\n name: \"24-Hour Timestamps\",\n note: \"Hides channels when in minimal mode\"\n },\n classNormalizer: {\n name: \"Normalize Classes\",\n note: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Show Toasts\",\n note: \"Shows a small notification for important information\"\n }\n },\n appearance: {\n name: \"Appearance\",\n voiceMode: {\n name: \"Voice Mode\",\n note: \"Hides everything that isn't voice chat\"\n },\n minimalMode: {\n name: \"Minimal Mode\",\n note: \"Hide elements and reduce the size of elements\"\n },\n hideChannels: {\n name: \"Hide Channels\",\n note: \"Hides channels when in minimal mode\"\n },\n darkMode: {\n name: \"Dark Mode\",\n note: \"Make certain elements dark by default\"\n },\n coloredText: {\n name: \"Colored Text\",\n note: \"Make text colour the same as role color\"\n }\n },\n addons: {\n name: \"Addon Manager\",\n addonErrors: {\n name: \"Show Addon Errors\",\n note: \"Shows a modal with plugin/theme errors\"\n },\n autoScroll: {\n name: \"Scroll To Settings\",\n note: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\"\n },\n autoReload: {\n name: \"Automatic Loading\",\n note: \"Automatically loads, reloads, and unloads plugins and themes\"\n }\n },\n customcss: {\n name: \"Custom CSS\",\n customcss: {\n name: \"Custom CSS\",\n note: \"Enables the Custom CSS tab\"\n },\n liveUpdate: {\n name: \"Live Update\",\n note: \"Updates the css as you type\"\n },\n startDetached: {\n name: \"Start Detached\",\n note: \"Clicking the Custom CSS tab opens the editor in a separate window\"\n },\n nativeOpen: {\n name: \"Open in Native Editor\",\n note: \"Clicking the Custom CSS tab opens your custom css in your native editor\"\n }\n },\n developer: {\n name: \"Developer Settings\",\n developerMode: {\n name: \"Developer Mode\",\n note: \"Allows activating debugger when pressing F8\"\n },\n copySelector: {\n name: \"Copy Selector\",\n note: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\"\n }\n },\n window: {\n name: \"Window Preferences\",\n transparency: {\n name: \"Enable Transparency\",\n note: \"Enables the main window to be see-through (requires restart)\"\n },\n frame: {\n name: \"Window Frame\",\n note: \"Adds the native os window frame to the main window\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"General\",\n download: {\n name: \"Download Emotes\",\n note: \"Download emotes once a week to stay up to date\"\n },\n emoteMenu: {\n name: \"Emote Menu\",\n note: \"Show Twitch/Favourite emotes in emote menu\"\n },\n hideEmojiMenu: {\n name: \"Hide Emoji Menu\",\n note: \"Hides Discord's emoji menu when using emote menu\"\n },\n autoCaps: {\n name: \"Emote Autocapitalization\",\n note: \"Autocapitalize emote commands\"\n },\n showNames: {\n name: \"Show Names\",\n note: \"Show emote names on hover\"\n },\n modifiers: {\n name: \"Show Emote Modifiers\",\n note: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animate On Hover\",\n note: \"Only animate the emote modifiers on hover\"\n }\n },\n categories: {\n name: \"Categories\",\n twitch: {\n name: \"Twitch\",\n note: \"Show Twitch global & subscriber emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Show emotes from FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Show emotes from BTTV\"\n }\n }\n }\n },\n Addons: {\n title: \"{{name}} v{{version}} by {{author}}\",\n openFolder: \"Open {{type}} Folder\",\n reload: \"Reload\",\n pluginSettings: \"Settings\",\n website: \"Website\",\n source: \"Source\",\n server: \"Support Server\",\n donate: \"Donate\"\n },\n Emotes: {\n downloading: \"Downloading emotes in the background do not reload.\",\n downloaded: \"All emotes successfully downloaded.\",\n clearEmotes: \"Clear Emote Data\",\n favoriteAction: \"Favorite!\"\n },\n CustomCSS: {\n confirmationText: \"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.\",\n update: \"Update\",\n save: \"Save\",\n openNative: \"Open in System Editor\",\n openDetached: \"Detach Window\",\n settings: \"Editor Settings\",\n editorTitle: \"Custom CSS Editor\"\n },\n PublicServers: {\n button: \"public\",\n join: \"Join\",\n joining: \"Joining\",\n joined: \"Joined\",\n loading: \"Loading\",\n loadMore: \"Load More\",\n notConnected: \"Not connected to DiscordServers.com!\",\n search: \"Search\",\n connect: \"Connect\",\n reconnect: \"Reconnect\",\n categories: \"Categories\",\n connection: \"Connected as: {{username}}#{{discriminator}}\",\n results: \"Showing {{start}}-{{end}} of {{total}} results in {{category}}\",\n query: \"for {{query}}\"\n },\n Modals: {\n confirmClose: \"Are You Sure?\",\n okay: \"Okay\",\n cancel: \"Cancel\",\n name: \"Name\",\n message: \"Message\",\n error: \"Error\",\n addonErrors: \"Addon Errors\"\n }\n },\n es: {\n Collections: {\n settings: {\n name: \"Ajustes\",\n addons: {\n addonErrors: {\n name: \"Mostrar Errores de Addons\"\n }\n }\n }\n }\n },\n sv: {\n Panels: {\n plugins: \"Tillägg\",\n themes: \"Teman\",\n customcss: \"Egen CSS\"\n },\n Collections: {\n settings: {\n name: \"Inställningar\",\n general: {\n name: \"Generellt\",\n emotes: {\n name: \"Emotessystem\",\n note: \"Aktiverar BD's emotessystem\"\n },\n publicServers: {\n name: \"Publika Servrar\",\n note: \"Visa knappen för publika servrar\"\n },\n voiceDisconnect: {\n name: \"Lämna Röst\",\n note: \"Lämna röstsamtal när Discord stängs ner\"\n },\n twentyFourHour: {\n name: \"24-Timmars Tidsstämpel\",\n note: \"Visar 24-timmars tidsstämplar istället för AM/PM\"\n },\n classNormalizer: {\n name: \"Normalisera Klasser\",\n note: \"Lägger till statiska klasser för att underlätta teman (ex. lägger till .da-channels på .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Visa Toasts\",\n note: \"Visar en liten notification för viktig information\"\n }\n },\n appearance: {\n name: \"Utseende\",\n voiceMode: {\n name: \"Röstläge\",\n note: \"Gömmer allt förutom röstchatt\"\n },\n minimalMode: {\n name: \"Minimalt Läge\",\n note: \"Gömmer och förminskar komponenter\"\n },\n hideChannels: {\n name: \"Göm Kanaler\",\n note: \"Gömmer kanaler när minimalt läge är aktiverat\"\n },\n darkMode: {\n name: \"Mörkt Läge\",\n note: \"Gör vissa komponenter mörka\"\n },\n coloredText: {\n name: \"Färgad Text\",\n note: \"Gör att text får samma färg som rollfärgen\"\n }\n },\n addons: {\n name: \"Tilläggshanterare\",\n addonErrors: {\n name: \"Visa tilläggsfel\",\n note: \"Visar en modal med tillägg- och temafel\"\n },\n autoScroll: {\n name: \"Skrolla till inställningar Scroll To Settings\",\n note: \"Skrollar automatisks till ett tilläggs inställningar när knappen är tryckt (endast om inställningarna är utanför vy)\"\n },\n autoReload: {\n name: \"Automatisk Laddning\",\n note: \"Laddar automatisk in, om och ur tillägg och teman\"\n }\n },\n customcss: {\n name: \"Egen CSS\",\n customcss: {\n name: \"Egen CSS\",\n note: \"Aktiverar \\\"Egen CSS\\\"-fliken\"\n },\n liveUpdate: {\n name: \"Uppdatera Direkt\",\n note: \"Uppdaterar css allteftersom du skriver\"\n },\n startDetached: {\n name: \"Starta Frånkopplad\",\n note: \"Öppnar CSS redigeraren i ett separat fönster när \\\"Egen CSS\\\"-fliken klickas\"\n },\n nativeOpen: {\n name: \"Öppna I Standardredigerare\",\n note: \"Öppnar CSS filen i operativsystemets standardredigerare när \\\"Egen CSS\\\"-fliken klickas\"\n }\n },\n developer: {\n name: \"Utvecklarinställningar\",\n developerMode: {\n name: \"Utvecklarläge\",\n note: \"Gör det möjligt att aktivera avlusare med F8\"\n },\n copySelector: {\n name: \"Kopiera Selektor\",\n note: \"Lägger till valet \\\"Kopiera Selektor\\\" i kontext menyn när utvecklarläge är aktiverat\"\n }\n },\n window: {\n name: \"Fönsterinställningar\",\n transparency: {\n name: \"Aktivera Genomskinlighet\",\n note: \"Gör att huvudfönstret blir genomskinligt (kräver omstart)\"\n },\n frame: {\n name: \"Fönsterram\",\n note: \"Lägger till operativsystemets standard fönsterram runt huvudfönstret\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"Generellt\",\n download: {\n name: \"Ladda Ner Emotes\",\n note: \"Ladda ner emotes en gång i veckan för att hålla sig uppdaterad\"\n },\n emoteMenu: {\n name: \"Emote Meny\",\n note: \"Visa Twitch/Favorit emotes i emote meny\"\n },\n hideEmojiMenu: {\n name: \"Gömmer Emoji Meny\",\n note: \"Gömmer Discord's emoji meny när emote meny är aktiverad\"\n },\n autoCaps: {\n name: \"Automatiskt Stor Bokstav I Emotes\",\n note: \"Gör automatiskt stor bokstav i emote kommandon\"\n },\n showNames: {\n name: \"Visa namn\",\n note: \"Visa namn när musen hålls över en emote\"\n },\n modifiers: {\n name: \"Visa Emote Modifierare\",\n note: \"Aktivera emote modifierare (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animera När Musen Hålls Över\",\n note: \"Animera endast emote midiferare när musen hålls över emoten\"\n }\n },\n categories: {\n name: \"Kategorier\",\n twitch: {\n name: \"Twitch\",\n note: \"Visa Twitch global & prenumerant emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Visa emotes från FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Visa emotes från BTTV\"\n }\n }\n }\n },\n Emotes: {\n downloading: \"Laddar ner emotes i backgrunden, ladda inte om\",\n downloaded: \"Alla emotes laddades ner utan problem.\",\n clearEmotes: \"Rensa Emote Data\",\n favoriteAction: \"Favorit!\"\n },\n CustomCSS: {\n confirmationText: \"Du har osparade ändringar av egna CSS:en. Alla ändringar kommer försvinna om du stänger det här fönstret\",\n update: \"Uppdatera\",\n save: \"Spara\",\n openNative: \"Öppna I Standardredigerare\",\n openDetached: \"Koppla Loss Fönster\",\n settings: \"Inställningar för redigerare\",\n editorTitle: \"Egen CSS Redigerare\"\n },\n PublicServers: {\n button: \"Publik\",\n join: \"Gå med\",\n joining: \"Går med\",\n joined: \"Gick med\",\n loading: \"Laddar\",\n loadMore: \"ladda mer\",\n notConnected: \"Ingen anslutning till DiscordServers.com!\",\n search: \"Sök\",\n connect: \"Anslut\",\n reconnect: \"Återanslut\",\n categories: \"Kategorier\",\n connection: \"Ansluten som: {{username}}#{{discriminator}}\",\n results: \"Visar {{start}}-{{end}} av {{total}} resultat i {{category}}\",\n query: \"för {{query}}\"\n },\n Modals: {\n confirmClose: \"Är du säker?\",\n okay: \"Okej\",\n cancel: \"Avbryt\",\n name: \"Namn\",\n message: \"Meddelande\",\n error: \"Fel\",\n addonErrors: \"Tilläggsfel\"\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc3RyaW5ncy5qcz9iYzcxIl0sIm5hbWVzIjpbImVuIiwiUGFuZWxzIiwicGx1Z2lucyIsInRoZW1lcyIsImN1c3RvbWNzcyIsIkNvbGxlY3Rpb25zIiwic2V0dGluZ3MiLCJuYW1lIiwiZ2VuZXJhbCIsImVtb3RlcyIsIm5vdGUiLCJwdWJsaWNTZXJ2ZXJzIiwidm9pY2VEaXNjb25uZWN0IiwidHdlbnR5Rm91ckhvdXIiLCJjbGFzc05vcm1hbGl6ZXIiLCJzaG93VG9hc3RzIiwiYXBwZWFyYW5jZSIsInZvaWNlTW9kZSIsIm1pbmltYWxNb2RlIiwiaGlkZUNoYW5uZWxzIiwiZGFya01vZGUiLCJjb2xvcmVkVGV4dCIsImFkZG9ucyIsImFkZG9uRXJyb3JzIiwiYXV0b1Njcm9sbCIsImF1dG9SZWxvYWQiLCJsaXZlVXBkYXRlIiwic3RhcnREZXRhY2hlZCIsIm5hdGl2ZU9wZW4iLCJkZXZlbG9wZXIiLCJkZXZlbG9wZXJNb2RlIiwiY29weVNlbGVjdG9yIiwid2luZG93IiwidHJhbnNwYXJlbmN5IiwiZnJhbWUiLCJkb3dubG9hZCIsImVtb3RlTWVudSIsImhpZGVFbW9qaU1lbnUiLCJhdXRvQ2FwcyIsInNob3dOYW1lcyIsIm1vZGlmaWVycyIsImFuaW1hdGVPbkhvdmVyIiwiY2F0ZWdvcmllcyIsInR3aXRjaCIsImZmeiIsImJ0dHYiLCJBZGRvbnMiLCJ0aXRsZSIsIm9wZW5Gb2xkZXIiLCJyZWxvYWQiLCJwbHVnaW5TZXR0aW5ncyIsIndlYnNpdGUiLCJzb3VyY2UiLCJzZXJ2ZXIiLCJkb25hdGUiLCJFbW90ZXMiLCJkb3dubG9hZGluZyIsImRvd25sb2FkZWQiLCJjbGVhckVtb3RlcyIsImZhdm9yaXRlQWN0aW9uIiwiQ3VzdG9tQ1NTIiwiY29uZmlybWF0aW9uVGV4dCIsInVwZGF0ZSIsInNhdmUiLCJvcGVuTmF0aXZlIiwib3BlbkRldGFjaGVkIiwiZWRpdG9yVGl0bGUiLCJQdWJsaWNTZXJ2ZXJzIiwiYnV0dG9uIiwiam9pbiIsImpvaW5pbmciLCJqb2luZWQiLCJsb2FkaW5nIiwibG9hZE1vcmUiLCJub3RDb25uZWN0ZWQiLCJzZWFyY2giLCJjb25uZWN0IiwicmVjb25uZWN0IiwiY29ubmVjdGlvbiIsInJlc3VsdHMiLCJxdWVyeSIsIk1vZGFscyIsImNvbmZpcm1DbG9zZSIsIm9rYXkiLCJjYW5jZWwiLCJtZXNzYWdlIiwiZXJyb3IiLCJlcyIsInN2Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFlO0FBQ1hBLElBQUUsRUFBRTtBQUNBQyxVQUFNLEVBQUU7QUFDSkMsYUFBTyxFQUFFLFNBREw7QUFFSkMsWUFBTSxFQUFFLFFBRko7QUFHSkMsZUFBUyxFQUFFO0FBSFAsS0FEUjtBQU1BQyxlQUFXLEVBQUU7QUFDVEMsY0FBUSxFQUFFO0FBQ05DLFlBQUksRUFBRSxVQURBO0FBRU5DLGVBQU8sRUFBRTtBQUNMRCxjQUFJLEVBQUUsU0FERDtBQUVMRSxnQkFBTSxFQUFFO0FBQ0pGLGdCQUFJLEVBQUUsY0FERjtBQUVKRyxnQkFBSSxFQUFFO0FBRkYsV0FGSDtBQU1MQyx1QkFBYSxFQUFFO0FBQ1hKLGdCQUFJLEVBQUUsZ0JBREs7QUFFWEcsZ0JBQUksRUFBRTtBQUZLLFdBTlY7QUFVTEUseUJBQWUsRUFBRTtBQUNiTCxnQkFBSSxFQUFFLGtCQURPO0FBRWJHLGdCQUFJLEVBQUU7QUFGTyxXQVZaO0FBY0xHLHdCQUFjLEVBQUU7QUFDWk4sZ0JBQUksRUFBRSxvQkFETTtBQUVaRyxnQkFBSSxFQUFFO0FBRk0sV0FkWDtBQWtCTEkseUJBQWUsRUFBRTtBQUNiUCxnQkFBSSxFQUFFLG1CQURPO0FBRWJHLGdCQUFJLEVBQUU7QUFGTyxXQWxCWjtBQXNCTEssb0JBQVUsRUFBRTtBQUNSUixnQkFBSSxFQUFFLGFBREU7QUFFUkcsZ0JBQUksRUFBRTtBQUZFO0FBdEJQLFNBRkg7QUE2Qk5NLGtCQUFVLEVBQUU7QUFDUlQsY0FBSSxFQUFFLFlBREU7QUFFUlUsbUJBQVMsRUFBRTtBQUNQVixnQkFBSSxFQUFFLFlBREM7QUFFUEcsZ0JBQUksRUFBRTtBQUZDLFdBRkg7QUFNUlEscUJBQVcsRUFBRTtBQUNUWCxnQkFBSSxFQUFFLGNBREc7QUFFVEcsZ0JBQUksRUFBRTtBQUZHLFdBTkw7QUFVUlMsc0JBQVksRUFBRTtBQUNWWixnQkFBSSxFQUFFLGVBREk7QUFFVkcsZ0JBQUksRUFBRTtBQUZJLFdBVk47QUFjUlUsa0JBQVEsRUFBRTtBQUNOYixnQkFBSSxFQUFFLFdBREE7QUFFTkcsZ0JBQUksRUFBRTtBQUZBLFdBZEY7QUFrQlJXLHFCQUFXLEVBQUU7QUFDVGQsZ0JBQUksRUFBRSxjQURHO0FBRVRHLGdCQUFJLEVBQUU7QUFGRztBQWxCTCxTQTdCTjtBQW9ETlksY0FBTSxFQUFFO0FBQ0pmLGNBQUksRUFBRSxlQURGO0FBRUpnQixxQkFBVyxFQUFFO0FBQ1RoQixnQkFBSSxFQUFFLG1CQURHO0FBRVRHLGdCQUFJLEVBQUU7QUFGRyxXQUZUO0FBTUpjLG9CQUFVLEVBQUU7QUFDUmpCLGdCQUFJLEVBQUUsb0JBREU7QUFFUkcsZ0JBQUksRUFBRTtBQUZFLFdBTlI7QUFVSmUsb0JBQVUsRUFBRTtBQUNSbEIsZ0JBQUksRUFBRSxtQkFERTtBQUVSRyxnQkFBSSxFQUFFO0FBRkU7QUFWUixTQXBERjtBQW1FTk4saUJBQVMsRUFBRTtBQUNQRyxjQUFJLEVBQUUsWUFEQztBQUVQSCxtQkFBUyxFQUFFO0FBQ1BHLGdCQUFJLEVBQUUsWUFEQztBQUVQRyxnQkFBSSxFQUFFO0FBRkMsV0FGSjtBQU1QZ0Isb0JBQVUsRUFBRTtBQUNSbkIsZ0JBQUksRUFBRSxhQURFO0FBRVJHLGdCQUFJLEVBQUU7QUFGRSxXQU5MO0FBVVBpQix1QkFBYSxFQUFFO0FBQ1hwQixnQkFBSSxFQUFFLGdCQURLO0FBRVhHLGdCQUFJLEVBQUU7QUFGSyxXQVZSO0FBY1BrQixvQkFBVSxFQUFFO0FBQ1JyQixnQkFBSSxFQUFFLHVCQURFO0FBRVJHLGdCQUFJLEVBQUU7QUFGRTtBQWRMLFNBbkVMO0FBc0ZObUIsaUJBQVMsRUFBRTtBQUNQdEIsY0FBSSxFQUFFLG9CQURDO0FBRVB1Qix1QkFBYSxFQUFFO0FBQ1h2QixnQkFBSSxFQUFFLGdCQURLO0FBRVhHLGdCQUFJLEVBQUU7QUFGSyxXQUZSO0FBTVBxQixzQkFBWSxFQUFFO0FBQ1Z4QixnQkFBSSxFQUFFLGVBREk7QUFFVkcsZ0JBQUksRUFBRTtBQUZJO0FBTlAsU0F0Rkw7QUFpR05zQixjQUFNLEVBQUU7QUFDSnpCLGNBQUksRUFBRSxvQkFERjtBQUVKMEIsc0JBQVksRUFBRTtBQUNWMUIsZ0JBQUksRUFBRSxxQkFESTtBQUVWRyxnQkFBSSxFQUFFO0FBRkksV0FGVjtBQU1Kd0IsZUFBSyxFQUFFO0FBQ0gzQixnQkFBSSxFQUFFLGNBREg7QUFFSEcsZ0JBQUksRUFBRTtBQUZIO0FBTkg7QUFqR0YsT0FERDtBQThHVEQsWUFBTSxFQUFFO0FBQ0pGLFlBQUksRUFBRSxRQURGO0FBRUpDLGVBQU8sRUFBRTtBQUNMRCxjQUFJLEVBQUUsU0FERDtBQUVMNEIsa0JBQVEsRUFBRTtBQUNONUIsZ0JBQUksRUFBRSxpQkFEQTtBQUVORyxnQkFBSSxFQUFFO0FBRkEsV0FGTDtBQU1MMEIsbUJBQVMsRUFBRTtBQUNQN0IsZ0JBQUksRUFBRSxZQURDO0FBRVBHLGdCQUFJLEVBQUU7QUFGQyxXQU5OO0FBVUwyQix1QkFBYSxFQUFFO0FBQ1g5QixnQkFBSSxFQUFFLGlCQURLO0FBRVhHLGdCQUFJLEVBQUU7QUFGSyxXQVZWO0FBY0w0QixrQkFBUSxFQUFFO0FBQ04vQixnQkFBSSxFQUFFLDBCQURBO0FBRU5HLGdCQUFJLEVBQUU7QUFGQSxXQWRMO0FBa0JMNkIsbUJBQVMsRUFBRTtBQUNQaEMsZ0JBQUksRUFBRSxZQURDO0FBRVBHLGdCQUFJLEVBQUU7QUFGQyxXQWxCTjtBQXNCTDhCLG1CQUFTLEVBQUU7QUFDUGpDLGdCQUFJLEVBQUUsc0JBREM7QUFFUEcsZ0JBQUksRUFBRTtBQUZDLFdBdEJOO0FBMEJMK0Isd0JBQWMsRUFBRTtBQUNabEMsZ0JBQUksRUFBRSxrQkFETTtBQUVaRyxnQkFBSSxFQUFFO0FBRk07QUExQlgsU0FGTDtBQWlDSmdDLGtCQUFVLEVBQUU7QUFDUm5DLGNBQUksRUFBRSxZQURFO0FBRVJvQyxnQkFBTSxFQUFFO0FBQ0pwQyxnQkFBSSxFQUFFLFFBREY7QUFFSkcsZ0JBQUksRUFBRTtBQUZGLFdBRkE7QUFNUmtDLGFBQUcsRUFBRTtBQUNEckMsZ0JBQUksRUFBRSxjQURMO0FBRURHLGdCQUFJLEVBQUU7QUFGTCxXQU5HO0FBVVJtQyxjQUFJLEVBQUU7QUFDRnRDLGdCQUFJLEVBQUUsV0FESjtBQUVGRyxnQkFBSSxFQUFFO0FBRko7QUFWRTtBQWpDUjtBQTlHQyxLQU5iO0FBc0tBb0MsVUFBTSxFQUFFO0FBQ0pDLFdBQUssRUFBRSxxQ0FESDtBQUVKQyxnQkFBVSxFQUFFLHNCQUZSO0FBR0pDLFlBQU0sRUFBRSxRQUhKO0FBSUpDLG9CQUFjLEVBQUUsVUFKWjtBQUtKQyxhQUFPLEVBQUUsU0FMTDtBQU1KQyxZQUFNLEVBQUUsUUFOSjtBQU9KQyxZQUFNLEVBQUUsZ0JBUEo7QUFRSkMsWUFBTSxFQUFFO0FBUkosS0F0S1I7QUFnTEFDLFVBQU0sRUFBRTtBQUNKQyxpQkFBVyxFQUFFLHFEQURUO0FBRUpDLGdCQUFVLEVBQUUscUNBRlI7QUFHSkMsaUJBQVcsRUFBRSxrQkFIVDtBQUlKQyxvQkFBYyxFQUFFO0FBSlosS0FoTFI7QUFzTEFDLGFBQVMsRUFBRTtBQUNQQyxzQkFBZ0IsRUFBRSwrRkFEWDtBQUVQQyxZQUFNLEVBQUUsUUFGRDtBQUdQQyxVQUFJLEVBQUUsTUFIQztBQUlQQyxnQkFBVSxFQUFFLHVCQUpMO0FBS1BDLGtCQUFZLEVBQUUsZUFMUDtBQU1QM0QsY0FBUSxFQUFFLGlCQU5IO0FBT1A0RCxpQkFBVyxFQUFFO0FBUE4sS0F0TFg7QUErTEFDLGlCQUFhLEVBQUU7QUFDWEMsWUFBTSxFQUFFLFFBREc7QUFFWEMsVUFBSSxFQUFFLE1BRks7QUFHWEMsYUFBTyxFQUFFLFNBSEU7QUFJWEMsWUFBTSxFQUFFLFFBSkc7QUFLWEMsYUFBTyxFQUFFLFNBTEU7QUFNWEMsY0FBUSxFQUFFLFdBTkM7QUFPWEMsa0JBQVksRUFBRSxzQ0FQSDtBQVFYQyxZQUFNLEVBQUUsUUFSRztBQVNYQyxhQUFPLEVBQUUsU0FURTtBQVVYQyxlQUFTLEVBQUUsV0FWQTtBQVdYbkMsZ0JBQVUsRUFBRSxZQVhEO0FBWVhvQyxnQkFBVSxFQUFFLDhDQVpEO0FBYVhDLGFBQU8sRUFBRSxnRUFiRTtBQWNYQyxXQUFLLEVBQUU7QUFkSSxLQS9MZjtBQStNQUMsVUFBTSxFQUFFO0FBQ0pDLGtCQUFZLEVBQUUsZUFEVjtBQUVKQyxVQUFJLEVBQUUsTUFGRjtBQUdKQyxZQUFNLEVBQUUsUUFISjtBQUlKN0UsVUFBSSxFQUFFLE1BSkY7QUFLSjhFLGFBQU8sRUFBRSxTQUxMO0FBTUpDLFdBQUssRUFBRSxPQU5IO0FBT0ovRCxpQkFBVyxFQUFFO0FBUFQ7QUEvTVIsR0FETztBQTBOWGdFLElBQUUsRUFBRTtBQUNBbEYsZUFBVyxFQUFFO0FBQ1RDLGNBQVEsRUFBRTtBQUNOQyxZQUFJLEVBQUUsU0FEQTtBQUVOZSxjQUFNLEVBQUU7QUFDSkMscUJBQVcsRUFBRTtBQUNUaEIsZ0JBQUksRUFBRTtBQURHO0FBRFQ7QUFGRjtBQUREO0FBRGIsR0ExTk87QUFzT1hpRixJQUFFLEVBQUU7QUFDQXZGLFVBQU0sRUFBRTtBQUNKQyxhQUFPLEVBQUUsU0FETDtBQUVKQyxZQUFNLEVBQUUsT0FGSjtBQUdKQyxlQUFTLEVBQUU7QUFIUCxLQURSO0FBTUFDLGVBQVcsRUFBRTtBQUNUQyxjQUFRLEVBQUU7QUFDTkMsWUFBSSxFQUFFLGVBREE7QUFFTkMsZUFBTyxFQUFFO0FBQ0xELGNBQUksRUFBRSxXQUREO0FBRUxFLGdCQUFNLEVBQUU7QUFDSkYsZ0JBQUksRUFBRSxjQURGO0FBRUpHLGdCQUFJLEVBQUU7QUFGRixXQUZIO0FBTUxDLHVCQUFhLEVBQUU7QUFDWEosZ0JBQUksRUFBRSxpQkFESztBQUVYRyxnQkFBSSxFQUFFO0FBRkssV0FOVjtBQVVMRSx5QkFBZSxFQUFFO0FBQ2JMLGdCQUFJLEVBQUUsWUFETztBQUViRyxnQkFBSSxFQUFFO0FBRk8sV0FWWjtBQWNMRyx3QkFBYyxFQUFFO0FBQ1pOLGdCQUFJLEVBQUUsd0JBRE07QUFFWkcsZ0JBQUksRUFBRTtBQUZNLFdBZFg7QUFrQkxJLHlCQUFlLEVBQUU7QUFDYlAsZ0JBQUksRUFBRSxxQkFETztBQUViRyxnQkFBSSxFQUFFO0FBRk8sV0FsQlo7QUFzQkxLLG9CQUFVLEVBQUU7QUFDUlIsZ0JBQUksRUFBRSxhQURFO0FBRVJHLGdCQUFJLEVBQUU7QUFGRTtBQXRCUCxTQUZIO0FBNkJOTSxrQkFBVSxFQUFFO0FBQ1JULGNBQUksRUFBRSxVQURFO0FBRVJVLG1CQUFTLEVBQUU7QUFDUFYsZ0JBQUksRUFBRSxVQURDO0FBRVBHLGdCQUFJLEVBQUU7QUFGQyxXQUZIO0FBTVJRLHFCQUFXLEVBQUU7QUFDVFgsZ0JBQUksRUFBRSxlQURHO0FBRVRHLGdCQUFJLEVBQUU7QUFGRyxXQU5MO0FBVVJTLHNCQUFZLEVBQUU7QUFDVlosZ0JBQUksRUFBRSxhQURJO0FBRVZHLGdCQUFJLEVBQUU7QUFGSSxXQVZOO0FBY1JVLGtCQUFRLEVBQUU7QUFDTmIsZ0JBQUksRUFBRSxZQURBO0FBRU5HLGdCQUFJLEVBQUU7QUFGQSxXQWRGO0FBa0JSVyxxQkFBVyxFQUFFO0FBQ1RkLGdCQUFJLEVBQUUsYUFERztBQUVURyxnQkFBSSxFQUFFO0FBRkc7QUFsQkwsU0E3Qk47QUFvRE5ZLGNBQU0sRUFBRTtBQUNKZixjQUFJLEVBQUUsbUJBREY7QUFFSmdCLHFCQUFXLEVBQUU7QUFDVGhCLGdCQUFJLEVBQUUsa0JBREc7QUFFVEcsZ0JBQUksRUFBRTtBQUZHLFdBRlQ7QUFNSmMsb0JBQVUsRUFBRTtBQUNSakIsZ0JBQUksRUFBRSwrQ0FERTtBQUVSRyxnQkFBSSxFQUFFO0FBRkUsV0FOUjtBQVVKZSxvQkFBVSxFQUFFO0FBQ1JsQixnQkFBSSxFQUFFLHFCQURFO0FBRVJHLGdCQUFJLEVBQUU7QUFGRTtBQVZSLFNBcERGO0FBbUVOTixpQkFBUyxFQUFFO0FBQ1BHLGNBQUksRUFBRSxVQURDO0FBRVBILG1CQUFTLEVBQUU7QUFDUEcsZ0JBQUksRUFBRSxVQURDO0FBRVBHLGdCQUFJLEVBQUU7QUFGQyxXQUZKO0FBTVBnQixvQkFBVSxFQUFFO0FBQ1JuQixnQkFBSSxFQUFFLGtCQURFO0FBRVJHLGdCQUFJLEVBQUU7QUFGRSxXQU5MO0FBVVBpQix1QkFBYSxFQUFFO0FBQ1hwQixnQkFBSSxFQUFFLG9CQURLO0FBRVhHLGdCQUFJLEVBQUU7QUFGSyxXQVZSO0FBY1BrQixvQkFBVSxFQUFFO0FBQ1JyQixnQkFBSSxFQUFFLDRCQURFO0FBRVJHLGdCQUFJLEVBQUU7QUFGRTtBQWRMLFNBbkVMO0FBc0ZObUIsaUJBQVMsRUFBRTtBQUNQdEIsY0FBSSxFQUFFLHdCQURDO0FBRVB1Qix1QkFBYSxFQUFFO0FBQ1h2QixnQkFBSSxFQUFFLGVBREs7QUFFWEcsZ0JBQUksRUFBRTtBQUZLLFdBRlI7QUFNUHFCLHNCQUFZLEVBQUU7QUFDVnhCLGdCQUFJLEVBQUUsa0JBREk7QUFFVkcsZ0JBQUksRUFBRTtBQUZJO0FBTlAsU0F0Rkw7QUFpR05zQixjQUFNLEVBQUU7QUFDSnpCLGNBQUksRUFBRSxzQkFERjtBQUVKMEIsc0JBQVksRUFBRTtBQUNWMUIsZ0JBQUksRUFBRSwwQkFESTtBQUVWRyxnQkFBSSxFQUFFO0FBRkksV0FGVjtBQU1Kd0IsZUFBSyxFQUFFO0FBQ0gzQixnQkFBSSxFQUFFLFlBREg7QUFFSEcsZ0JBQUksRUFBRTtBQUZIO0FBTkg7QUFqR0YsT0FERDtBQThHVEQsWUFBTSxFQUFFO0FBQ0pGLFlBQUksRUFBRSxRQURGO0FBRUpDLGVBQU8sRUFBRTtBQUNMRCxjQUFJLEVBQUUsV0FERDtBQUVMNEIsa0JBQVEsRUFBRTtBQUNONUIsZ0JBQUksRUFBRSxrQkFEQTtBQUVORyxnQkFBSSxFQUFFO0FBRkEsV0FGTDtBQU1MMEIsbUJBQVMsRUFBRTtBQUNQN0IsZ0JBQUksRUFBRSxZQURDO0FBRVBHLGdCQUFJLEVBQUU7QUFGQyxXQU5OO0FBVUwyQix1QkFBYSxFQUFFO0FBQ1g5QixnQkFBSSxFQUFFLG1CQURLO0FBRVhHLGdCQUFJLEVBQUU7QUFGSyxXQVZWO0FBY0w0QixrQkFBUSxFQUFFO0FBQ04vQixnQkFBSSxFQUFFLG1DQURBO0FBRU5HLGdCQUFJLEVBQUU7QUFGQSxXQWRMO0FBa0JMNkIsbUJBQVMsRUFBRTtBQUNQaEMsZ0JBQUksRUFBRSxXQURDO0FBRVBHLGdCQUFJLEVBQUU7QUFGQyxXQWxCTjtBQXNCTDhCLG1CQUFTLEVBQUU7QUFDUGpDLGdCQUFJLEVBQUUsd0JBREM7QUFFUEcsZ0JBQUksRUFBRTtBQUZDLFdBdEJOO0FBMEJMK0Isd0JBQWMsRUFBRTtBQUNabEMsZ0JBQUksRUFBRSw4QkFETTtBQUVaRyxnQkFBSSxFQUFFO0FBRk07QUExQlgsU0FGTDtBQWlDSmdDLGtCQUFVLEVBQUU7QUFDUm5DLGNBQUksRUFBRSxZQURFO0FBRVJvQyxnQkFBTSxFQUFFO0FBQ0pwQyxnQkFBSSxFQUFFLFFBREY7QUFFSkcsZ0JBQUksRUFBRTtBQUZGLFdBRkE7QUFNUmtDLGFBQUcsRUFBRTtBQUNEckMsZ0JBQUksRUFBRSxjQURMO0FBRURHLGdCQUFJLEVBQUU7QUFGTCxXQU5HO0FBVVJtQyxjQUFJLEVBQUU7QUFDRnRDLGdCQUFJLEVBQUUsV0FESjtBQUVGRyxnQkFBSSxFQUFFO0FBRko7QUFWRTtBQWpDUjtBQTlHQyxLQU5iO0FBc0tBNkMsVUFBTSxFQUFFO0FBQ0pDLGlCQUFXLEVBQUUsZ0RBRFQ7QUFFSkMsZ0JBQVUsRUFBRSx3Q0FGUjtBQUdKQyxpQkFBVyxFQUFFLGtCQUhUO0FBSUpDLG9CQUFjLEVBQUU7QUFKWixLQXRLUjtBQTRLQUMsYUFBUyxFQUFFO0FBQ1BDLHNCQUFnQixFQUFFLDBHQURYO0FBRVBDLFlBQU0sRUFBRSxXQUZEO0FBR1BDLFVBQUksRUFBRSxPQUhDO0FBSVBDLGdCQUFVLEVBQUUsNEJBSkw7QUFLUEMsa0JBQVksRUFBRSxxQkFMUDtBQU1QM0QsY0FBUSxFQUFFLDhCQU5IO0FBT1A0RCxpQkFBVyxFQUFFO0FBUE4sS0E1S1g7QUFxTEFDLGlCQUFhLEVBQUU7QUFDWEMsWUFBTSxFQUFFLFFBREc7QUFFWEMsVUFBSSxFQUFFLFFBRks7QUFHWEMsYUFBTyxFQUFFLFNBSEU7QUFJWEMsWUFBTSxFQUFFLFVBSkc7QUFLWEMsYUFBTyxFQUFFLFFBTEU7QUFNWEMsY0FBUSxFQUFFLFdBTkM7QUFPWEMsa0JBQVksRUFBRSwyQ0FQSDtBQVFYQyxZQUFNLEVBQUUsS0FSRztBQVNYQyxhQUFPLEVBQUUsUUFURTtBQVVYQyxlQUFTLEVBQUUsWUFWQTtBQVdYbkMsZ0JBQVUsRUFBRSxZQVhEO0FBWVhvQyxnQkFBVSxFQUFFLDhDQVpEO0FBYVhDLGFBQU8sRUFBRSw4REFiRTtBQWNYQyxXQUFLLEVBQUU7QUFkSSxLQXJMZjtBQXFNQUMsVUFBTSxFQUFFO0FBQ0pDLGtCQUFZLEVBQUUsY0FEVjtBQUVKQyxVQUFJLEVBQUUsTUFGRjtBQUdKQyxZQUFNLEVBQUUsUUFISjtBQUlKN0UsVUFBSSxFQUFFLE1BSkY7QUFLSjhFLGFBQU8sRUFBRSxZQUxMO0FBTUpDLFdBQUssRUFBRSxLQU5IO0FBT0ovRCxpQkFBVyxFQUFFO0FBUFQ7QUFyTVI7QUF0T08sQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL3N0cmluZ3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBlbjoge1xyXG4gICAgICAgIFBhbmVsczoge1xyXG4gICAgICAgICAgICBwbHVnaW5zOiBcIlBsdWdpbnNcIixcclxuICAgICAgICAgICAgdGhlbWVzOiBcIlRoZW1lc1wiLFxyXG4gICAgICAgICAgICBjdXN0b21jc3M6IFwiQ3VzdG9tIENTU1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDb2xsZWN0aW9uczoge1xyXG4gICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGVtb3Rlczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3RlIFN5c3RlbVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgQkQncyBlbW90ZSBzeXN0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcHVibGljU2VydmVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlB1YmxpYyBTZXJ2ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzcGxheSBwdWJsaWMgc2VydmVycyBidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VEaXNjb25uZWN0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVm9pY2UgRGlzY29ubmVjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkRpc2Nvbm5lY3QgZnJvbSB2b2ljZSBzZXJ2ZXIgd2hlbiBjbG9zaW5nIERpc2NvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdHdlbnR5Rm91ckhvdXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCIyNC1Ib3VyIFRpbWVzdGFtcHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBjaGFubmVscyB3aGVuIGluIG1pbmltYWwgbW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05vcm1hbGl6ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJOb3JtYWxpemUgQ2xhc3Nlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgc3RhYmxlIGNsYXNzZXMgdG8gZWxlbWVudHMgdG8gaGVscCB0aGVtZXMuIChlLmcuIGFkZHMgLmRhLWNoYW5uZWxzIHRvIC5jaGFubmVscy1JZTJsNkEpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dUb2FzdHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IFRvYXN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3dzIGEgc21hbGwgbm90aWZpY2F0aW9uIGZvciBpbXBvcnRhbnQgaW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBcHBlYXJhbmNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVm9pY2UgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIGV2ZXJ5dGhpbmcgdGhhdCBpc24ndCB2b2ljZSBjaGF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbmltYWxNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTWluaW1hbCBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZSBlbGVtZW50cyBhbmQgcmVkdWNlIHRoZSBzaXplIG9mIGVsZW1lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhpZGVDaGFubmVsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkhpZGUgQ2hhbm5lbHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBjaGFubmVscyB3aGVuIGluIG1pbmltYWwgbW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBkYXJrTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRhcmsgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIk1ha2UgY2VydGFpbiBlbGVtZW50cyBkYXJrIGJ5IGRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3JlZFRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDb2xvcmVkIFRleHRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJNYWtlIHRleHQgY29sb3VyIHRoZSBzYW1lIGFzIHJvbGUgY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhZGRvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFkZG9uIE1hbmFnZXJcIixcclxuICAgICAgICAgICAgICAgICAgICBhZGRvbkVycm9yczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgQWRkb24gRXJyb3JzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvd3MgYSBtb2RhbCB3aXRoIHBsdWdpbi90aGVtZSBlcnJvcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1Njcm9sbDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNjcm9sbCBUbyBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkF1dG8tc2Nyb2xscyB0byBhIHBsdWdpbidzIHNldHRpbmdzIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIChvbmx5IGlmIG91dCBvZiB2aWV3KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvUmVsb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGljIExvYWRpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvbWF0aWNhbGx5IGxvYWRzLCByZWxvYWRzLCBhbmQgdW5sb2FkcyBwbHVnaW5zIGFuZCB0aGVtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tY3NzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDdXN0b20gQ1NTXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tY3NzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ3VzdG9tIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgdGhlIEN1c3RvbSBDU1MgdGFiXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGxpdmVVcGRhdGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJMaXZlIFVwZGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlVwZGF0ZXMgdGhlIGNzcyBhcyB5b3UgdHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzdGFydERldGFjaGVkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU3RhcnQgRGV0YWNoZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJDbGlja2luZyB0aGUgQ3VzdG9tIENTUyB0YWIgb3BlbnMgdGhlIGVkaXRvciBpbiBhIHNlcGFyYXRlIHdpbmRvd1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlT3Blbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk9wZW4gaW4gTmF0aXZlIEVkaXRvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkNsaWNraW5nIHRoZSBDdXN0b20gQ1NTIHRhYiBvcGVucyB5b3VyIGN1c3RvbSBjc3MgaW4geW91ciBuYXRpdmUgZWRpdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZGV2ZWxvcGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZXZlbG9wZXIgU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXZlbG9wZXJNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGV2ZWxvcGVyIE1vZGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBbGxvd3MgYWN0aXZhdGluZyBkZWJ1Z2dlciB3aGVuIHByZXNzaW5nIEY4XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvcHlTZWxlY3Rvcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkNvcHkgU2VsZWN0b3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBZGRzIGEgXFxcIkNvcHkgU2VsZWN0b3JcXFwiIG9wdGlvbiB0byBjb250ZXh0IG1lbnVzIHdoZW4gZGV2ZWxvcGVyIG1vZGUgaXMgYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgd2luZG93OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJXaW5kb3cgUHJlZmVyZW5jZXNcIixcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVuY3k6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbmFibGUgVHJhbnNwYXJlbmN5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlcyB0aGUgbWFpbiB3aW5kb3cgdG8gYmUgc2VlLXRocm91Z2ggKHJlcXVpcmVzIHJlc3RhcnQpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiV2luZG93IEZyYW1lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWRkcyB0aGUgbmF0aXZlIG9zIHdpbmRvdyBmcmFtZSB0byB0aGUgbWFpbiB3aW5kb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3Rlc1wiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRvd25sb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRG93bmxvYWQgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRG93bmxvYWQgZW1vdGVzIG9uY2UgYSB3ZWVrIHRvIHN0YXkgdXAgdG8gZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlbW90ZU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBNZW51XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBUd2l0Y2gvRmF2b3VyaXRlIGVtb3RlcyBpbiBlbW90ZSBtZW51XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhpZGVFbW9qaU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJIaWRlIEVtb2ppIE1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBEaXNjb3JkJ3MgZW1vamkgbWVudSB3aGVuIHVzaW5nIGVtb3RlIG1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NhcHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBBdXRvY2FwaXRhbGl6YXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvY2FwaXRhbGl6ZSBlbW90ZSBjb21tYW5kc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93TmFtZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IE5hbWVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBlbW90ZSBuYW1lcyBvbiBob3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IEVtb3RlIE1vZGlmaWVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZSBlbW90ZSBtb2RzIChmbGlwLCBzcGluLCBwdWxzZSwgc3BpbjIsIHNwaW4zLCAxc3BpbiwgMnNwaW4sIDNzcGluLCB0ciwgYmwsIGJyLCBzaGFrZSwgc2hha2UyLCBzaGFrZTMsIGZsYXApXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVPbkhvdmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQW5pbWF0ZSBPbiBIb3ZlclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIk9ubHkgYW5pbWF0ZSB0aGUgZW1vdGUgbW9kaWZpZXJzIG9uIGhvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcmllczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIHR3aXRjaDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlR3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgVHdpdGNoIGdsb2JhbCAmIHN1YnNjcmliZXIgZW1vdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZmejoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkZyYW5rZXJGYWNlWlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGVzIGZyb20gRkZaXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGJ0dHY6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IGVtb3RlcyBmcm9tIEJUVFZcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQWRkb25zOiB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBcInt7bmFtZX19IHZ7e3ZlcnNpb259fSBieSB7e2F1dGhvcn19XCIsXHJcbiAgICAgICAgICAgIG9wZW5Gb2xkZXI6IFwiT3BlbiB7e3R5cGV9fSBGb2xkZXJcIixcclxuICAgICAgICAgICAgcmVsb2FkOiBcIlJlbG9hZFwiLFxyXG4gICAgICAgICAgICBwbHVnaW5TZXR0aW5nczogXCJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICB3ZWJzaXRlOiBcIldlYnNpdGVcIixcclxuICAgICAgICAgICAgc291cmNlOiBcIlNvdXJjZVwiLFxyXG4gICAgICAgICAgICBzZXJ2ZXI6IFwiU3VwcG9ydCBTZXJ2ZXJcIixcclxuICAgICAgICAgICAgZG9uYXRlOiBcIkRvbmF0ZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbW90ZXM6IHtcclxuICAgICAgICAgICAgZG93bmxvYWRpbmc6IFwiRG93bmxvYWRpbmcgZW1vdGVzIGluIHRoZSBiYWNrZ3JvdW5kIGRvIG5vdCByZWxvYWQuXCIsXHJcbiAgICAgICAgICAgIGRvd25sb2FkZWQ6IFwiQWxsIGVtb3RlcyBzdWNjZXNzZnVsbHkgZG93bmxvYWRlZC5cIixcclxuICAgICAgICAgICAgY2xlYXJFbW90ZXM6IFwiQ2xlYXIgRW1vdGUgRGF0YVwiLFxyXG4gICAgICAgICAgICBmYXZvcml0ZUFjdGlvbjogXCJGYXZvcml0ZSFcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQ3VzdG9tQ1NTOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvblRleHQ6IFwiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIHRvIHlvdXIgQ3VzdG9tIENTUy4gQ2xvc2luZyB0aGlzIHdpbmRvdyB3aWxsIGxvc2UgYWxsIHRob3NlIGNoYW5nZXMuXCIsXHJcbiAgICAgICAgICAgIHVwZGF0ZTogXCJVcGRhdGVcIixcclxuICAgICAgICAgICAgc2F2ZTogXCJTYXZlXCIsXHJcbiAgICAgICAgICAgIG9wZW5OYXRpdmU6IFwiT3BlbiBpbiBTeXN0ZW0gRWRpdG9yXCIsXHJcbiAgICAgICAgICAgIG9wZW5EZXRhY2hlZDogXCJEZXRhY2ggV2luZG93XCIsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBcIkVkaXRvciBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICBlZGl0b3JUaXRsZTogXCJDdXN0b20gQ1NTIEVkaXRvclwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgICAgIGJ1dHRvbjogXCJwdWJsaWNcIixcclxuICAgICAgICAgICAgam9pbjogXCJKb2luXCIsXHJcbiAgICAgICAgICAgIGpvaW5pbmc6IFwiSm9pbmluZ1wiLFxyXG4gICAgICAgICAgICBqb2luZWQ6IFwiSm9pbmVkXCIsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IFwiTG9hZGluZ1wiLFxyXG4gICAgICAgICAgICBsb2FkTW9yZTogXCJMb2FkIE1vcmVcIixcclxuICAgICAgICAgICAgbm90Q29ubmVjdGVkOiBcIk5vdCBjb25uZWN0ZWQgdG8gRGlzY29yZFNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICBzZWFyY2g6IFwiU2VhcmNoXCIsXHJcbiAgICAgICAgICAgIGNvbm5lY3Q6IFwiQ29ubmVjdFwiLFxyXG4gICAgICAgICAgICByZWNvbm5lY3Q6IFwiUmVjb25uZWN0XCIsXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gICAgICAgICAgICBjb25uZWN0aW9uOiBcIkNvbm5lY3RlZCBhczoge3t1c2VybmFtZX19I3t7ZGlzY3JpbWluYXRvcn19XCIsXHJcbiAgICAgICAgICAgIHJlc3VsdHM6IFwiU2hvd2luZyB7e3N0YXJ0fX0te3tlbmR9fSBvZiB7e3RvdGFsfX0gcmVzdWx0cyBpbiB7e2NhdGVnb3J5fX1cIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiZm9yIHt7cXVlcnl9fVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBNb2RhbHM6IHtcclxuICAgICAgICAgICAgY29uZmlybUNsb3NlOiBcIkFyZSBZb3UgU3VyZT9cIixcclxuICAgICAgICAgICAgb2theTogXCJPa2F5XCIsXHJcbiAgICAgICAgICAgIGNhbmNlbDogXCJDYW5jZWxcIixcclxuICAgICAgICAgICAgbmFtZTogXCJOYW1lXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiTWVzc2FnZVwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCJFcnJvclwiLFxyXG4gICAgICAgICAgICBhZGRvbkVycm9yczogXCJBZGRvbiBFcnJvcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlczoge1xyXG4gICAgICAgIENvbGxlY3Rpb25zOiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkFqdXN0ZXNcIixcclxuICAgICAgICAgICAgICAgIGFkZG9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGFkZG9uRXJyb3JzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTW9zdHJhciBFcnJvcmVzIGRlIEFkZG9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIHN2OiB7XHJcbiAgICAgICAgUGFuZWxzOiB7XHJcbiAgICAgICAgICAgIHBsdWdpbnM6IFwiVGlsbMOkZ2dcIixcclxuICAgICAgICAgICAgdGhlbWVzOiBcIlRlbWFuXCIsXHJcbiAgICAgICAgICAgIGN1c3RvbWNzczogXCJFZ2VuIENTU1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDb2xsZWN0aW9uczoge1xyXG4gICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJJbnN0w6RsbG5pbmdhclwiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJlbGx0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGVzc3lzdGVtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWt0aXZlcmFyIEJEJ3MgZW1vdGVzc3lzdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJQdWJsaWthIFNlcnZyYXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIGtuYXBwZW4gZsO2ciBwdWJsaWthIHNlcnZyYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VEaXNjb25uZWN0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTMOkbW5hIFLDtnN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkbW5hIHLDtnN0c2FtdGFsIG7DpHIgRGlzY29yZCBzdMOkbmdzIG5lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB0d2VudHlGb3VySG91cjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIjI0LVRpbW1hcnMgVGlkc3N0w6RtcGVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYXIgMjQtdGltbWFycyB0aWRzc3TDpG1wbGFyIGlzdMOkbGxldCBmw7ZyIEFNL1BNXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTm9ybWFsaXplcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk5vcm1hbGlzZXJhIEtsYXNzZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMw6RnZ2VyIHRpbGwgc3RhdGlza2Ega2xhc3NlciBmw7ZyIGF0dCB1bmRlcmzDpHR0YSB0ZW1hbiAoZXguIGzDpGdnZXIgdGlsbCAuZGEtY2hhbm5lbHMgcMOlIC5jaGFubmVscy1JZTJsNkEpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dUb2FzdHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWaXNhIFRvYXN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2FyIGVuIGxpdGVuIG5vdGlmaWNhdGlvbiBmw7ZyIHZpa3RpZyBpbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0c2VlbmRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUsO2c3Rsw6RnZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkfDtm1tZXIgYWxsdCBmw7ZydXRvbSByw7ZzdGNoYXR0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbmltYWxNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTWluaW1hbHQgTMOkZ2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIG9jaCBmw7ZybWluc2thciBrb21wb25lbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoaWRlQ2hhbm5lbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHw7ZtIEthbmFsZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIGthbmFsZXIgbsOkciBtaW5pbWFsdCBsw6RnZSDDpHIgYWt0aXZlcmF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGRhcmtNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTcO2cmt0IEzDpGdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciB2aXNzYSBrb21wb25lbnRlciBtw7Zya2FcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3JlZFRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGw6RyZ2FkIFRleHRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZyIGF0dCB0ZXh0IGbDpXIgc2FtbWEgZsOkcmcgc29tIHJvbGxmw6RyZ2VuXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYWRkb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUaWxsw6RnZ3NoYW50ZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICBhZGRvbkVycm9yczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZpc2EgdGlsbMOkZ2dzZmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYXIgZW4gbW9kYWwgbWVkIHRpbGzDpGdnLSBvY2ggdGVtYWZlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvU2Nyb2xsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2tyb2xsYSB0aWxsIGluc3TDpGxsbmluZ2FyIFNjcm9sbCBUbyBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNrcm9sbGFyIGF1dG9tYXRpc2tzIHRpbGwgZXR0IHRpbGzDpGdncyBpbnN0w6RsbG5pbmdhciBuw6RyIGtuYXBwZW4gw6RyIHRyeWNrdCAoZW5kYXN0IG9tIGluc3TDpGxsbmluZ2FybmEgw6RyIHV0YW5mw7ZyIHZ5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvUmVsb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGlzayBMYWRkbmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkxhZGRhciBhdXRvbWF0aXNrIGluLCBvbSBvY2ggdXIgdGlsbMOkZ2cgb2NoIHRlbWFuXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWNzczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRWdlbiBDU1NcIixcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21jc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFZ2VuIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFrdGl2ZXJhciBcXFwiRWdlbiBDU1NcXFwiLWZsaWtlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBsaXZlVXBkYXRlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVXBwZGF0ZXJhIERpcmVrdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlVwcGRhdGVyYXIgY3NzIGFsbHRlZnRlcnNvbSBkdSBza3JpdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RGV0YWNoZWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTdGFydGEgRnLDpW5rb3BwbGFkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiw5ZwcG5hciBDU1MgcmVkaWdlcmFyZW4gaSBldHQgc2VwYXJhdCBmw7Zuc3RlciBuw6RyIFxcXCJFZ2VuIENTU1xcXCItZmxpa2VuIGtsaWNrYXNcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZU9wZW46IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLDlnBwbmEgSSBTdGFuZGFyZHJlZGlnZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLDlnBwbmFyIENTUyBmaWxlbiBpIG9wZXJhdGl2c3lzdGVtZXRzIHN0YW5kYXJkcmVkaWdlcmFyZSBuw6RyIFxcXCJFZ2VuIENTU1xcXCItZmxpa2VuIGtsaWNrYXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkZXZlbG9wZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0dmVja2xhcmluc3TDpGxsbmluZ2FyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcGVyTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0dmVja2xhcmzDpGdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBkZXQgbcO2amxpZ3QgYXR0IGFrdGl2ZXJhIGF2bHVzYXJlIG1lZCBGOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb3B5U2VsZWN0b3I6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJLb3BpZXJhIFNlbGVrdG9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkZ2dlciB0aWxsIHZhbGV0IFxcXCJLb3BpZXJhIFNlbGVrdG9yXFxcIiBpIGtvbnRleHQgbWVueW4gbsOkciB1dHZlY2tsYXJsw6RnZSDDpHIgYWt0aXZlcmF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgd2luZG93OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGw7Zuc3Rlcmluc3TDpGxsbmluZ2FyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQWt0aXZlcmEgR2Vub21za2lubGlnaGV0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBhdHQgaHV2dWRmw7Zuc3RyZXQgYmxpciBnZW5vbXNraW5saWd0IChrcsOkdmVyIG9tc3RhcnQpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRsO2bnN0ZXJyYW1cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMw6RnZ2VyIHRpbGwgb3BlcmF0aXZzeXN0ZW1ldHMgc3RhbmRhcmQgZsO2bnN0ZXJyYW0gcnVudCBodXZ1ZGbDtm5zdHJldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlbW90ZXM6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICBnZW5lcmFsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHZW5lcmVsbHRcIixcclxuICAgICAgICAgICAgICAgICAgICBkb3dubG9hZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkxhZGRhIE5lciBFbW90ZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMYWRkYSBuZXIgZW1vdGVzIGVuIGfDpW5nIGkgdmVja2FuIGbDtnIgYXR0IGjDpWxsYSBzaWcgdXBwZGF0ZXJhZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlbW90ZU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBNZW55XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBUd2l0Y2gvRmF2b3JpdCBlbW90ZXMgaSBlbW90ZSBtZW55XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhpZGVFbW9qaU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHw7ZtbWVyIEVtb2ppIE1lbnlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIERpc2NvcmQncyBlbW9qaSBtZW55IG7DpHIgZW1vdGUgbWVueSDDpHIgYWt0aXZlcmFkXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9DYXBzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGlza3QgU3RvciBCb2tzdGF2IEkgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBhdXRvbWF0aXNrdCBzdG9yIGJva3N0YXYgaSBlbW90ZSBrb21tYW5kb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd05hbWVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVmlzYSBuYW1uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBuYW1uIG7DpHIgbXVzZW4gaMOlbGxzIMO2dmVyIGVuIGVtb3RlXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZpc2EgRW1vdGUgTW9kaWZpZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBa3RpdmVyYSBlbW90ZSBtb2RpZmllcmFyZSAoZmxpcCwgc3BpbiwgcHVsc2UsIHNwaW4yLCBzcGluMywgMXNwaW4sIDJzcGluLCAzc3BpbiwgdHIsIGJsLCBiciwgc2hha2UsIHNoYWtlMiwgc2hha2UzLCBmbGFwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlT25Ib3Zlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFuaW1lcmEgTsOkciBNdXNlbiBIw6VsbHMgw5Z2ZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBbmltZXJhIGVuZGFzdCBlbW90ZSBtaWRpZmVyYXJlIG7DpHIgbXVzZW4gaMOlbGxzIMO2dmVyIGVtb3RlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkthdGVnb3JpZXJcIixcclxuICAgICAgICAgICAgICAgICAgICB0d2l0Y2g6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIFR3aXRjaCBnbG9iYWwgJiBwcmVudW1lcmFudCBlbW90ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmZ6OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRnJhbmtlckZhY2VaXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBlbW90ZXMgZnLDpW4gRkZaXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGJ0dHY6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIGVtb3RlcyBmcsOlbiBCVFRWXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIEVtb3Rlczoge1xyXG4gICAgICAgICAgICBkb3dubG9hZGluZzogXCJMYWRkYXIgbmVyIGVtb3RlcyBpIGJhY2tncnVuZGVuLCBsYWRkYSBpbnRlIG9tXCIsXHJcbiAgICAgICAgICAgIGRvd25sb2FkZWQ6IFwiQWxsYSBlbW90ZXMgbGFkZGFkZXMgbmVyIHV0YW4gcHJvYmxlbS5cIixcclxuICAgICAgICAgICAgY2xlYXJFbW90ZXM6IFwiUmVuc2EgRW1vdGUgRGF0YVwiLFxyXG4gICAgICAgICAgICBmYXZvcml0ZUFjdGlvbjogXCJGYXZvcml0IVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDdXN0b21DU1M6IHtcclxuICAgICAgICAgICAgY29uZmlybWF0aW9uVGV4dDogXCJEdSBoYXIgb3NwYXJhZGUgw6RuZHJpbmdhciBhdiBlZ25hIENTUzplbi4gQWxsYSDDpG5kcmluZ2FyIGtvbW1lciBmw7Zyc3Zpbm5hIG9tIGR1IHN0w6RuZ2VyIGRldCBow6RyIGbDtm5zdHJldFwiLFxyXG4gICAgICAgICAgICB1cGRhdGU6IFwiVXBwZGF0ZXJhXCIsXHJcbiAgICAgICAgICAgIHNhdmU6IFwiU3BhcmFcIixcclxuICAgICAgICAgICAgb3Blbk5hdGl2ZTogXCLDlnBwbmEgSSBTdGFuZGFyZHJlZGlnZXJhcmVcIixcclxuICAgICAgICAgICAgb3BlbkRldGFjaGVkOiBcIktvcHBsYSBMb3NzIEbDtm5zdGVyXCIsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBcIkluc3TDpGxsbmluZ2FyIGbDtnIgcmVkaWdlcmFyZVwiLFxyXG4gICAgICAgICAgICBlZGl0b3JUaXRsZTogXCJFZ2VuIENTUyBSZWRpZ2VyYXJlXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgYnV0dG9uOiBcIlB1Ymxpa1wiLFxyXG4gICAgICAgICAgICBqb2luOiBcIkfDpSBtZWRcIixcclxuICAgICAgICAgICAgam9pbmluZzogXCJHw6VyIG1lZFwiLFxyXG4gICAgICAgICAgICBqb2luZWQ6IFwiR2ljayBtZWRcIixcclxuICAgICAgICAgICAgbG9hZGluZzogXCJMYWRkYXJcIixcclxuICAgICAgICAgICAgbG9hZE1vcmU6IFwibGFkZGEgbWVyXCIsXHJcbiAgICAgICAgICAgIG5vdENvbm5lY3RlZDogXCJJbmdlbiBhbnNsdXRuaW5nIHRpbGwgRGlzY29yZFNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICBzZWFyY2g6IFwiU8O2a1wiLFxyXG4gICAgICAgICAgICBjb25uZWN0OiBcIkFuc2x1dFwiLFxyXG4gICAgICAgICAgICByZWNvbm5lY3Q6IFwiw4V0ZXJhbnNsdXRcIixcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogXCJLYXRlZ29yaWVyXCIsXHJcbiAgICAgICAgICAgIGNvbm5lY3Rpb246IFwiQW5zbHV0ZW4gc29tOiB7e3VzZXJuYW1lfX0je3tkaXNjcmltaW5hdG9yfX1cIixcclxuICAgICAgICAgICAgcmVzdWx0czogXCJWaXNhciB7e3N0YXJ0fX0te3tlbmR9fSBhdiB7e3RvdGFsfX0gcmVzdWx0YXQgaSB7e2NhdGVnb3J5fX1cIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiZsO2ciB7e3F1ZXJ5fX1cIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgTW9kYWxzOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1DbG9zZTogXCLDhHIgZHUgc8Oka2VyP1wiLFxyXG4gICAgICAgICAgICBva2F5OiBcIk9rZWpcIixcclxuICAgICAgICAgICAgY2FuY2VsOiBcIkF2YnJ5dFwiLFxyXG4gICAgICAgICAgICBuYW1lOiBcIk5hbW5cIixcclxuICAgICAgICAgICAgbWVzc2FnZTogXCJNZWRkZWxhbmRlXCIsXHJcbiAgICAgICAgICAgIGVycm9yOiBcIkZlbFwiLFxyXG4gICAgICAgICAgICBhZGRvbkVycm9yczogXCJUaWxsw6RnZ3NmZWxcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/strings.js\n"); /***/ }), @@ -503,7 +503,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _patcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./patcher */ \"./src/modules/patcher.js\");\n\n\nconst React = _discordmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].React;\nconst components = {};\nconst unknownComponents = new Set();\nconst listeners = new Set();\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ReactComponents {\n get named() {\n return components;\n }\n\n get unknown() {\n return unknownComponents;\n }\n\n get listeners() {\n return listeners;\n }\n\n constructor() {\n this.walkReactTree(document.querySelector(\"#app-mount\")._reactRootContainer._internalRoot.current);\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].after(\"ReactComponents\", React, \"createElement\", (_, __, returnValue) => {\n this.walkRenderTree(returnValue);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.Component.prototype, \"componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.Component.prototype, \"UNSAFE_componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.PureComponent.prototype, \"componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.PureComponent.prototype, \"UNSAFE_componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n }\n\n initialize() {}\n\n get(name, filter) {\n return new Promise(resolve => {\n if (components[name]) return resolve(components[name]);\n listeners.add({\n name,\n filter,\n resolve\n });\n if (!filter) return;\n\n for (const component of unknownComponents) {\n if (!filter(component)) continue;\n component.displayName = name;\n unknownComponents.delete(component);\n this.addNamedComponent(component);\n }\n });\n }\n\n addNamedComponent(component) {\n const name = component.displayName;\n\n if (!components[name]) {\n components[name] = component;\n\n for (const listener of listeners) {\n if (listener.name !== name) continue;\n listener.resolve(component);\n listeners.delete(listener);\n }\n }\n }\n\n addUnknownComponent(component) {\n if (unknownComponents.has(component)) return;\n\n for (const listener of listeners) {\n if (!listener.filter || !listener.filter(component)) continue;\n component.displayName = listener.name;\n this.addNamedComponent(component);\n }\n\n if (!component.displayName) unknownComponents.add(component);\n }\n\n addComponent(component) {\n if (component.displayName) return this.addNamedComponent(component);\n return this.addUnknownComponent(component);\n }\n\n walkRenderTree(tree) {\n if (!tree) return;\n if (typeof tree.type == \"function\") this.addComponent(tree.type);\n if (Array.isArray(tree)) for (const value of tree) this.walkRenderTree(value);\n if (tree.props && tree.props.children) this.walkRenderTree(tree.props.children);\n }\n\n walkReactTree(tree) {\n if (!tree) return;\n if (typeof tree.type == \"function\") this.addComponent(tree.type);\n if (tree.child) this.walkReactTree(tree.child);\n if (tree.sibling) this.walkReactTree(tree.sibling);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcmVhY3Rjb21wb25lbnRzLmpzPzY5NTQiXSwibmFtZXMiOlsiUmVhY3QiLCJEaXNjb3JkTW9kdWxlcyIsImNvbXBvbmVudHMiLCJ1bmtub3duQ29tcG9uZW50cyIsIlNldCIsImxpc3RlbmVycyIsIlJlYWN0Q29tcG9uZW50cyIsIm5hbWVkIiwidW5rbm93biIsImNvbnN0cnVjdG9yIiwid2Fsa1JlYWN0VHJlZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIl9yZWFjdFJvb3RDb250YWluZXIiLCJfaW50ZXJuYWxSb290IiwiY3VycmVudCIsIlBhdGNoZXIiLCJhZnRlciIsIl8iLCJfXyIsInJldHVyblZhbHVlIiwid2Fsa1JlbmRlclRyZWUiLCJpbnN0ZWFkIiwiQ29tcG9uZW50IiwicHJvdG90eXBlIiwidGhpc09iamVjdCIsImFkZENvbXBvbmVudCIsIlB1cmVDb21wb25lbnQiLCJpbml0aWFsaXplIiwiZ2V0IiwibmFtZSIsImZpbHRlciIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWRkIiwiY29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJkZWxldGUiLCJhZGROYW1lZENvbXBvbmVudCIsImxpc3RlbmVyIiwiYWRkVW5rbm93bkNvbXBvbmVudCIsImhhcyIsInRyZWUiLCJ0eXBlIiwiQXJyYXkiLCJpc0FycmF5IiwidmFsdWUiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2hpbGQiLCJzaWJsaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsTUFBTUEsS0FBSyxHQUFHQyx1REFBYyxDQUFDRCxLQUE3QjtBQUNBLE1BQU1FLFVBQVUsR0FBRyxFQUFuQjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHLElBQUlDLEdBQUosRUFBMUI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsSUFBSUQsR0FBSixFQUFsQjtBQUVlLG1FQUFJLE1BQU1FLGVBQU4sQ0FBc0I7QUFFckMsTUFBSUMsS0FB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Y0FBTCxDQUFvQnFCLElBQUksQ0FBQ0ssS0FBTCxDQUFXQyxRQUEvQjtBQUMxQzs7QUFFRHRDLGVBQWEsQ0FBQ2dDLElBQUQsRUFBTztBQUNoQixRQUFJLENBQUNBLElBQUwsRUFBVztBQUNYLFFBQUksT0FBT0EsSUFBSSxDQUFDQyxJQUFaLElBQXFCLFVBQXpCLEVBQXFDLEtBQUtqQixZQUFMLENBQWtCZ0IsSUFBSSxDQUFDQyxJQUF2QjtBQUNyQyxRQUFJRCxJQUFJLENBQUNPLEtBQVQsRUFBZ0IsS0FBS3ZDLGFBQUwsQ0FBbUJnQyxJQUFJLENBQUNPLEtBQXhCO0FBQ2hCLFFBQUlQLElBQUksQ0FBQ1EsT0FBVCxFQUFrQixLQUFLeEMsYUFBTCxDQUFtQmdDLElBQUksQ0FBQ1EsT0FBeEI7QUFDckI7O0FBakZvQyxDQUExQixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvcmVhY3Rjb21wb25lbnRzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpc2NvcmRNb2R1bGVzIGZyb20gXCIuL2Rpc2NvcmRtb2R1bGVzXCI7XHJcbmltcG9ydCBQYXRjaGVyIGZyb20gXCIuL3BhdGNoZXJcIjtcclxuXHJcbmNvbnN0IFJlYWN0ID0gRGlzY29yZE1vZHVsZXMuUmVhY3Q7XHJcbmNvbnN0IGNvbXBvbmVudHMgPSB7fTtcclxuY29uc3QgdW5rbm93bkNvbXBvbmVudHMgPSBuZXcgU2V0KCk7XHJcbmNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBSZWFjdENvbXBvbmVudHMge1xyXG5cclxuICAgIGdldCBuYW1lZCgpIHtyZXR1cm4gY29tcG9uZW50czt9XHJcbiAgICBnZXQgdW5rbm93bigpIHtyZXR1cm4gdW5rbm93bkNvbXBvbmVudHM7fVxyXG4gICAgZ2V0IGxpc3RlbmVycygpIHtyZXR1cm4gbGlzdGVuZXJzO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLndhbGtSZWFjdFRyZWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikuX3JlYWN0Um9vdENvbnRhaW5lci5faW50ZXJuYWxSb290LmN1cnJlbnQpO1xyXG4gICAgICAgIFBhdGNoZXIuYWZ0ZXIoXCJSZWFjdENvbXBvbmVudHNcIiwgUmVhY3QsIFwiY3JlYXRlRWxlbWVudFwiLCAoXywgX18sIHJldHVyblZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMud2Fsa1JlbmRlclRyZWUocmV0dXJuVmFsdWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFBhdGNoZXIuaW5zdGVhZChcIlJlYWN0Q29tcG9uZW50c1wiLCBSZWFjdC5Db21wb25lbnQucHJvdG90eXBlLCBcImNvbXBvbmVudFdpbGxNb3VudFwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbXBvbmVudCh0aGlzT2JqZWN0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmluc3RlYWQoXCJSZWFjdENvbXBvbmVudHNcIiwgUmVhY3QuQ29tcG9uZW50LnByb3RvdHlwZSwgXCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50XCIsICh0aGlzT2JqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkQ29tcG9uZW50KHRoaXNPYmplY3QuY29uc3RydWN0b3IpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBQYXRjaGVyLmluc3RlYWQoXCJSZWFjdENvbXBvbmVudHNcIiwgUmVhY3QuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUsIFwiY29tcG9uZW50V2lsbE1vdW50XCIsICh0aGlzT2JqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkQ29tcG9uZW50KHRoaXNPYmplY3QuY29uc3RydWN0b3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFBhdGNoZXIuaW5zdGVhZChcIlJlYWN0Q29tcG9uZW50c1wiLCBSZWFjdC5QdXJlQ29tcG9uZW50LnByb3RvdHlwZSwgXCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50XCIsICh0aGlzT2JqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkQ29tcG9uZW50KHRoaXNPYmplY3QuY29uc3RydWN0b3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemUoKSB7fVxyXG5cclxuICAgIGdldChuYW1lLCBmaWx0ZXIpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb21wb25lbnRzW25hbWVdKSByZXR1cm4gcmVzb2x2ZShjb21wb25lbnRzW25hbWVdKTtcclxuICAgICAgICAgICAgbGlzdGVuZXJzLmFkZCh7bmFtZSwgZmlsdGVyLCByZXNvbHZlfSk7XHJcbiAgICAgICAgICAgIGlmICghZmlsdGVyKSByZXR1cm47XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHVua25vd25Db21wb25lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpbHRlcihjb21wb25lbnQpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IG5hbWU7XHJcbiAgICAgICAgICAgICAgICB1bmtub3duQ29tcG9uZW50cy5kZWxldGUoY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkTmFtZWRDb21wb25lbnQoY29tcG9uZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZE5hbWVkQ29tcG9uZW50KGNvbXBvbmVudCkge1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSBjb21wb25lbnQuZGlzcGxheU5hbWU7XHJcbiAgICAgICAgaWYgKCFjb21wb25lbnRzW25hbWVdKSB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudHNbbmFtZV0gPSBjb21wb25lbnQ7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgbGlzdGVuZXJzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXIubmFtZSAhPT0gbmFtZSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBsaXN0ZW5lci5yZXNvbHZlKGNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuZGVsZXRlKGxpc3RlbmVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRVbmtub3duQ29tcG9uZW50KGNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmICh1bmtub3duQ29tcG9uZW50cy5oYXMoY29tcG9uZW50KSkgcmV0dXJuO1xyXG4gICAgICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgbGlzdGVuZXJzKSB7XHJcbiAgICAgICAgICAgIGlmICghbGlzdGVuZXIuZmlsdGVyIHx8ICFsaXN0ZW5lci5maWx0ZXIoY29tcG9uZW50KSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGxpc3RlbmVyLm5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkTmFtZWRDb21wb25lbnQoY29tcG9uZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFjb21wb25lbnQuZGlzcGxheU5hbWUpIHVua25vd25Db21wb25lbnRzLmFkZChjb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZENvbXBvbmVudChjb21wb25lbnQpIHtcclxuICAgICAgICBpZiAoY29tcG9uZW50LmRpc3BsYXlOYW1lKSByZXR1cm4gdGhpcy5hZGROYW1lZENvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZFVua25vd25Db21wb25lbnQoY29tcG9uZW50KTtcclxuICAgIH1cclxuXHJcbiAgICB3YWxrUmVuZGVyVHJlZSh0cmVlKSB7XHJcbiAgICAgICAgaWYgKCF0cmVlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHR5cGVvZih0cmVlLnR5cGUpID09IFwiZnVuY3Rpb25cIikgdGhpcy5hZGRDb21wb25lbnQodHJlZS50eXBlKTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0cmVlKSkgZm9yIChjb25zdCB2YWx1ZSBvZiB0cmVlKSB0aGlzLndhbGtSZW5kZXJUcmVlKHZhbHVlKTtcclxuICAgICAgICBpZiAodHJlZS5wcm9wcyAmJiB0cmVlLnByb3BzLmNoaWxkcmVuKSB0aGlzLndhbGtSZW5kZXJUcmVlKHRyZWUucHJvcHMuY2hpbGRyZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHdhbGtSZWFjdFRyZWUodHJlZSkge1xyXG4gICAgICAgIGlmICghdHJlZSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0eXBlb2YodHJlZS50eXBlKSA9PSBcImZ1bmN0aW9uXCIpIHRoaXMuYWRkQ29tcG9uZW50KHRyZWUudHlwZSk7XHJcbiAgICAgICAgaWYgKHRyZWUuY2hpbGQpIHRoaXMud2Fsa1JlYWN0VHJlZSh0cmVlLmNoaWxkKTtcclxuICAgICAgICBpZiAodHJlZS5zaWJsaW5nKSB0aGlzLndhbGtSZWFjdFRyZWUodHJlZS5zaWJsaW5nKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/reactcomponents.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _patcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./patcher */ \"./src/modules/patcher.js\");\n\n\nconst React = _discordmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].React;\nconst components = {};\nconst unknownComponents = new Set();\nconst listeners = new Set();\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ReactComponents {\n get named() {\n return components;\n }\n\n get unknown() {\n return unknownComponents;\n }\n\n get listeners() {\n return listeners;\n }\n\n constructor() {\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].after(\"ReactComponents\", React, \"createElement\", (_, __, returnValue) => {\n this.walkRenderTree(returnValue);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.Component.prototype, \"componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.Component.prototype, \"UNSAFE_componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.PureComponent.prototype, \"componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.PureComponent.prototype, \"UNSAFE_componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n }\n\n initialize() {\n this.walkReactTree(document.querySelector(\"#app-mount\")._reactRootContainer._internalRoot.current);\n }\n\n get(name, filter) {\n return new Promise(resolve => {\n if (components[name]) return resolve(components[name]);\n listeners.add({\n name,\n filter,\n resolve\n });\n if (!filter) return;\n\n for (const component of unknownComponents) {\n if (!filter(component)) continue;\n component.displayName = name;\n unknownComponents.delete(component);\n this.addNamedComponent(component);\n }\n });\n }\n\n addNamedComponent(component) {\n const name = component.displayName;\n\n if (!components[name]) {\n components[name] = component;\n\n for (const listener of listeners) {\n if (listener.name !== name) continue;\n listener.resolve(component);\n listeners.delete(listener);\n }\n }\n }\n\n addUnknownComponent(component) {\n if (unknownComponents.has(component)) return;\n\n for (const listener of listeners) {\n if (!listener.filter || !listener.filter(component)) continue;\n component.displayName = listener.name;\n this.addNamedComponent(component);\n }\n\n if (!component.displayName) unknownComponents.add(component);\n }\n\n addComponent(component) {\n if (component.displayName) return this.addNamedComponent(component);\n return this.addUnknownComponent(component);\n }\n\n walkRenderTree(tree) {\n if (!tree) return;\n if (typeof tree.type == \"function\") this.addComponent(tree.type);\n if (Array.isArray(tree)) for (const value of tree) this.walkRenderTree(value);\n if (tree.props && tree.props.children) this.walkRenderTree(tree.props.children);\n }\n\n walkReactTree(tree) {\n if (!tree) return;\n if (typeof tree.type == \"function\") this.addComponent(tree.type);\n if (tree.child) this.walkReactTree(tree.child);\n if (tree.sibling) this.walkReactTree(tree.sibling);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcmVhY3Rjb21wb25lbnRzLmpzPzY5NTQiXSwibmFtZXMiOlsiUmVhY3QiLCJEaXNjb3JkTW9kdWxlcyIsImNvbXBvbmVudHMiLCJ1bmtub3duQ29tcG9uZW50cyIsIlNldCIsImxpc3RlbmVycyIsIlJlYWN0Q29tcG9uZW50cyIsIm5hbWVkIiwidW5rbm93biIsImNvbnN0cnVjdG9yIiwiUGF0Y2hlciIsImFmdGVyIiwiXyIsIl9fIiwicmV0dXJuVmFsdWUiLCJ3YWxrUmVuZGVyVHJlZSIsImluc3RlYWQiLCJDb21wb25lbnQiLCJwcm90b3R5cGUiLCJ0aGlzT2JqZWN0IiwiYWRkQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImluaXRpYWxpemUiLCJ3YWxrUmVhY3RUcmVlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiX3JlYWN0Um9vdENvbnRhaW5lciIsIl9pbnRlcm5hbFJvb3QiLCJjdXJyZW50IiwiZ2V0IiwibmFtZSIsImZpbHRlciIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWRkIiwiY29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJkZWxldGUiLCJhZGROYW1lZENvbXBvbmVudCIsImxpc3RlbmVyIiwiYWRkVW5rbm93bkNvbXBvbmVudCIsImhhcyIsInRyZWUiLCJ0eXBlIiwiQXJyYXkiLCJpc0FycmF5IiwidmFsdWUiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2hpbGQiLCJzaWJsaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsTUFBTUEsS0FBSyxHQUFHQyx1REFBYyxDQUFDRCxLQUE3QjtBQUNBLE1BQU1FLFVBQVUsR0FBRyxFQUFuQjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHLElBQUlDLEdBQUosRUFBMUI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsSUFBSUQsR0FBSixFQUFsQjtBQUVlLG1FQUFJLE1BQU1FLGVBQU4sQ0FBc0I7QUFFckMsTUFBSUMsS0FB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QUFvQjJCLElBQUksQ0FBQ0ssS0FBTCxDQUFXQyxRQUEvQjtBQUMxQzs7QUFFRHpCLGVBQWEsQ0FBQ21CLElBQUQsRUFBTztBQUNoQixRQUFJLENBQUNBLElBQUwsRUFBVztBQUNYLFFBQUksT0FBT0EsSUFBSSxDQUFDQyxJQUFaLElBQXFCLFVBQXpCLEVBQXFDLEtBQUt2QixZQUFMLENBQWtCc0IsSUFBSSxDQUFDQyxJQUF2QjtBQUNyQyxRQUFJRCxJQUFJLENBQUNPLEtBQVQsRUFBZ0IsS0FBSzFCLGFBQUwsQ0FBbUJtQixJQUFJLENBQUNPLEtBQXhCO0FBQ2hCLFFBQUlQLElBQUksQ0FBQ1EsT0FBVCxFQUFrQixLQUFLM0IsYUFBTCxDQUFtQm1CLElBQUksQ0FBQ1EsT0FBeEI7QUFDckI7O0FBbEZvQyxDQUExQixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvcmVhY3Rjb21wb25lbnRzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpc2NvcmRNb2R1bGVzIGZyb20gXCIuL2Rpc2NvcmRtb2R1bGVzXCI7XHJcbmltcG9ydCBQYXRjaGVyIGZyb20gXCIuL3BhdGNoZXJcIjtcclxuXHJcbmNvbnN0IFJlYWN0ID0gRGlzY29yZE1vZHVsZXMuUmVhY3Q7XHJcbmNvbnN0IGNvbXBvbmVudHMgPSB7fTtcclxuY29uc3QgdW5rbm93bkNvbXBvbmVudHMgPSBuZXcgU2V0KCk7XHJcbmNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBSZWFjdENvbXBvbmVudHMge1xyXG5cclxuICAgIGdldCBuYW1lZCgpIHtyZXR1cm4gY29tcG9uZW50czt9XHJcbiAgICBnZXQgdW5rbm93bigpIHtyZXR1cm4gdW5rbm93bkNvbXBvbmVudHM7fVxyXG4gICAgZ2V0IGxpc3RlbmVycygpIHtyZXR1cm4gbGlzdGVuZXJzO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBQYXRjaGVyLmFmdGVyKFwiUmVhY3RDb21wb25lbnRzXCIsIFJlYWN0LCBcImNyZWF0ZUVsZW1lbnRcIiwgKF8sIF9fLCByZXR1cm5WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLndhbGtSZW5kZXJUcmVlKHJldHVyblZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmluc3RlYWQoXCJSZWFjdENvbXBvbmVudHNcIiwgUmVhY3QuQ29tcG9uZW50LnByb3RvdHlwZSwgXCJjb21wb25lbnRXaWxsTW91bnRcIiwgKHRoaXNPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hZGRDb21wb25lbnQodGhpc09iamVjdC5jb25zdHJ1Y3Rvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgUGF0Y2hlci5pbnN0ZWFkKFwiUmVhY3RDb21wb25lbnRzXCIsIFJlYWN0LkNvbXBvbmVudC5wcm90b3R5cGUsIFwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbXBvbmVudCh0aGlzT2JqZWN0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgUGF0Y2hlci5pbnN0ZWFkKFwiUmVhY3RDb21wb25lbnRzXCIsIFJlYWN0LlB1cmVDb21wb25lbnQucHJvdG90eXBlLCBcImNvbXBvbmVudFdpbGxNb3VudFwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbXBvbmVudCh0aGlzT2JqZWN0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmluc3RlYWQoXCJSZWFjdENvbXBvbmVudHNcIiwgUmVhY3QuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUsIFwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbXBvbmVudCh0aGlzT2JqZWN0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHRoaXMud2Fsa1JlYWN0VHJlZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2FwcC1tb3VudFwiKS5fcmVhY3RSb290Q29udGFpbmVyLl9pbnRlcm5hbFJvb3QuY3VycmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KG5hbWUsIGZpbHRlcikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudHNbbmFtZV0pIHJldHVybiByZXNvbHZlKGNvbXBvbmVudHNbbmFtZV0pO1xyXG4gICAgICAgICAgICBsaXN0ZW5lcnMuYWRkKHtuYW1lLCBmaWx0ZXIsIHJlc29sdmV9KTtcclxuICAgICAgICAgICAgaWYgKCFmaWx0ZXIpIHJldHVybjtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdW5rbm93bkNvbXBvbmVudHMpIHtcclxuICAgICAgICAgICAgICAgIGlmICghZmlsdGVyKGNvbXBvbmVudCkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmRpc3BsYXlOYW1lID0gbmFtZTtcclxuICAgICAgICAgICAgICAgIHVua25vd25Db21wb25lbnRzLmRlbGV0ZShjb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGROYW1lZENvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkTmFtZWRDb21wb25lbnQoY29tcG9uZW50KSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbXBvbmVudC5kaXNwbGF5TmFtZTtcclxuICAgICAgICBpZiAoIWNvbXBvbmVudHNbbmFtZV0pIHtcclxuICAgICAgICAgICAgY29tcG9uZW50c1tuYW1lXSA9IGNvbXBvbmVudDtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiBsaXN0ZW5lcnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lci5uYW1lICE9PSBuYW1lKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGxpc3RlbmVyLnJlc29sdmUoY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIGxpc3RlbmVycy5kZWxldGUobGlzdGVuZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFkZFVua25vd25Db21wb25lbnQoY29tcG9uZW50KSB7XHJcbiAgICAgICAgaWYgKHVua25vd25Db21wb25lbnRzLmhhcyhjb21wb25lbnQpKSByZXR1cm47XHJcbiAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiBsaXN0ZW5lcnMpIHtcclxuICAgICAgICAgICAgaWYgKCFsaXN0ZW5lci5maWx0ZXIgfHwgIWxpc3RlbmVyLmZpbHRlcihjb21wb25lbnQpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29tcG9uZW50LmRpc3BsYXlOYW1lID0gbGlzdGVuZXIubmFtZTtcclxuICAgICAgICAgICAgdGhpcy5hZGROYW1lZENvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWNvbXBvbmVudC5kaXNwbGF5TmFtZSkgdW5rbm93bkNvbXBvbmVudHMuYWRkKGNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ29tcG9uZW50KGNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQuZGlzcGxheU5hbWUpIHJldHVybiB0aGlzLmFkZE5hbWVkQ29tcG9uZW50KGNvbXBvbmVudCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkVW5rbm93bkNvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHdhbGtSZW5kZXJUcmVlKHRyZWUpIHtcclxuICAgICAgICBpZiAoIXRyZWUpIHJldHVybjtcclxuICAgICAgICBpZiAodHlwZW9mKHRyZWUudHlwZSkgPT0gXCJmdW5jdGlvblwiKSB0aGlzLmFkZENvbXBvbmVudCh0cmVlLnR5cGUpO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRyZWUpKSBmb3IgKGNvbnN0IHZhbHVlIG9mIHRyZWUpIHRoaXMud2Fsa1JlbmRlclRyZWUodmFsdWUpO1xyXG4gICAgICAgIGlmICh0cmVlLnByb3BzICYmIHRyZWUucHJvcHMuY2hpbGRyZW4pIHRoaXMud2Fsa1JlbmRlclRyZWUodHJlZS5wcm9wcy5jaGlsZHJlbik7XHJcbiAgICB9XHJcblxyXG4gICAgd2Fsa1JlYWN0VHJlZSh0cmVlKSB7XHJcbiAgICAgICAgaWYgKCF0cmVlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHR5cGVvZih0cmVlLnR5cGUpID09IFwiZnVuY3Rpb25cIikgdGhpcy5hZGRDb21wb25lbnQodHJlZS50eXBlKTtcclxuICAgICAgICBpZiAodHJlZS5jaGlsZCkgdGhpcy53YWxrUmVhY3RUcmVlKHRyZWUuY2hpbGQpO1xyXG4gICAgICAgIGlmICh0cmVlLnNpYmxpbmcpIHRoaXMud2Fsa1JlYWN0VHJlZSh0cmVlLnNpYmxpbmcpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/reactcomponents.js\n"); /***/ }), @@ -515,7 +515,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dis /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./strings */ \"./src/modules/strings.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsManager {\n constructor() {\n this.state = {};\n this.collections = [];\n this.panels = [];\n this.registerCollection(\"settings\", \"Settings\", data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"]);\n this.updateStrings = this.updateStrings.bind(this);\n }\n\n initialize() {\n this.loadSettings();\n this.updateStrings();\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"strings-updated\", this.updateStrings); // this.patchSections();\n }\n\n registerCollection(id, name, settings, button = null) {\n if (this.collections.find(c => c.id == id)) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"Already have a collection with id \" + id);\n this.collections.push({\n type: \"collection\",\n id: id,\n name: name,\n settings: settings,\n button: button\n });\n this.setup();\n this.updateStrings();\n }\n\n removeCollection(id) {\n const location = this.collections.findIndex(c => c.id == id);\n if (!location < 0) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"No collection with id \" + id);\n this.collections.splice(location, 1);\n } // TODO: Move this to SettingsRenderer and also add a registerContentPanel\n\n\n registerPanel(id, name, options) {\n if (this.panels.find(p => p.id == id)) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"Already have a panel with id \" + id);\n const {\n element,\n onClick,\n order = 1\n } = options;\n const section = {\n id,\n order,\n label: name,\n section: id\n };\n if (onClick) section.clickListener = onClick;\n if (element) section.element = element instanceof _discordmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.Component ? () => _discordmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement(element, {}) : typeof element == \"function\" ? element : () => element;\n this.panels.push(section);\n }\n\n removePanel(id) {\n const location = this.panels.findIndex(c => c.id == id);\n if (!location < 0) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"No collection with id \" + id);\n this.panels.splice(location, 1);\n }\n\n getPath(path, collectionId = \"\", categoryId = \"\") {\n const collection = path.length == 3 ? path[0] : collectionId;\n const category = path.length == 3 ? path[1] : path.length == 2 ? path[0] : categoryId;\n const setting = path[path.length - 1];\n return {\n collection,\n category,\n setting\n };\n }\n\n setup() {\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const categories = this.collections[c].settings;\n if (!this.state[collection.id]) this.state[collection.id] = {};\n\n for (let cc = 0; cc < categories.length; cc++) {\n const category = categories[cc];\n\n if (category.type != \"category\") {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = category.value;\n } else {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = {};\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n if (!this.state[collection.id][category.id].hasOwnProperty(setting.id)) this.state[collection.id][category.id][setting.id] = setting.value;\n\n if (setting.enableWith) {\n const path = this.getPath(setting.enableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return !this.state[path.collection][path.category][path.setting];\n }\n });\n }\n\n if (setting.disableWith) {\n const path = this.getPath(setting.disableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return this.state[path.collection][path.category][path.setting];\n }\n });\n }\n }\n }\n }\n }\n }\n\n saveSettings() {\n _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setData(\"settings\", this.state);\n }\n\n loadSettings() {\n const previousState = _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getData(\"settings\");\n if (!previousState) return this.saveSettings();\n\n for (const collection in this.state) {\n if (!previousState[collection]) Object.assign(previousState, {\n [collection]: this.state[collection]\n });\n\n for (const category in this.state[collection]) {\n if (!previousState[collection][category]) Object.assign(previousState[collection], {\n [category]: this.state[collection][category]\n });\n\n for (const setting in this.state[collection][category]) {\n if (previousState[collection][category][setting] == undefined) continue;\n this.state[collection][category][setting] = previousState[collection][category][setting];\n }\n }\n }\n\n this.saveSettings(); // in case new things were added\n }\n\n onSettingChange(collection, category, id, value) {\n // const before = this.collections.length + this.panels.length;\n this.state[collection][category][id] = value;\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"setting-updated\", collection, category, id, value); // const after = this.collections.length + this.panels.length;\n\n this.saveSettings(); // if (before != after) setTimeout(this.forceUpdate.bind(this), 50);\n }\n\n getSetting(collection, category, id) {\n if (arguments.length == 2) return this.collections[0].find(c => c.id == arguments[0]).settings.find(s => s.id == arguments[1]);\n return this.collections.find(c => c.id == collection).find(c => c.id == category).settings.find(s => s.id == id);\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n if (!this.state[collection] || !this.state[collection][category]) return false;\n return this.state[collection][category][id];\n }\n\n set(collection, category, id, value) {\n if (arguments.length == 3) {\n value = id;\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n return this.onSettingChange(collection, category, id, value);\n }\n\n on(collection, category, identifier, callback) {\n const handler = (col, cat, id, value) => {\n if (col !== collection || cat !== category || id !== identifier) return;\n callback(value);\n };\n\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"setting-updated\", handler);\n return () => {\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].off(\"setting-updated\", handler);\n };\n }\n\n updateStrings() {\n // Update settings collections\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const CS = _strings__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Collections[collection.id];\n if (!CS) continue;\n collection.name = CS.name || collection.name;\n const categories = this.collections[c].settings;\n\n for (let cat = 0; cat < categories.length; cat++) {\n const category = categories[cat];\n const CatStr = CS[category.id];\n if (!CatStr) continue;\n category.name = CatStr.name || category.name;\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n const SetStr = CatStr[setting.id];\n if (!SetStr) continue;\n setting.name = SetStr.name || setting.name;\n setting.note = SetStr.note || setting.note;\n }\n }\n } // Update panel labels\n\n\n for (let p = 0; p < this.panels.length; p++) {\n const panel = this.panels[p];\n const Str = _strings__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Panels[panel.id];\n panel.label = Str || panel.label;\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyLmpzP2IyZjkiXSwibmFtZXMiOlsiU2V0dGluZ3NNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJzdGF0ZSIsImNvbGxlY3Rpb25zIiwicGFuZWxzIiwicmVnaXN0ZXJDb2xsZWN0aW9uIiwiU2V0dGluZ3NDb25maWciLCJ1cGRhdGVTdHJpbmdzIiwiYmluZCIsImluaXRpYWxpemUiLCJsb2FkU2V0dGluZ3MiLCJFdmVudHMiLCJvbiIsImlkIiwibmFtZSIsInNldHRpbmdzIiwiYnV0dG9uIiwiZmluZCIsImMiLCJMb2dnZXIiLCJlcnJvciIsInB1c2giLCJ0eXBlIiwic2V0dXAiLCJyZW1vdmVDb2xsZWN0aW9uIiwibG9jYXRpb24iLCJmaW5kSW5kZXgiLCJzcGxpY2UiLCJyZWdpc3RlclBhbmVsIiwib3B0aW9ucyIsInAiLCJlbGVtZW50Iiwib25DbGljayIsIm9yZGVyIiwic2VjdGlvbiIsImxhYmVsIiwiY2xpY2tMaXN0ZW5lciIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwicmVtb3ZlUGFuZWwiLCJnZXRQYXRoIiwicGF0aCIsImNvbGxlY3Rpb25JZCIsImNhdGVnb3J5SWQiLCJjb2xsZWN0aW9uIiwibGVuZ3RoIiwiY2F0ZWdvcnkiLCJzZXR0aW5nIiwiY2F0ZWdvcmllcyIsImNjIiwiaGFzT3duUHJvcGVydHkiLCJ2YWx1ZSIsInMiLCJlbmFibGVXaXRoIiwic3BsaXQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImRpc2FibGVXaXRoIiwic2F2ZVNldHRpbmdzIiwiRGF0YVN0b3JlIiwic2V0RGF0YSIsInByZXZpb3VzU3RhdGUiLCJnZXREYXRhIiwiYXNzaWduIiwidW5kZWZpbmVkIiwib25TZXR0aW5nQ2hhbmdlIiwiZGlzcGF0Y2giLCJnZXRTZXR0aW5nIiwiYXJndW1lbnRzIiwic2V0IiwiaWRlbnRpZmllciIsImNhbGxiYWNrIiwiaGFuZGxlciIsImNvbCIsImNhdCIsIm9mZiIsIkNTIiwiU3RyaW5ncyIsIkNvbGxlY3Rpb25zIiwiQ2F0U3RyIiwiU2V0U3RyIiwibm90ZSIsInBhbmVsIiwiU3RyIiwiUGFuZWxzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGVBQU4sQ0FBc0I7QUFFckNDLGFBQVcsR0FBRztBQUNWLFNBQUtDLEtBQUwsR0FBYSxFQUFiO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixFQUFuQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0Msa0JBQUwsQ0FBd0IsVUFBeEIsRUFBb0MsVUFBcEMsRUFBZ0RDLG1EQUFoRDtBQUNBLFNBQUtDLGFBQUwsR0FBcUIsS0FBS0EsYUFBTCxDQUFtQkMsSUFBbkIsQ0FBd0IsSUFBeEIsQ0FBckI7QUFDSDs7QUFFREMsWUFBVSxHQUFHO0FBQ1QsU0FBS0MsWUFBTDtBQUNBLFNBQUtILGFBQUw7QUFDQUksb0RBQU0sQ0FBQ0MsRUFBUCxDQUFVLGlCQUFWLEVBQTZCLEtBQUtMLGFBQWxDLEVBSFMsQ0FJVDtBQUNIOztBQUVERixvQkFBa0IsQ0FBQ1EsRUFBRCxFQUFLQyxJQUFMLEVBQVdDLFFBQVgsRUFBcUJDLE1BQU0sR0FBRyxJQUE5QixFQUFvQztBQUNsRCxRQUFJLEtBQUtiLFdBQUwsQ0FBaUJjLElBQWpCLENBQXNCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0wsRUFBRixJQUFRQSxFQUFuQyxDQUFKLEVBQTRDLE9BQU9NLCtDQUFNLENBQUNDLEtBQVAsQ0FBYSxVQUFiLEVBQXlCLHVDQUF1Q1AsRUFBaEUsQ0FBUDtBQUM1QyxTQUFLVixXQUFMLENBQWlCa0IsSUFBakIsQ0FBc0I7QUFDbEJDLFVBQUksRUFBRSxZQURZO0FBRWxCVCxRQUFFLEVBQUVBLEVBRmM7QUFHbEJDLFVBQUksRUFBRUEsSUFIWTtBQUls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QUFHLEtBQUtqRixNQUFMLENBQVkwQixDQUFaLENBQWQ7QUFDQSxZQUFNd0QsR0FBRyxHQUFHTixnREFBTyxDQUFDTyxNQUFSLENBQWVGLEtBQUssQ0FBQ3hFLEVBQXJCLENBQVo7QUFDQXdFLFdBQUssQ0FBQ2xELEtBQU4sR0FBY21ELEdBQUcsSUFBSUQsS0FBSyxDQUFDbEQsS0FBM0I7QUFDSDtBQUNKOztBQTlMb0MsQ0FBMUIsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3NldHRpbmdzbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2V0dGluZ3NDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBFdmVudHMgZnJvbSBcIi4vZW1pdHRlclwiO1xyXG5pbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuaW1wb3J0IFN0cmluZ3MgZnJvbSBcIi4vc3RyaW5nc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFNldHRpbmdzTWFuYWdlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhbmVscyA9IFtdO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJDb2xsZWN0aW9uKFwic2V0dGluZ3NcIiwgXCJTZXR0aW5nc1wiLCBTZXR0aW5nc0NvbmZpZyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTdHJpbmdzID0gdGhpcy51cGRhdGVTdHJpbmdzLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU3RyaW5ncygpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInN0cmluZ3MtdXBkYXRlZFwiLCB0aGlzLnVwZGF0ZVN0cmluZ3MpO1xyXG4gICAgICAgIC8vIHRoaXMucGF0Y2hTZWN0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyQ29sbGVjdGlvbihpZCwgbmFtZSwgc2V0dGluZ3MsIGJ1dHRvbiA9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5jb2xsZWN0aW9ucy5maW5kKGMgPT4gYy5pZCA9PSBpZCkpIHJldHVybiBMb2dnZXIuZXJyb3IoXCJTZXR0aW5nc1wiLCBcIkFscmVhZHkgaGF2ZSBhIGNvbGxlY3Rpb24gd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25zLnB1c2goe1xyXG4gICAgICAgICAgICB0eXBlOiBcImNvbGxlY3Rpb25cIixcclxuICAgICAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MsXHJcbiAgICAgICAgICAgIGJ1dHRvbjogYnV0dG9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU3RyaW5ncygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUNvbGxlY3Rpb24oaWQpIHtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuY29sbGVjdGlvbnMuZmluZEluZGV4KGMgPT4gYy5pZCA9PSBpZCk7XHJcbiAgICAgICAgaWYgKCFsb2NhdGlvbiA8IDApIHJldHVybiBMb2dnZXIuZXJyb3IoXCJTZXR0aW5nc1wiLCBcIk5vIGNvbGxlY3Rpb24gd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25zLnNwbGljZShsb2NhdGlvbiwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIFNldHRpbmdzUmVuZGVyZXIgYW5kIGFsc28gYWRkIGEgcmVnaXN0ZXJDb250ZW50UGFuZWxcclxuICAgIHJlZ2lzdGVyUGFuZWwoaWQsIG5hbWUsIG9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5wYW5lbHMuZmluZChwID0+IHAuaWQgPT0gaWQpKSByZXR1cm4gTG9nZ2VyLmVycm9yKFwiU2V0dGluZ3NcIiwgXCJBbHJlYWR5IGhhdmUgYSBwYW5lbCB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIGNvbnN0IHtlbGVtZW50LCBvbkNsaWNrLCBvcmRlciA9IDF9ID0gb3B0aW9ucztcclxuICAgICAgICBjb25zdCBzZWN0aW9uID0ge2lkLCBvcmRlciwgbGFiZWw6IG5hbWUsIHNlY3Rpb246IGlkfTtcclxuICAgICAgICBpZiAob25DbGljaykgc2VjdGlvbi5jbGlja0xpc3RlbmVyID0gb25DbGljaztcclxuICAgICAgICBpZiAoZWxlbWVudCkgc2VjdGlvbi5lbGVtZW50ID0gZWxlbWVudCBpbnN0YW5jZW9mIERpc2NvcmRNb2R1bGVzLlJlYWN0LkNvbXBvbmVudCA/ICgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoZWxlbWVudCwge30pIDogdHlwZW9mKGVsZW1lbnQpID09IFwiZnVuY3Rpb25cIiA/IGVsZW1lbnQgOiAoKSA9PiBlbGVtZW50O1xyXG4gICAgICAgIHRoaXMucGFuZWxzLnB1c2goc2VjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUGFuZWwoaWQpIHtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMucGFuZWxzLmZpbmRJbmRleChjID0+IGMuaWQgPT0gaWQpO1xyXG4gICAgICAgIGlmICghbG9jYXRpb24gPCAwKSByZXR1cm4gTG9nZ2VyLmVycm9yKFwiU2V0dGluZ3NcIiwgXCJObyBjb2xsZWN0aW9uIHdpdGggaWQgXCIgKyBpZCk7XHJcbiAgICAgICAgdGhpcy5wYW5lbHMuc3BsaWNlKGxvY2F0aW9uLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQYXRoKHBhdGgsIGNvbGxlY3Rpb25JZCA9IFwiXCIsIGNhdGVnb3J5SWQgPSBcIlwiKSB7XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHBhdGgubGVuZ3RoID09IDMgPyBwYXRoWzBdIDogY29sbGVjdGlvbklkO1xyXG4gICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gcGF0aC5sZW5ndGggPT0gMyA/IHBhdGhbMV0gOiBwYXRoLmxlbmd0aCA9PSAyID8gcGF0aFswXSA6IGNhdGVnb3J5SWQ7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZyA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcclxuICAgICAgICByZXR1cm4ge2NvbGxlY3Rpb24sIGNhdGVnb3J5LCBzZXR0aW5nfTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cCgpIHtcclxuICAgICAgICBmb3IgKGxldCBjID0gMDsgYyA8IHRoaXMuY29sbGVjdGlvbnMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuY29sbGVjdGlvbnNbY107XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSB0aGlzLmNvbGxlY3Rpb25zW2NdLnNldHRpbmdzO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0pIHRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0gPSB7fTtcclxuICAgICAgICAgICAgZm9yIChsZXQgY2MgPSAwOyBjYyA8IGNhdGVnb3JpZXMubGVuZ3RoOyBjYysrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2NdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5LnR5cGUgIT0gXCJjYXRlZ29yeVwiKSB7aWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdLmhhc093blByb3BlcnR5KGNhdGVnb3J5LmlkKSkgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXVtjYXRlZ29yeS5pZF0gPSBjYXRlZ29yeS52YWx1ZTt9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0uaGFzT3duUHJvcGVydHkoY2F0ZWdvcnkuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2F0ZWdvcnkuc2V0dGluZ3MubGVuZ3RoOyBzKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IGNhdGVnb3J5LnNldHRpbmdzW3NdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF1bY2F0ZWdvcnkuaWRdLmhhc093blByb3BlcnR5KHNldHRpbmcuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXVtzZXR0aW5nLmlkXSA9IHNldHRpbmcudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLmVuYWJsZVdpdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGgoc2V0dGluZy5lbmFibGVXaXRoLnNwbGl0KFwiLlwiKSwgY29sbGVjdGlvbi5pZCwgY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlZFwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2V0dGluZywgXCJkaXNhYmxlZFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5zdGF0ZVtwYXRoLmNvbGxlY3Rpb25dW3BhdGguY2F0ZWdvcnldW3BhdGguc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLmRpc2FibGVXaXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKHNldHRpbmcuZGlzYWJsZVdpdGguc3BsaXQoXCIuXCIpLCBjb2xsZWN0aW9uLmlkLCBjYXRlZ29yeS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZy5oYXNPd25Qcm9wZXJ0eShcImRpc2FibGVkXCIpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXR0aW5nLCBcImRpc2FibGVkXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVbcGF0aC5jb2xsZWN0aW9uXVtwYXRoLmNhdGVnb3J5XVtwYXRoLnNldHRpbmddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTZXR0aW5ncygpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShcInNldHRpbmdzXCIsIHRoaXMuc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRTZXR0aW5ncygpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1N0YXRlID0gRGF0YVN0b3JlLmdldERhdGEoXCJzZXR0aW5nc1wiKTtcclxuICAgICAgICBpZiAoIXByZXZpb3VzU3RhdGUpIHJldHVybiB0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiB0aGlzLnN0YXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXSkgT2JqZWN0LmFzc2lnbihwcmV2aW91c1N0YXRlLCB7W2NvbGxlY3Rpb25dOiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dfSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgaW4gdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XSkgT2JqZWN0LmFzc2lnbihwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dLCB7W2NhdGVnb3J5XTogdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV19KTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2V0dGluZyBpbiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtzZXR0aW5nXSA9PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW3NldHRpbmddID0gcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1bc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2F2ZVNldHRpbmdzKCk7IC8vIGluIGNhc2UgbmV3IHRoaW5ncyB3ZXJlIGFkZGVkXHJcbiAgICB9XHJcblxyXG4gICAgb25TZXR0aW5nQ2hhbmdlKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCwgdmFsdWUpIHtcclxuICAgICAgICAvLyBjb25zdCBiZWZvcmUgPSB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aCArIHRoaXMucGFuZWxzLmxlbmd0aDtcclxuICAgICAgICB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtpZF0gPSB2YWx1ZTtcclxuICAgICAgICBFdmVudHMuZGlzcGF0Y2goXCJzZXR0aW5nLXVwZGF0ZWRcIiwgY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCB2YWx1ZSk7XHJcbiAgICAgICAgLy8gY29uc3QgYWZ0ZXIgPSB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aCArIHRoaXMucGFuZWxzLmxlbmd0aDtcclxuICAgICAgICB0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIC8vIGlmIChiZWZvcmUgIT0gYWZ0ZXIpIHNldFRpbWVvdXQodGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpLCA1MCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZyhjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSByZXR1cm4gdGhpcy5jb2xsZWN0aW9uc1swXS5maW5kKGMgPT4gYy5pZCA9PSBhcmd1bWVudHNbMF0pLnNldHRpbmdzLmZpbmQocyA9PiBzLmlkID09IGFyZ3VtZW50c1sxXSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbnMuZmluZChjID0+IGMuaWQgPT0gY29sbGVjdGlvbikuZmluZChjID0+IGMuaWQgPT0gY2F0ZWdvcnkpLnNldHRpbmdzLmZpbmQocyA9PiBzLmlkID09IGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICBpZCA9IGNhdGVnb3J5O1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBcInNldHRpbmdzXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXSB8fCAhdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0pIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1baWRdO1xyXG4gICAgfVxyXG5cclxuICAgIHNldChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGlkO1xyXG4gICAgICAgICAgICBpZCA9IGNhdGVnb3J5O1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBcInNldHRpbmdzXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLm9uU2V0dGluZ0NoYW5nZShjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbihjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWRlbnRpZmllciwgY2FsbGJhY2spIHtcclxuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGNvbCwgY2F0LCBpZCwgdmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbCAhPT0gY29sbGVjdGlvbiB8fCBjYXQgIT09IGNhdGVnb3J5IHx8IGlkICE9PSBpZGVudGlmaWVyKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKHZhbHVlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCBoYW5kbGVyKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge0V2ZW50cy5vZmYoXCJzZXR0aW5nLXVwZGF0ZWRcIiwgaGFuZGxlcik7fTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVTdHJpbmdzKCkge1xyXG4gICAgICAgIC8vIFVwZGF0ZSBzZXR0aW5ncyBjb2xsZWN0aW9uc1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgdGhpcy5jb2xsZWN0aW9ucy5sZW5ndGg7IGMrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uc1tjXTtcclxuICAgICAgICAgICAgY29uc3QgQ1MgPSBTdHJpbmdzLkNvbGxlY3Rpb25zW2NvbGxlY3Rpb24uaWRdO1xyXG4gICAgICAgICAgICBpZiAoIUNTKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi5uYW1lID0gQ1MubmFtZSB8fCBjb2xsZWN0aW9uLm5hbWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSB0aGlzLmNvbGxlY3Rpb25zW2NdLnNldHRpbmdzO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBjYXQgPSAwOyBjYXQgPCBjYXRlZ29yaWVzLmxlbmd0aDsgY2F0KyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tjYXRdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgQ2F0U3RyID0gQ1NbY2F0ZWdvcnkuaWRdO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFDYXRTdHIpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnkubmFtZSA9IENhdFN0ci5uYW1lIHx8IGNhdGVnb3J5Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBzID0gMDsgcyA8IGNhdGVnb3J5LnNldHRpbmdzLmxlbmd0aDsgcysrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IGNhdGVnb3J5LnNldHRpbmdzW3NdO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFNldFN0ciA9IENhdFN0cltzZXR0aW5nLmlkXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIVNldFN0cikgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5uYW1lID0gU2V0U3RyLm5hbWUgfHwgc2V0dGluZy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmcubm90ZSA9IFNldFN0ci5ub3RlIHx8IHNldHRpbmcubm90ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIHBhbmVsIGxhYmVsc1xyXG4gICAgICAgIGZvciAobGV0IHAgPSAwOyBwIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBwKyspIHtcclxuICAgICAgICAgICAgY29uc3QgcGFuZWwgPSB0aGlzLnBhbmVsc1twXTtcclxuICAgICAgICAgICAgY29uc3QgU3RyID0gU3RyaW5ncy5QYW5lbHNbcGFuZWwuaWRdO1xyXG4gICAgICAgICAgICBwYW5lbC5sYWJlbCA9IFN0ciB8fCBwYW5lbC5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/settingsmanager.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./strings */ \"./src/modules/strings.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsManager {\n constructor() {\n this.state = {};\n this.collections = [];\n this.panels = [];\n this.registerCollection(\"settings\", \"Settings\", data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"]);\n this.updateStrings = this.updateStrings.bind(this);\n }\n\n initialize() {\n this.loadSettings();\n this.updateStrings();\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"strings-updated\", this.updateStrings); // this.patchSections();\n }\n\n registerCollection(id, name, settings, button = null) {\n if (this.collections.find(c => c.id == id)) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"Already have a collection with id \" + id);\n this.collections.push({\n type: \"collection\",\n id: id,\n name: name,\n settings: settings,\n button: button\n });\n this.setup();\n this.updateStrings();\n }\n\n removeCollection(id) {\n const location = this.collections.findIndex(c => c.id == id);\n if (!location < 0) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"No collection with id \" + id);\n this.collections.splice(location, 1);\n } // TODO: Move this to SettingsRenderer and also add a registerContentPanel\n\n\n registerPanel(id, name, options) {\n if (this.panels.find(p => p.id == id)) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"Already have a panel with id \" + id);\n const {\n element,\n onClick,\n order = 1\n } = options;\n const section = {\n id,\n order,\n label: name,\n section: id\n };\n if (onClick) section.clickListener = onClick;\n if (element) section.element = element instanceof _discordmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.Component ? () => _discordmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement(element, {}) : typeof element == \"function\" ? element : () => element;\n this.panels.push(section);\n }\n\n removePanel(id) {\n const location = this.panels.findIndex(c => c.id == id);\n if (!location < 0) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"No collection with id \" + id);\n this.panels.splice(location, 1);\n }\n\n getPath(path, collectionId = \"\", categoryId = \"\") {\n const collection = path.length == 3 ? path[0] : collectionId;\n const category = path.length == 3 ? path[1] : path.length == 2 ? path[0] : categoryId;\n const setting = path[path.length - 1];\n return {\n collection,\n category,\n setting\n };\n }\n\n setup() {\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const categories = this.collections[c].settings;\n if (!this.state[collection.id]) this.state[collection.id] = {};\n\n for (let cc = 0; cc < categories.length; cc++) {\n const category = categories[cc];\n\n if (category.type != \"category\") {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = category.value;\n } else {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = {};\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n if (!this.state[collection.id][category.id].hasOwnProperty(setting.id)) this.state[collection.id][category.id][setting.id] = setting.value;\n\n if (setting.enableWith) {\n const path = this.getPath(setting.enableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return !this.state[path.collection][path.category][path.setting];\n }\n });\n }\n\n if (setting.disableWith) {\n const path = this.getPath(setting.disableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return this.state[path.collection][path.category][path.setting];\n }\n });\n }\n }\n }\n }\n }\n }\n\n saveSettings() {\n _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setData(\"settings\", this.state);\n }\n\n loadSettings() {\n const previousState = _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getData(\"settings\");\n if (!previousState) return this.saveSettings();\n\n for (const collection in this.state) {\n if (!previousState[collection]) Object.assign(previousState, {\n [collection]: this.state[collection]\n });\n\n for (const category in this.state[collection]) {\n if (!previousState[collection][category]) Object.assign(previousState[collection], {\n [category]: this.state[collection][category]\n });\n\n for (const setting in this.state[collection][category]) {\n if (previousState[collection][category][setting] == undefined) continue;\n this.state[collection][category][setting] = previousState[collection][category][setting];\n }\n }\n }\n\n this.saveSettings(); // in case new things were added\n }\n\n onSettingChange(collection, category, id, value) {\n this.state[collection][category][id] = value;\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"setting-updated\", collection, category, id, value);\n this.saveSettings();\n }\n\n getSetting(collection, category, id) {\n if (arguments.length == 2) return this.collections[0].find(c => c.id == arguments[0]).settings.find(s => s.id == arguments[1]);\n return this.collections.find(c => c.id == collection).find(c => c.id == category).settings.find(s => s.id == id);\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n if (!this.state[collection] || !this.state[collection][category]) return false;\n return this.state[collection][category][id];\n }\n\n set(collection, category, id, value) {\n if (arguments.length == 3) {\n value = id;\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n return this.onSettingChange(collection, category, id, value);\n }\n\n on(collection, category, identifier, callback) {\n const handler = (col, cat, id, value) => {\n if (col !== collection || cat !== category || id !== identifier) return;\n callback(value);\n };\n\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"setting-updated\", handler);\n return () => {\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].off(\"setting-updated\", handler);\n };\n }\n\n updateStrings() {\n // Update settings collections\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const CS = _strings__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Collections[collection.id];\n if (!CS) continue;\n collection.name = CS.name || collection.name;\n const categories = this.collections[c].settings;\n\n for (let cat = 0; cat < categories.length; cat++) {\n const category = categories[cat];\n const CatStr = CS[category.id];\n if (!CatStr) continue;\n category.name = CatStr.name || category.name;\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n const SetStr = CatStr[setting.id];\n if (!SetStr) continue;\n setting.name = SetStr.name || setting.name;\n setting.note = SetStr.note || setting.note;\n }\n }\n } // Update panel labels\n\n\n for (let p = 0; p < this.panels.length; p++) {\n const panel = this.panels[p];\n const Str = _strings__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Panels[panel.id];\n panel.label = Str || panel.label;\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyLmpzP2IyZjkiXSwibmFtZXMiOlsiU2V0dGluZ3NNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJzdGF0ZSIsImNvbGxlY3Rpb25zIiwicGFuZWxzIiwicmVnaXN0ZXJDb2xsZWN0aW9uIiwiU2V0dGluZ3NDb25maWciLCJ1cGRhdGVTdHJpbmdzIiwiYmluZCIsImluaXRpYWxpemUiLCJsb2FkU2V0dGluZ3MiLCJFdmVudHMiLCJvbiIsImlkIiwibmFtZSIsInNldHRpbmdzIiwiYnV0dG9uIiwiZmluZCIsImMiLCJMb2dnZXIiLCJlcnJvciIsInB1c2giLCJ0eXBlIiwic2V0dXAiLCJyZW1vdmVDb2xsZWN0aW9uIiwibG9jYXRpb24iLCJmaW5kSW5kZXgiLCJzcGxpY2UiLCJyZWdpc3RlclBhbmVsIiwib3B0aW9ucyIsInAiLCJlbGVtZW50Iiwib25DbGljayIsIm9yZGVyIiwic2VjdGlvbiIsImxhYmVsIiwiY2xpY2tMaXN0ZW5lciIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwicmVtb3ZlUGFuZWwiLCJnZXRQYXRoIiwicGF0aCIsImNvbGxlY3Rpb25JZCIsImNhdGVnb3J5SWQiLCJjb2xsZWN0aW9uIiwibGVuZ3RoIiwiY2F0ZWdvcnkiLCJzZXR0aW5nIiwiY2F0ZWdvcmllcyIsImNjIiwiaGFzT3duUHJvcGVydHkiLCJ2YWx1ZSIsInMiLCJlbmFibGVXaXRoIiwic3BsaXQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImRpc2FibGVXaXRoIiwic2F2ZVNldHRpbmdzIiwiRGF0YVN0b3JlIiwic2V0RGF0YSIsInByZXZpb3VzU3RhdGUiLCJnZXREYXRhIiwiYXNzaWduIiwidW5kZWZpbmVkIiwib25TZXR0aW5nQ2hhbmdlIiwiZGlzcGF0Y2giLCJnZXRTZXR0aW5nIiwiYXJndW1lbnRzIiwic2V0IiwiaWRlbnRpZmllciIsImNhbGxiYWNrIiwiaGFuZGxlciIsImNvbCIsImNhdCIsIm9mZiIsIkNTIiwiU3RyaW5ncyIsIkNvbGxlY3Rpb25zIiwiQ2F0U3RyIiwiU2V0U3RyIiwibm90ZSIsInBhbmVsIiwiU3RyIiwiUGFuZWxzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGVBQU4sQ0FBc0I7QUFFckNDLGFBQVcsR0FBRztBQUNWLFNBQUtDLEtBQUwsR0FBYSxFQUFiO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixFQUFuQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0Msa0JBQUwsQ0FBd0IsVUFBeEIsRUFBb0MsVUFBcEMsRUFBZ0RDLG1EQUFoRDtBQUNBLFNBQUtDLGFBQUwsR0FBcUIsS0FBS0EsYUFBTCxDQUFtQkMsSUFBbkIsQ0FBd0IsSUFBeEIsQ0FBckI7QUFDSDs7QUFFREMsWUFBVSxHQUFHO0FBQ1QsU0FBS0MsWUFBTDtBQUNBLFNBQUtILGFBQUw7QUFDQUksb0RBQU0sQ0FBQ0MsRUFBUCxDQUFVLGlCQUFWLEVBQTZCLEtBQUtMLGFBQWxDLEVBSFMsQ0FJVDtBQUNIOztBQUVERixvQkFBa0IsQ0FBQ1EsRUFBRCxFQUFLQyxJQUFMLEVBQVdDLFFBQVgsRUFBcUJDLE1BQU0sR0FBRyxJQUE5QixFQUFvQztBQUNsRCxRQUFJLEtBQUtiLFdBQUwsQ0FBaUJjLElBQWpCLENBQXNCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0wsRUFBRixJQUFRQSxFQUFuQyxDQUFKLEVBQTRDLE9BQU9NLCtDQUFNLENBQUNDLEtBQVAsQ0FBYSxVQUFiLEVBQXlCLHVDQUF1Q1AsRUFBaEUsQ0FBUDtBQUM1QyxTQUFLVixXQUFMLENBQWlCa0IsSUFBakIsQ0FBc0I7QUFDbEJDLFVBQUksRUFBRSxZQURZO0FBRWxCVCxRQUFFLEVBQUVBLEVBRmM7QUFHbEJDLFVBQUksRUFBRUEsSUFIWTtBQUls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QWQ7QUFDQSxZQUFNd0QsR0FBRyxHQUFHTixnREFBTyxDQUFDTyxNQUFSLENBQWVGLEtBQUssQ0FBQ3hFLEVBQXJCLENBQVo7QUFDQXdFLFdBQUssQ0FBQ2xELEtBQU4sR0FBY21ELEdBQUcsSUFBSUQsS0FBSyxDQUFDbEQsS0FBM0I7QUFDSDtBQUNKOztBQTNMb0MsQ0FBMUIsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3NldHRpbmdzbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2V0dGluZ3NDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBFdmVudHMgZnJvbSBcIi4vZW1pdHRlclwiO1xyXG5pbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuaW1wb3J0IFN0cmluZ3MgZnJvbSBcIi4vc3RyaW5nc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFNldHRpbmdzTWFuYWdlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhbmVscyA9IFtdO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJDb2xsZWN0aW9uKFwic2V0dGluZ3NcIiwgXCJTZXR0aW5nc1wiLCBTZXR0aW5nc0NvbmZpZyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTdHJpbmdzID0gdGhpcy51cGRhdGVTdHJpbmdzLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU3RyaW5ncygpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInN0cmluZ3MtdXBkYXRlZFwiLCB0aGlzLnVwZGF0ZVN0cmluZ3MpO1xyXG4gICAgICAgIC8vIHRoaXMucGF0Y2hTZWN0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyQ29sbGVjdGlvbihpZCwgbmFtZSwgc2V0dGluZ3MsIGJ1dHRvbiA9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5jb2xsZWN0aW9ucy5maW5kKGMgPT4gYy5pZCA9PSBpZCkpIHJldHVybiBMb2dnZXIuZXJyb3IoXCJTZXR0aW5nc1wiLCBcIkFscmVhZHkgaGF2ZSBhIGNvbGxlY3Rpb24gd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25zLnB1c2goe1xyXG4gICAgICAgICAgICB0eXBlOiBcImNvbGxlY3Rpb25cIixcclxuICAgICAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MsXHJcbiAgICAgICAgICAgIGJ1dHRvbjogYnV0dG9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU3RyaW5ncygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUNvbGxlY3Rpb24oaWQpIHtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuY29sbGVjdGlvbnMuZmluZEluZGV4KGMgPT4gYy5pZCA9PSBpZCk7XHJcbiAgICAgICAgaWYgKCFsb2NhdGlvbiA8IDApIHJldHVybiBMb2dnZXIuZXJyb3IoXCJTZXR0aW5nc1wiLCBcIk5vIGNvbGxlY3Rpb24gd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25zLnNwbGljZShsb2NhdGlvbiwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIFNldHRpbmdzUmVuZGVyZXIgYW5kIGFsc28gYWRkIGEgcmVnaXN0ZXJDb250ZW50UGFuZWxcclxuICAgIHJlZ2lzdGVyUGFuZWwoaWQsIG5hbWUsIG9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5wYW5lbHMuZmluZChwID0+IHAuaWQgPT0gaWQpKSByZXR1cm4gTG9nZ2VyLmVycm9yKFwiU2V0dGluZ3NcIiwgXCJBbHJlYWR5IGhhdmUgYSBwYW5lbCB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIGNvbnN0IHtlbGVtZW50LCBvbkNsaWNrLCBvcmRlciA9IDF9ID0gb3B0aW9ucztcclxuICAgICAgICBjb25zdCBzZWN0aW9uID0ge2lkLCBvcmRlciwgbGFiZWw6IG5hbWUsIHNlY3Rpb246IGlkfTtcclxuICAgICAgICBpZiAob25DbGljaykgc2VjdGlvbi5jbGlja0xpc3RlbmVyID0gb25DbGljaztcclxuICAgICAgICBpZiAoZWxlbWVudCkgc2VjdGlvbi5lbGVtZW50ID0gZWxlbWVudCBpbnN0YW5jZW9mIERpc2NvcmRNb2R1bGVzLlJlYWN0LkNvbXBvbmVudCA/ICgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoZWxlbWVudCwge30pIDogdHlwZW9mKGVsZW1lbnQpID09IFwiZnVuY3Rpb25cIiA/IGVsZW1lbnQgOiAoKSA9PiBlbGVtZW50O1xyXG4gICAgICAgIHRoaXMucGFuZWxzLnB1c2goc2VjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUGFuZWwoaWQpIHtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMucGFuZWxzLmZpbmRJbmRleChjID0+IGMuaWQgPT0gaWQpO1xyXG4gICAgICAgIGlmICghbG9jYXRpb24gPCAwKSByZXR1cm4gTG9nZ2VyLmVycm9yKFwiU2V0dGluZ3NcIiwgXCJObyBjb2xsZWN0aW9uIHdpdGggaWQgXCIgKyBpZCk7XHJcbiAgICAgICAgdGhpcy5wYW5lbHMuc3BsaWNlKGxvY2F0aW9uLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQYXRoKHBhdGgsIGNvbGxlY3Rpb25JZCA9IFwiXCIsIGNhdGVnb3J5SWQgPSBcIlwiKSB7XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHBhdGgubGVuZ3RoID09IDMgPyBwYXRoWzBdIDogY29sbGVjdGlvbklkO1xyXG4gICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gcGF0aC5sZW5ndGggPT0gMyA/IHBhdGhbMV0gOiBwYXRoLmxlbmd0aCA9PSAyID8gcGF0aFswXSA6IGNhdGVnb3J5SWQ7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZyA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcclxuICAgICAgICByZXR1cm4ge2NvbGxlY3Rpb24sIGNhdGVnb3J5LCBzZXR0aW5nfTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cCgpIHtcclxuICAgICAgICBmb3IgKGxldCBjID0gMDsgYyA8IHRoaXMuY29sbGVjdGlvbnMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuY29sbGVjdGlvbnNbY107XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSB0aGlzLmNvbGxlY3Rpb25zW2NdLnNldHRpbmdzO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0pIHRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0gPSB7fTtcclxuICAgICAgICAgICAgZm9yIChsZXQgY2MgPSAwOyBjYyA8IGNhdGVnb3JpZXMubGVuZ3RoOyBjYysrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2NdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5LnR5cGUgIT0gXCJjYXRlZ29yeVwiKSB7aWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdLmhhc093blByb3BlcnR5KGNhdGVnb3J5LmlkKSkgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXVtjYXRlZ29yeS5pZF0gPSBjYXRlZ29yeS52YWx1ZTt9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0uaGFzT3duUHJvcGVydHkoY2F0ZWdvcnkuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2F0ZWdvcnkuc2V0dGluZ3MubGVuZ3RoOyBzKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IGNhdGVnb3J5LnNldHRpbmdzW3NdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF1bY2F0ZWdvcnkuaWRdLmhhc093blByb3BlcnR5KHNldHRpbmcuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXVtzZXR0aW5nLmlkXSA9IHNldHRpbmcudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLmVuYWJsZVdpdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGgoc2V0dGluZy5lbmFibGVXaXRoLnNwbGl0KFwiLlwiKSwgY29sbGVjdGlvbi5pZCwgY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlZFwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2V0dGluZywgXCJkaXNhYmxlZFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5zdGF0ZVtwYXRoLmNvbGxlY3Rpb25dW3BhdGguY2F0ZWdvcnldW3BhdGguc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLmRpc2FibGVXaXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKHNldHRpbmcuZGlzYWJsZVdpdGguc3BsaXQoXCIuXCIpLCBjb2xsZWN0aW9uLmlkLCBjYXRlZ29yeS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZy5oYXNPd25Qcm9wZXJ0eShcImRpc2FibGVkXCIpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXR0aW5nLCBcImRpc2FibGVkXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVbcGF0aC5jb2xsZWN0aW9uXVtwYXRoLmNhdGVnb3J5XVtwYXRoLnNldHRpbmddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTZXR0aW5ncygpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShcInNldHRpbmdzXCIsIHRoaXMuc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRTZXR0aW5ncygpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1N0YXRlID0gRGF0YVN0b3JlLmdldERhdGEoXCJzZXR0aW5nc1wiKTtcclxuICAgICAgICBpZiAoIXByZXZpb3VzU3RhdGUpIHJldHVybiB0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiB0aGlzLnN0YXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXSkgT2JqZWN0LmFzc2lnbihwcmV2aW91c1N0YXRlLCB7W2NvbGxlY3Rpb25dOiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dfSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgaW4gdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XSkgT2JqZWN0LmFzc2lnbihwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dLCB7W2NhdGVnb3J5XTogdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV19KTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2V0dGluZyBpbiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtzZXR0aW5nXSA9PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW3NldHRpbmddID0gcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1bc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2F2ZVNldHRpbmdzKCk7IC8vIGluIGNhc2UgbmV3IHRoaW5ncyB3ZXJlIGFkZGVkXHJcbiAgICB9XHJcblxyXG4gICAgb25TZXR0aW5nQ2hhbmdlKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtpZF0gPSB2YWx1ZTtcclxuICAgICAgICBFdmVudHMuZGlzcGF0Y2goXCJzZXR0aW5nLXVwZGF0ZWRcIiwgY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCB2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTZXR0aW5nKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCkge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHJldHVybiB0aGlzLmNvbGxlY3Rpb25zWzBdLmZpbmQoYyA9PiBjLmlkID09IGFyZ3VtZW50c1swXSkuc2V0dGluZ3MuZmluZChzID0+IHMuaWQgPT0gYXJndW1lbnRzWzFdKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9ucy5maW5kKGMgPT4gYy5pZCA9PSBjb2xsZWN0aW9uKS5maW5kKGMgPT4gYy5pZCA9PSBjYXRlZ29yeSkuc2V0dGluZ3MuZmluZChzID0+IHMuaWQgPT0gaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgIGlkID0gY2F0ZWdvcnk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gY29sbGVjdGlvbjtcclxuICAgICAgICAgICAgY29sbGVjdGlvbiA9IFwic2V0dGluZ3NcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb25dIHx8ICF0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtpZF07XHJcbiAgICB9XHJcblxyXG4gICAgc2V0KGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCwgdmFsdWUpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAzKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gaWQ7XHJcbiAgICAgICAgICAgIGlkID0gY2F0ZWdvcnk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gY29sbGVjdGlvbjtcclxuICAgICAgICAgICAgY29sbGVjdGlvbiA9IFwic2V0dGluZ3NcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub25TZXR0aW5nQ2hhbmdlKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCwgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZGVudGlmaWVyLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoY29sLCBjYXQsIGlkLCB2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29sICE9PSBjb2xsZWN0aW9uIHx8IGNhdCAhPT0gY2F0ZWdvcnkgfHwgaWQgIT09IGlkZW50aWZpZXIpIHJldHVybjtcclxuICAgICAgICAgICAgY2FsbGJhY2sodmFsdWUpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgRXZlbnRzLm9uKFwic2V0dGluZy11cGRhdGVkXCIsIGhhbmRsZXIpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7RXZlbnRzLm9mZihcInNldHRpbmctdXBkYXRlZFwiLCBoYW5kbGVyKTt9O1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVN0cmluZ3MoKSB7XHJcbiAgICAgICAgLy8gVXBkYXRlIHNldHRpbmdzIGNvbGxlY3Rpb25zXHJcbiAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25zW2NdO1xyXG4gICAgICAgICAgICBjb25zdCBDUyA9IFN0cmluZ3MuQ29sbGVjdGlvbnNbY29sbGVjdGlvbi5pZF07XHJcbiAgICAgICAgICAgIGlmICghQ1MpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLm5hbWUgPSBDUy5uYW1lIHx8IGNvbGxlY3Rpb24ubmFtZTtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuY29sbGVjdGlvbnNbY10uc2V0dGluZ3M7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGNhdCA9IDA7IGNhdCA8IGNhdGVnb3JpZXMubGVuZ3RoOyBjYXQrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2NhdF07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBDYXRTdHIgPSBDU1tjYXRlZ29yeS5pZF07XHJcbiAgICAgICAgICAgICAgICBpZiAoIUNhdFN0cikgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXRlZ29yeS5uYW1lID0gQ2F0U3RyLm5hbWUgfHwgY2F0ZWdvcnkubmFtZTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2F0ZWdvcnkuc2V0dGluZ3MubGVuZ3RoOyBzKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nID0gY2F0ZWdvcnkuc2V0dGluZ3Nbc107XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgU2V0U3RyID0gQ2F0U3RyW3NldHRpbmcuaWRdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghU2V0U3RyKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLm5hbWUgPSBTZXRTdHIubmFtZSB8fCBzZXR0aW5nLm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5ub3RlID0gU2V0U3RyLm5vdGUgfHwgc2V0dGluZy5ub3RlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBVcGRhdGUgcGFuZWwgbGFiZWxzXHJcbiAgICAgICAgZm9yIChsZXQgcCA9IDA7IHAgPCB0aGlzLnBhbmVscy5sZW5ndGg7IHArKykge1xyXG4gICAgICAgICAgICBjb25zdCBwYW5lbCA9IHRoaXMucGFuZWxzW3BdO1xyXG4gICAgICAgICAgICBjb25zdCBTdHIgPSBTdHJpbmdzLlBhbmVsc1twYW5lbC5pZF07XHJcbiAgICAgICAgICAgIHBhbmVsLmxhYmVsID0gU3RyIHx8IHBhbmVsLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/settingsmanager.js\n"); /***/ }), @@ -803,7 +803,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (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 Modals; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Modals {\n static get shouldShowContentErrors() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"addonErrors\");\n }\n\n static get ModalStack() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n }\n\n static get AlertModal() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByPrototypes(\"handleCancel\", \"handleSubmit\", \"handleMinorConfirm\");\n }\n\n static get TextElement() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"Sizes\", \"Weights\");\n }\n\n static get ConfirmationModal() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getModule(m => m.defaultProps && m.key && m.key() == \"confirm-modal\");\n }\n\n static default(title, content) {\n const backdrop = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"backdrop\") || {\n backdrop: \"backdrop-1wrmKb\"\n };\n const baseModalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getModule(m => m.modal && m.inner && !m.sizeMedium) || {\n modal: \"modal-36zFtW\",\n inner: \"inner-2VEzy9\"\n };\n const modalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"sizeMedium\") || {\n modal: \"backdrop-1wrmKb\",\n sizeMedium: \"sizeMedium-ctncE5\",\n content: \"content-2KoCOZ\",\n header: \"header-2nhbou\",\n footer: \"footer-30ewN8\",\n close: \"close-hhyjWJ\",\n inner: \"inner-2Z5QZX\"\n };\n const modal = modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].parseHTML(`
\n
\n
\n
\n
\n
${title}
\n
\n
\n
\n
\n ${content}\n
\n
\n
\n
\n \n
\n
\n
\n
`);\n modal.querySelector(\".footer button\").addEventListener(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.querySelector(\".bd-backdrop\").addEventListener(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n document.querySelector(\"#app-mount\").append(modal);\n }\n\n static alert(title, content) {\n if (this.ModalStack && this.AlertModal) return this.default(title, content);\n this.ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(this.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)} 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\n static showConfirmationModal(title, content, options = {}) {\n const TextElement = this.TextElement;\n const ConfirmationModal = this.ConfirmationModal;\n const ModalStack = this.ModalStack;\n if (!this.ModalStack || !this.ConfirmationModal || !this.TextElement) return this.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.default({\n color: TextElement.Colors.PRIMARY,\n children: [content]\n });else if (Array.isArray(content)) content = TextElement.default({\n color: TextElement.Colors.PRIMARY,\n children: content\n });\n content = [content];\n\n const emptyFunction = () => {};\n\n ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(ConfirmationModal, Object.assign({\n header: title,\n children: content,\n red: danger,\n confirmText: confirmText ? confirmText : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.okay,\n cancelText: cancelText ? cancelText : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.cancel,\n onConfirm: onConfirm ? onConfirm : emptyFunction,\n onCancel: onCancel ? onCancel : emptyFunction\n }, props));\n });\n }\n\n static showContentErrors({\n plugins: pluginErrors = [],\n themes: themeErrors = []\n }) {\n if (!pluginErrors || !themeErrors || !this.shouldShowContentErrors) return;\n if (!pluginErrors.length && !themeErrors.length) return;\n const backdrop = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"backdrop\") || {\n backdrop: \"backdrop-1wrmKb\"\n };\n const baseModalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getModule(m => m.modal && m.inner && !m.sizeMedium) || {\n modal: \"modal-36zFtW\",\n inner: \"inner-2VEzy9\"\n };\n const modalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"sizeMedium\") || {\n modal: \"modal-3v8ziU\",\n sizeMedium: \"sizeMedium-ctncE5\",\n content: \"content-2KoCOZ\",\n header: \"header-2nhbou\",\n footer: \"footer-30ewN8\",\n close: \"close-hhyjWJ\",\n inner: \"inner-2Z5QZX\"\n };\n const modal = $(`
\n
\n
\n
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.addonErrors}
\n
\n
\n
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].General.plugins}
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].General.themes}
\n
\n
\n
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.name}
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.message}
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.error}
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
`);\n\n const generateTab = function (errors) {\n const container = $(`
`);\n\n for (const err of errors) {\n const error = $(`
\n
${err.name ? err.name : err.file}
\n
${err.message}
\n \n
`);\n container.append(error);\n\n if (err.error) {\n error.find(\"a\").on(\"click\", e => {\n e.preventDefault();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].stacktrace(\"ContentError\", `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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL21vZGFscy5qcz8zYWIyIl0sIm5hbWVzIjpbIk1vZGFscyIsInNob3VsZFNob3dDb250ZW50RXJyb3JzIiwiU2V0dGluZ3MiLCJnZXQiLCJNb2RhbFN0YWNrIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiQWxlcnRNb2RhbCIsImdldEJ5UHJvdG90eXBlcyIsIlRleHRFbGVtZW50IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJnZXRNb2R1bGUiLCJtIiwiZGVmYXVsdFByb3BzIiwia2V5IiwiZGVmYXVsdCIsInRpdGxlIiwiY29udGVudCIsImJhY2tkcm9wIiwiYmFzZU1vZGFsQ2xhc3NlcyIsIm1vZGFsIiwiaW5uZXIiLCJzaXplTWVkaXVtIiwibW9kYWxDbGFzc2VzIiwiaGVhZGVyIiwiZm9vdGVyIiwiY2xvc2UiLCJVdGlsaXRpZXMiLCJwYXJzZUhUTUwiLCJTdHJpbmdzIiwib2theSIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwiYWRkQ2xhc3MiLCJzZXRUaW1lb3V0IiwicmVtb3ZlIiwiZG9jdW1lbnQiLCJhcHBlbmQiLCJhbGVydCIsInB1c2giLCJwcm9wcyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsImJvZHkiLCJzaG93Q29uZmlybWF0aW9uTW9kYWwiLCJvcHRpb25zIiwib25Db25maXJtIiwib25DYW5jZWwiLCJjb25maXJtVGV4dCIsImNhbmNlbFRleHQiLCJkYW5nZXIiLCJjb2xvciIsIkNvbG9ycyIsIlBSSU1BUlkiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsImVtcHR5RnVuY3Rpb24iLCJyZWQiLCJjYW5jZWwiLCJzaG93Q29udGVudEVycm9ycyIsInBsdWdpbnMiLCJwbHVnaW5FcnJvcnMiLCJ0aGVtZXMiLCJ0aGVtZUVycm9ycyIsImxlbmd0aCIsIiQiLCJhZGRvbkVycm9ycyIsIkdlbmVyYWwiLCJuYW1lIiwibWVzc2FnZSIsImVycm9yIiwiZ2VuZXJhdGVUYWIiLCJlcnJvcnMiLCJjb250YWluZXIiLCJlcnIiLCJmaWxlIiwiZmluZCIsIm9uIiwiZSIsInByZXZlbnREZWZhdWx0IiwiTG9nZ2VyIiwic3RhY2t0cmFjZSIsInRhYnMiLCJyZW1vdmVDbGFzcyIsInRhcmdldCIsImVtcHR5IiwiaW5kZXgiLCJhcHBlbmRUbyIsImNsaWNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE1BQU4sQ0FBYTtBQUV4QixhQUFXQyx1QkFBWCxHQUFxQztBQUFDLFdBQU9DLGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFiLEVBQXlCLFFBQXpCLEVBQW1DLGFBQW5DLENBQVA7QUFBMEQ7O0FBRWhHLGFBQVdDLFVBQVgsR0FBd0I7QUFBQyxXQUFPQyxzREFBYyxDQUFDQyxVQUFmLENBQTBCLE1BQTFCLEVBQWtDLFFBQWxDLEVBQTRDLEtBQTVDLEVBQW1ELFlBQW5ELENBQVA7QUFBeUU7O0FBQ2xHLGFBQVdDLFVBQVgsR0FBd0I7QUFBQyxXQUFPRixzREFBYyxDQUFDRyxlQUFmLENBQStCLGNBQS9CLEVBQStDLGNBQS9DLEVBQStELG9CQUEvRCxDQUFQO0FBQTZGOztBQUN0SCxhQUFXQyxXQUFYLEdBQXlCO0FBQUMsV0FBT0osc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixPQUExQixFQUFtQyxTQUFuQyxDQUFQO0FBQXNEOztBQUNoRixhQUFXSSxpQkFBWCxHQUErQjtBQUFDLFdBQU9MLHNEQUFjLENBQUNNLFNBQWYsQ0FBeUJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxZQUFGLElBQWtCRCxDQUFDLENBQUNFLEdBQXBCLElBQTJCRixDQUFDLENBQUNFLEdBQUYsTUFBVyxlQUFwRSxDQUFQO0FBQTZGOztBQUU3SCxTQUFPQyxPQUFQLENBQWVDLEtBQWYsRUFBc0JDLE9BQXRCLEVBQStCO0FBQzNCLFVBQU1DLFFBQVEsR0FBR2Isc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixVQUExQixLQUF5QztBQUFDWSxjQUFR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QzVELFdBQUssQ0FBQ2EsUUFBTixDQUFlLFNBQWY7QUFDQUMsZ0JBQVUsQ0FBQyxNQUFNO0FBQUVkLGFBQUssQ0FBQ2UsTUFBTjtBQUFpQixPQUExQixFQUE0QixHQUE1QixDQUFWO0FBQ0gsS0FIRDtBQUlBZixTQUFLLENBQUNzRSxRQUFOLENBQWUsWUFBZjtBQUNBLFFBQUkxQixZQUFZLENBQUNHLE1BQWpCLEVBQXlCL0MsS0FBSyxDQUFDMkQsSUFBTixDQUFXLGVBQVgsRUFBNEIsQ0FBNUIsRUFBK0JZLEtBQS9CLEdBQXpCLEtBQ0t2RSxLQUFLLENBQUMyRCxJQUFOLENBQVcsZUFBWCxFQUE0QixDQUE1QixFQUErQlksS0FBL0I7QUFDUjs7QUFyS3VCIiwiZmlsZSI6Ii4vc3JjL3VpL21vZGFscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyLCBXZWJwYWNrTW9kdWxlcywgVXRpbGl0aWVzLCBSZWFjdCwgU2V0dGluZ3MsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RhbHMge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgc2hvdWxkU2hvd0NvbnRlbnRFcnJvcnMoKSB7cmV0dXJuIFNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiYWRkb25zXCIsIFwiYWRkb25FcnJvcnNcIik7fVxyXG5cclxuICAgIHN0YXRpYyBnZXQgTW9kYWxTdGFjaygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInB1c2hcIiwgXCJ1cGRhdGVcIiwgXCJwb3BcIiwgXCJwb3BXaXRoS2V5XCIpO31cclxuICAgIHN0YXRpYyBnZXQgQWxlcnRNb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm90b3R5cGVzKFwiaGFuZGxlQ2FuY2VsXCIsIFwiaGFuZGxlU3VibWl0XCIsIFwiaGFuZGxlTWlub3JDb25maXJtXCIpO31cclxuICAgIHN0YXRpYyBnZXQgVGV4dEVsZW1lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJTaXplc1wiLCBcIldlaWdodHNcIik7fVxyXG4gICAgc3RhdGljIGdldCBDb25maXJtYXRpb25Nb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0UHJvcHMgJiYgbS5rZXkgJiYgbS5rZXkoKSA9PSBcImNvbmZpcm0tbW9kYWxcIik7fVxyXG5cclxuICAgIHN0YXRpYyBkZWZhdWx0KHRpdGxlLCBjb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgYmFja2Ryb3AgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYmFja2Ryb3BcIikgfHwge2JhY2tkcm9wOiBcImJhY2tkcm9wLTF3cm1LYlwifTtcclxuICAgICAgICBjb25zdCBiYXNlTW9kYWxDbGFzc2VzID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5tb2RhbCAmJiBtLmlubmVyICYmICFtLnNpemVNZWRpdW0pIHx8IHttb2RhbDogXCJtb2RhbC0zNnpGdFdcIiwgaW5uZXI6IFwiaW5uZXItMlZFenk5XCJ9O1xyXG4gICAgICAgIGNvbnN0IG1vZGFsQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaXplTWVkaXVtXCIpIHx8IHttb2RhbDogXCJiYWNrZHJvcC0xd3JtS2JcIiwgc2l6ZU1lZGl1bTogXCJzaXplTWVkaXVtLWN0bmNFNVwiLCBjb250ZW50OiBcImNvbnRlbnQtMktvQ09aXCIsIGhlYWRlcjogXCJoZWFkZXItMm5oYm91XCIsIGZvb3RlcjogXCJmb290ZXItMzBld044XCIsIGNsb3NlOiBcImNsb3NlLWhoeWpXSlwiLCBpbm5lcjogXCJpbm5lci0yWjVRWlhcIn07XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSBVdGlsaXRpZXMucGFyc2VIVE1MKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtYmFja2Ryb3AgJHtiYWNrZHJvcC5iYWNrZHJvcH1cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1tb2RhbCAke2Jhc2VNb2RhbENsYXNzZXMubW9kYWx9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWlubmVyICR7YmFzZU1vZGFsQ2xhc3Nlcy5pbm5lcn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBoZWFkZXItMVJfQWpGXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj4ke3RpdGxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIGZhZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyICR7bW9kYWxDbGFzc2VzLmZvb3Rlcn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiPiR7U3RyaW5ncy5Nb2RhbHMub2theX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+YCk7XHJcbiAgICAgICAgbW9kYWwucXVlcnlTZWxlY3RvcihcIi5mb290ZXIgYnV0dG9uXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG1vZGFsLnJlbW92ZSgpOyB9LCAzMDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIuYmQtYmFja2Ryb3BcIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgbW9kYWwuYWRkQ2xhc3MoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikuYXBwZW5kKG1vZGFsKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWxlcnQodGl0bGUsIGNvbnRlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5Nb2RhbFN0YWNrICYmIHRoaXMuQWxlcnRNb2RhbCkgcmV0dXJuIHRoaXMuZGVmYXVsdCh0aXRsZSwgY29udGVudCk7XHJcbiAgICAgICAgdGhpcy5Nb2RhbFN0YWNrLnB1c2goZnVuY3Rpb24ocHJvcHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQodGhpcy5BbGVydE1vZGFsLCBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgIGJvZHk6IGNvbnRlbnQsXHJcbiAgICAgICAgICAgIH0sIHByb3BzKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93cyBhIGdlbmVyaWMgYnV0IHZlcnkgY3VzdG9taXphYmxlIGNvbmZpcm1hdGlvbiBtb2RhbCB3aXRoIG9wdGlvbmFsIGNvbmZpcm0gYW5kIGNhbmNlbCBjYWxsYmFja3MuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiB0aGUgbW9kYWxcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xSZWFjdEVsZW1lbnR8QXJyYXk8c3RyaW5nfFJlYWN0RWxlbWVudD4pfSBjaGlsZHJlbiAtIGEgc2luZ2xlIG9yIG1peGVkIGFycmF5IG9mIHJlYWN0IGVsZW1lbnRzIGFuZCBzdHJpbmdzLiBFdmVyeXRoaW5nIGlzIHdyYXBwZWQgaW4gRGlzY29yZCdzIGBUZXh0RWxlbWVudGAgY29tcG9uZW50IHNvIHN0cmluZ3Mgd2lsbCBzaG93IGFuZCByZW5kZXIgcHJvcGVybHkuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gb3B0aW9ucyB0byBtb2RpZnkgdGhlIG1vZGFsXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmRhbmdlcj1mYWxzZV0gLSB3aGV0aGVyIHRoZSBtYWluIGJ1dHRvbiBzaG91bGQgYmUgcmVkIG9yIG5vdFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmNvbmZpcm1UZXh0PU9rYXldIC0gdGV4dCBmb3IgdGhlIGNvbmZpcm1hdGlvbi9zdWJtaXQgYnV0dG9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY2FuY2VsVGV4dD1DYW5jZWxdIC0gdGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b25cclxuICAgICAqIEBwYXJhbSB7Y2FsbGFibGV9IFtvcHRpb25zLm9uQ29uZmlybT1OT09QXSAtIGNhbGxiYWNrIHRvIG9jY3VyIHdoZW4gY2xpY2tpbmcgdGhlIHN1Ym1pdCBidXR0b25cclxuICAgICAqIEBwYXJhbSB7Y2FsbGFibGV9IFtvcHRpb25zLm9uQ2FuY2VsPU5PT1BdIC0gY2FsbGJhY2sgdG8gb2NjdXIgd2hlbiBjbGlja2luZyB0aGUgY2FuY2VsIGJ1dHRvblxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgc2hvd0NvbmZpcm1hdGlvbk1vZGFsKHRpdGxlLCBjb250ZW50LCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICBjb25zdCBUZXh0RWxlbWVudCA9IHRoaXMuVGV4dEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgQ29uZmlybWF0aW9uTW9kYWwgPSB0aGlzLkNvbmZpcm1hdGlvbk1vZGFsO1xyXG4gICAgICAgIGNvbnN0IE1vZGFsU3RhY2sgPSB0aGlzLk1vZGFsU3RhY2s7XHJcbiAgICAgICAgaWYgKCF0aGlzLk1vZGFsU3RhY2sgfHwgIXRoaXMuQ29uZmlybWF0aW9uTW9kYWwgfHwgIXRoaXMuVGV4dEVsZW1lbnQpIHJldHVybiB0aGlzLmFsZXJ0KHRpdGxlLCBjb250ZW50KTtcclxuXHJcbiAgICAgICAgY29uc3Qge29uQ29uZmlybSwgb25DYW5jZWwsIGNvbmZpcm1UZXh0LCBjYW5jZWxUZXh0LCBkYW5nZXIgPSBmYWxzZX0gPSBvcHRpb25zO1xyXG4gICAgICAgIGlmICh0eXBlb2YoY29udGVudCkgPT0gXCJzdHJpbmdcIikgY29udGVudCA9IFRleHRFbGVtZW50LmRlZmF1bHQoe2NvbG9yOiBUZXh0RWxlbWVudC5Db2xvcnMuUFJJTUFSWSwgY2hpbGRyZW46IFtjb250ZW50XX0pO1xyXG4gICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29udGVudCkpIGNvbnRlbnQgPSBUZXh0RWxlbWVudC5kZWZhdWx0KHtjb2xvcjogVGV4dEVsZW1lbnQuQ29sb3JzLlBSSU1BUlksIGNoaWxkcmVuOiBjb250ZW50fSk7XHJcbiAgICAgICAgY29udGVudCA9IFtjb250ZW50XTtcclxuXHJcbiAgICAgICAgY29uc3QgZW1wdHlGdW5jdGlvbiA9ICgpID0+IHt9O1xyXG4gICAgICAgIE1vZGFsU3RhY2sucHVzaChmdW5jdGlvbihwcm9wcykge1xyXG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb25maXJtYXRpb25Nb2RhbCwgT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICByZWQ6IGRhbmdlcixcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1UZXh0OiBjb25maXJtVGV4dCA/IGNvbmZpcm1UZXh0IDogU3RyaW5ncy5Nb2RhbHMub2theSxcclxuICAgICAgICAgICAgICAgIGNhbmNlbFRleHQ6IGNhbmNlbFRleHQgPyBjYW5jZWxUZXh0IDogU3RyaW5ncy5Nb2RhbHMuY2FuY2VsLFxyXG4gICAgICAgICAgICAgICAgb25Db25maXJtOiBvbkNvbmZpcm0gPyBvbkNvbmZpcm0gOiBlbXB0eUZ1bmN0aW9uLFxyXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6IG9uQ2FuY2VsID8gb25DYW5jZWwgOiBlbXB0eUZ1bmN0aW9uXHJcbiAgICAgICAgICAgIH0sIHByb3BzKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMgPSBbXSwgdGhlbWVzOiB0aGVtZUVycm9ycyA9IFtdfSkge1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzIHx8ICF0aGVtZUVycm9ycyB8fCAhdGhpcy5zaG91bGRTaG93Q29udGVudEVycm9ycykgcmV0dXJuO1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzLmxlbmd0aCAmJiAhdGhlbWVFcnJvcnMubGVuZ3RoKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgYmFja2Ryb3AgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYmFja2Ryb3BcIikgfHwge2JhY2tkcm9wOiBcImJhY2tkcm9wLTF3cm1LYlwifTtcclxuICAgICAgICBjb25zdCBiYXNlTW9kYWxDbGFzc2VzID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5tb2RhbCAmJiBtLmlubmVyICYmICFtLnNpemVNZWRpdW0pIHx8IHttb2RhbDogXCJtb2RhbC0zNnpGdFdcIiwgaW5uZXI6IFwiaW5uZXItMlZFenk5XCJ9O1xyXG4gICAgICAgIGNvbnN0IG1vZGFsQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaXplTWVkaXVtXCIpIHx8IHttb2RhbDogXCJtb2RhbC0zdjh6aVVcIiwgc2l6ZU1lZGl1bTogXCJzaXplTWVkaXVtLWN0bmNFNVwiLCBjb250ZW50OiBcImNvbnRlbnQtMktvQ09aXCIsIGhlYWRlcjogXCJoZWFkZXItMm5oYm91XCIsIGZvb3RlcjogXCJmb290ZXItMzBld044XCIsIGNsb3NlOiBcImNsb3NlLWhoeWpXSlwiLCBpbm5lcjogXCJpbm5lci0yWjVRWlhcIn07XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSAkKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1iYWNrZHJvcCAke2JhY2tkcm9wLmJhY2tkcm9wfVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwgYmQtY29udGVudC1tb2RhbCAke2Jhc2VNb2RhbENsYXNzZXMubW9kYWx9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtaW5uZXIgJHtiYXNlTW9kYWxDbGFzc2VzLmlubmVyfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgJHttb2RhbENsYXNzZXMuaGVhZGVyfVwiPjxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7U3RyaW5ncy5Nb2RhbHMuYWRkb25FcnJvcnN9PC9kaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhciBUT1BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhci1pdGVtXCI+JHtTdHJpbmdzLkdlbmVyYWwucGx1Z2luc308L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhci1pdGVtXCI+JHtTdHJpbmdzLkdlbmVyYWwudGhlbWVzfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1uYW1lXCI+JHtTdHJpbmdzLk1vZGFscy5uYW1lfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbWVzc2FnZVwiPiR7U3RyaW5ncy5Nb2RhbHMubWVzc2FnZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLWVycm9yXCI+JHtTdHJpbmdzLk1vZGFscy5lcnJvcn08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIGZhZGUgJHttb2RhbENsYXNzZXMuY29udGVudH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlclwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyICR7bW9kYWxDbGFzc2VzLmZvb3Rlcn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+JHtTdHJpbmdzLk1vZGFscy5va2F5fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmApO1xyXG5cclxuICAgICAgICBjb25zdCBnZW5lcmF0ZVRhYiA9IGZ1bmN0aW9uKGVycm9ycykge1xyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKGA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+YCk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ycykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSAkKGA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbmFtZVwiPiR7ZXJyLm5hbWUgPyBlcnIubmFtZSA6IGVyci5maWxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1tZXNzYWdlXCI+JHtlcnIubWVzc2FnZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tZXJyb3JcIj48YSBjbGFzcz1cImVycm9yLWxpbmtcIiBocmVmPVwiXCI+JHtlcnIuZXJyb3IgPyBlcnIuZXJyb3IubWVzc2FnZSA6IFwiXCJ9PC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmApO1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuZmluZChcImFcIikub24oXCJjbGlja1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExvZ2dlci5zdGFja3RyYWNlKFwiQ29udGVudEVycm9yXCIsIGBFcnJvciBkZXRhaWxzIGZvciAke2Vyci5uYW1lID8gZXJyLm5hbWUgOiBlcnIuZmlsZX0uYCwgZXJyLmVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY29udGFpbmVyO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IHRhYnMgPSBbZ2VuZXJhdGVUYWIocGx1Z2luRXJyb3JzKSwgZ2VuZXJhdGVUYWIodGhlbWVFcnJvcnMpXTtcclxuXHJcbiAgICAgICAgbW9kYWwuZmluZChcIi50YWItYmFyLWl0ZW1cIikub24oXCJjbGlja1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XHJcbiAgICAgICAgICAgICQoZS50YXJnZXQpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XHJcbiAgICAgICAgICAgIG1vZGFsLmZpbmQoXCIuc2Nyb2xsZXJcIikuZW1wdHkoKS5hcHBlbmQodGFic1skKGUudGFyZ2V0KS5pbmRleCgpXSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1vZGFsLmZpbmQoXCIuZm9vdGVyIGJ1dHRvblwiKS5vbihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgbW9kYWwuYWRkQ2xhc3MoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbW9kYWwuZmluZChcIi5iZC1iYWNrZHJvcFwiKS5vbihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgbW9kYWwuYWRkQ2xhc3MoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbW9kYWwuYXBwZW5kVG8oXCIjYXBwLW1vdW50XCIpO1xyXG4gICAgICAgIGlmIChwbHVnaW5FcnJvcnMubGVuZ3RoKSBtb2RhbC5maW5kKFwiLnRhYi1iYXItaXRlbVwiKVswXS5jbGljaygpO1xyXG4gICAgICAgIGVsc2UgbW9kYWwuZmluZChcIi50YWItYmFyLWl0ZW1cIilbMV0uY2xpY2soKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/modals.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Modals; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Modals {\n static get shouldShowContentErrors() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"addonErrors\");\n }\n\n static get ModalStack() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n }\n\n static get AlertModal() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByPrototypes(\"handleCancel\", \"handleSubmit\", \"handleMinorConfirm\");\n }\n\n static get TextElement() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"Sizes\", \"Weights\");\n }\n\n static get ConfirmationModal() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getModule(m => m.defaultProps && m.key && m.key() == \"confirm-modal\");\n }\n\n static default(title, content) {\n const backdrop = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"backdrop\") || {\n backdrop: \"backdrop-1wrmKb\"\n };\n const baseModalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getModule(m => m.modal && m.inner && !m.sizeMedium) || {\n modal: \"modal-36zFtW\",\n inner: \"inner-2VEzy9\"\n };\n const modalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"sizeMedium\") || {\n modal: \"backdrop-1wrmKb\",\n sizeMedium: \"sizeMedium-ctncE5\",\n content: \"content-2KoCOZ\",\n header: \"header-2nhbou\",\n footer: \"footer-30ewN8\",\n close: \"close-hhyjWJ\",\n inner: \"inner-2Z5QZX\"\n };\n const modal = modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].parseHTML(`
\n
\n
\n
\n
\n
${title}
\n
\n
\n
\n
\n ${content}\n
\n
\n
\n
\n \n
\n
\n
\n
`);\n modal.querySelector(\".footer button\").addEventListener(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.querySelector(\".bd-backdrop\").addEventListener(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n document.querySelector(\"#app-mount\").append(modal);\n }\n\n static alert(title, content) {\n if (this.ModalStack && this.AlertModal) return this.default(title, content);\n this.ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(this.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)} 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\n static showConfirmationModal(title, content, options = {}) {\n const TextElement = this.TextElement;\n const ConfirmationModal = this.ConfirmationModal;\n const ModalStack = this.ModalStack;\n if (!this.ModalStack || !this.ConfirmationModal || !this.TextElement) return this.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.default({\n color: TextElement.Colors.PRIMARY,\n children: [content]\n });else if (Array.isArray(content)) content = TextElement.default({\n color: TextElement.Colors.PRIMARY,\n children: content\n });\n content = [content];\n\n const emptyFunction = () => {};\n\n ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(ConfirmationModal, Object.assign({\n header: title,\n children: content,\n red: danger,\n confirmText: confirmText ? confirmText : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.okay,\n cancelText: cancelText ? cancelText : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.cancel,\n onConfirm: onConfirm ? onConfirm : emptyFunction,\n onCancel: onCancel ? onCancel : emptyFunction\n }, props));\n });\n }\n\n static showContentErrors({\n plugins: pluginErrors = [],\n themes: themeErrors = []\n }) {\n if (!pluginErrors || !themeErrors || !this.shouldShowContentErrors) return;\n if (!pluginErrors.length && !themeErrors.length) return;\n const backdrop = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"backdrop\") || {\n backdrop: \"backdrop-1wrmKb\"\n };\n const baseModalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getModule(m => m.modal && m.inner && !m.sizeMedium) || {\n modal: \"modal-36zFtW\",\n inner: \"inner-2VEzy9\"\n };\n const modalClasses = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"sizeMedium\") || {\n modal: \"modal-3v8ziU\",\n sizeMedium: \"sizeMedium-ctncE5\",\n content: \"content-2KoCOZ\",\n header: \"header-2nhbou\",\n footer: \"footer-30ewN8\",\n close: \"close-hhyjWJ\",\n inner: \"inner-2Z5QZX\"\n };\n const modal = $(`
\n
\n
\n
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.addonErrors}
\n
\n
\n
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Panels.plugins}
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Panels.themes}
\n
\n
\n
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.name}
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.message}
\n
${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.error}
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
`);\n\n const generateTab = function (errors) {\n const container = $(`
`);\n\n for (const err of errors) {\n const error = $(`
\n
${err.name ? err.name : err.file}
\n
${err.message}
\n \n
`);\n container.append(error);\n\n if (err.error) {\n error.find(\"a\").on(\"click\", e => {\n e.preventDefault();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].stacktrace(\"ContentError\", `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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL21vZGFscy5qcz8zYWIyIl0sIm5hbWVzIjpbIk1vZGFscyIsInNob3VsZFNob3dDb250ZW50RXJyb3JzIiwiU2V0dGluZ3MiLCJnZXQiLCJNb2RhbFN0YWNrIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiQWxlcnRNb2RhbCIsImdldEJ5UHJvdG90eXBlcyIsIlRleHRFbGVtZW50IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJnZXRNb2R1bGUiLCJtIiwiZGVmYXVsdFByb3BzIiwia2V5IiwiZGVmYXVsdCIsInRpdGxlIiwiY29udGVudCIsImJhY2tkcm9wIiwiYmFzZU1vZGFsQ2xhc3NlcyIsIm1vZGFsIiwiaW5uZXIiLCJzaXplTWVkaXVtIiwibW9kYWxDbGFzc2VzIiwiaGVhZGVyIiwiZm9vdGVyIiwiY2xvc2UiLCJVdGlsaXRpZXMiLCJwYXJzZUhUTUwiLCJTdHJpbmdzIiwib2theSIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwiYWRkQ2xhc3MiLCJzZXRUaW1lb3V0IiwicmVtb3ZlIiwiZG9jdW1lbnQiLCJhcHBlbmQiLCJhbGVydCIsInB1c2giLCJwcm9wcyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsImJvZHkiLCJzaG93Q29uZmlybWF0aW9uTW9kYWwiLCJvcHRpb25zIiwib25Db25maXJtIiwib25DYW5jZWwiLCJjb25maXJtVGV4dCIsImNhbmNlbFRleHQiLCJkYW5nZXIiLCJjb2xvciIsIkNvbG9ycyIsIlBSSU1BUlkiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsImVtcHR5RnVuY3Rpb24iLCJyZWQiLCJjYW5jZWwiLCJzaG93Q29udGVudEVycm9ycyIsInBsdWdpbnMiLCJwbHVnaW5FcnJvcnMiLCJ0aGVtZXMiLCJ0aGVtZUVycm9ycyIsImxlbmd0aCIsIiQiLCJhZGRvbkVycm9ycyIsIlBhbmVscyIsIm5hbWUiLCJtZXNzYWdlIiwiZXJyb3IiLCJnZW5lcmF0ZVRhYiIsImVycm9ycyIsImNvbnRhaW5lciIsImVyciIsImZpbGUiLCJmaW5kIiwib24iLCJlIiwicHJldmVudERlZmF1bHQiLCJMb2dnZXIiLCJzdGFja3RyYWNlIiwidGFicyIsInJlbW92ZUNsYXNzIiwidGFyZ2V0IiwiZW1wdHkiLCJpbmRleCIsImFwcGVuZFRvIiwiY2xpY2siXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsTUFBTixDQUFhO0FBRXhCLGFBQVdDLHVCQUFYLEdBQXFDO0FBQUMsV0FBT0MsZ0RBQVEsQ0FBQ0MsR0FBVCxDQUFhLFVBQWIsRUFBeUIsUUFBekIsRUFBbUMsYUFBbkMsQ0FBUDtBQUEwRDs7QUFFaEcsYUFBV0MsVUFBWCxHQUF3QjtBQUFDLFdBQU9DLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsTUFBMUIsRUFBa0MsUUFBbEMsRUFBNEMsS0FBNUMsRUFBbUQsWUFBbkQsQ0FBUDtBQUF5RTs7QUFDbEcsYUFBV0MsVUFBWCxHQUF3QjtBQUFDLFdBQU9GLHNEQUFjLENBQUNHLGVBQWYsQ0FBK0IsY0FBL0IsRUFBK0MsY0FBL0MsRUFBK0Qsb0JBQS9ELENBQVA7QUFBNkY7O0FBQ3RILGFBQVdDLFdBQVgsR0FBeUI7QUFBQyxXQUFPSixzREFBYyxDQUFDQyxVQUFmLENBQTBCLE9BQTFCLEVBQW1DLFNBQW5DLENBQVA7QUFBc0Q7O0FBQ2hGLGFBQVdJLGlCQUFYLEdBQStCO0FBQUMsV0FBT0wsc0RBQWMsQ0FBQ00sU0FBZixDQUF5QkMsQ0FBQyxJQUFJQSxDQUFDLENBQUNDLFlBQUYsSUFBa0JELENBQUMsQ0FBQ0UsR0FBcEIsSUFBMkJGLENBQUMsQ0FBQ0UsR0FBRixNQUFXLGVBQXBFLENBQVA7QUFBNkY7O0FBRTdILFNBQU9DLE9BQVAsQ0FBZUMsS0FBZixFQUFzQkMsT0FBdEIsRUFBK0I7QUFDM0IsVUFBTUMsUUFBUSxHQUFHYixzREFBYyxDQUFDQyxVQUFmLENBQTBCLFVBQTFCLEtBQXlDO0FBQUNZLGNBQVEs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LFdBQUssQ0FBQ2EsUUFBTixDQUFlLFNBQWY7QUFDQUMsZ0JBQVUsQ0FBQyxNQUFNO0FBQUVkLGFBQUssQ0FBQ2UsTUFBTjtBQUFpQixPQUExQixFQUE0QixHQUE1QixDQUFWO0FBQ0gsS0FIRDtBQUlBZixTQUFLLENBQUNzRSxRQUFOLENBQWUsWUFBZjtBQUNBLFFBQUkxQixZQUFZLENBQUNHLE1BQWpCLEVBQXlCL0MsS0FBSyxDQUFDMkQsSUFBTixDQUFXLGVBQVgsRUFBNEIsQ0FBNUIsRUFBK0JZLEtBQS9CLEdBQXpCLEtBQ0t2RSxLQUFLLENBQUMyRCxJQUFOLENBQVcsZUFBWCxFQUE0QixDQUE1QixFQUErQlksS0FBL0I7QUFDUjs7QUFyS3VCIiwiZmlsZSI6Ii4vc3JjL3VpL21vZGFscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyLCBXZWJwYWNrTW9kdWxlcywgVXRpbGl0aWVzLCBSZWFjdCwgU2V0dGluZ3MsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RhbHMge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgc2hvdWxkU2hvd0NvbnRlbnRFcnJvcnMoKSB7cmV0dXJuIFNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiYWRkb25zXCIsIFwiYWRkb25FcnJvcnNcIik7fVxyXG5cclxuICAgIHN0YXRpYyBnZXQgTW9kYWxTdGFjaygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInB1c2hcIiwgXCJ1cGRhdGVcIiwgXCJwb3BcIiwgXCJwb3BXaXRoS2V5XCIpO31cclxuICAgIHN0YXRpYyBnZXQgQWxlcnRNb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm90b3R5cGVzKFwiaGFuZGxlQ2FuY2VsXCIsIFwiaGFuZGxlU3VibWl0XCIsIFwiaGFuZGxlTWlub3JDb25maXJtXCIpO31cclxuICAgIHN0YXRpYyBnZXQgVGV4dEVsZW1lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJTaXplc1wiLCBcIldlaWdodHNcIik7fVxyXG4gICAgc3RhdGljIGdldCBDb25maXJtYXRpb25Nb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0UHJvcHMgJiYgbS5rZXkgJiYgbS5rZXkoKSA9PSBcImNvbmZpcm0tbW9kYWxcIik7fVxyXG5cclxuICAgIHN0YXRpYyBkZWZhdWx0KHRpdGxlLCBjb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgYmFja2Ryb3AgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYmFja2Ryb3BcIikgfHwge2JhY2tkcm9wOiBcImJhY2tkcm9wLTF3cm1LYlwifTtcclxuICAgICAgICBjb25zdCBiYXNlTW9kYWxDbGFzc2VzID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5tb2RhbCAmJiBtLmlubmVyICYmICFtLnNpemVNZWRpdW0pIHx8IHttb2RhbDogXCJtb2RhbC0zNnpGdFdcIiwgaW5uZXI6IFwiaW5uZXItMlZFenk5XCJ9O1xyXG4gICAgICAgIGNvbnN0IG1vZGFsQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaXplTWVkaXVtXCIpIHx8IHttb2RhbDogXCJiYWNrZHJvcC0xd3JtS2JcIiwgc2l6ZU1lZGl1bTogXCJzaXplTWVkaXVtLWN0bmNFNVwiLCBjb250ZW50OiBcImNvbnRlbnQtMktvQ09aXCIsIGhlYWRlcjogXCJoZWFkZXItMm5oYm91XCIsIGZvb3RlcjogXCJmb290ZXItMzBld044XCIsIGNsb3NlOiBcImNsb3NlLWhoeWpXSlwiLCBpbm5lcjogXCJpbm5lci0yWjVRWlhcIn07XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSBVdGlsaXRpZXMucGFyc2VIVE1MKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtYmFja2Ryb3AgJHtiYWNrZHJvcC5iYWNrZHJvcH1cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1tb2RhbCAke2Jhc2VNb2RhbENsYXNzZXMubW9kYWx9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWlubmVyICR7YmFzZU1vZGFsQ2xhc3Nlcy5pbm5lcn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBoZWFkZXItMVJfQWpGXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj4ke3RpdGxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIGZhZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyICR7bW9kYWxDbGFzc2VzLmZvb3Rlcn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiPiR7U3RyaW5ncy5Nb2RhbHMub2theX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+YCk7XHJcbiAgICAgICAgbW9kYWwucXVlcnlTZWxlY3RvcihcIi5mb290ZXIgYnV0dG9uXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG1vZGFsLnJlbW92ZSgpOyB9LCAzMDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIuYmQtYmFja2Ryb3BcIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgbW9kYWwuYWRkQ2xhc3MoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikuYXBwZW5kKG1vZGFsKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWxlcnQodGl0bGUsIGNvbnRlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5Nb2RhbFN0YWNrICYmIHRoaXMuQWxlcnRNb2RhbCkgcmV0dXJuIHRoaXMuZGVmYXVsdCh0aXRsZSwgY29udGVudCk7XHJcbiAgICAgICAgdGhpcy5Nb2RhbFN0YWNrLnB1c2goZnVuY3Rpb24ocHJvcHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQodGhpcy5BbGVydE1vZGFsLCBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgIGJvZHk6IGNvbnRlbnQsXHJcbiAgICAgICAgICAgIH0sIHByb3BzKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93cyBhIGdlbmVyaWMgYnV0IHZlcnkgY3VzdG9taXphYmxlIGNvbmZpcm1hdGlvbiBtb2RhbCB3aXRoIG9wdGlvbmFsIGNvbmZpcm0gYW5kIGNhbmNlbCBjYWxsYmFja3MuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiB0aGUgbW9kYWxcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xSZWFjdEVsZW1lbnR8QXJyYXk8c3RyaW5nfFJlYWN0RWxlbWVudD4pfSBjaGlsZHJlbiAtIGEgc2luZ2xlIG9yIG1peGVkIGFycmF5IG9mIHJlYWN0IGVsZW1lbnRzIGFuZCBzdHJpbmdzLiBFdmVyeXRoaW5nIGlzIHdyYXBwZWQgaW4gRGlzY29yZCdzIGBUZXh0RWxlbWVudGAgY29tcG9uZW50IHNvIHN0cmluZ3Mgd2lsbCBzaG93IGFuZCByZW5kZXIgcHJvcGVybHkuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gb3B0aW9ucyB0byBtb2RpZnkgdGhlIG1vZGFsXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmRhbmdlcj1mYWxzZV0gLSB3aGV0aGVyIHRoZSBtYWluIGJ1dHRvbiBzaG91bGQgYmUgcmVkIG9yIG5vdFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmNvbmZpcm1UZXh0PU9rYXldIC0gdGV4dCBmb3IgdGhlIGNvbmZpcm1hdGlvbi9zdWJtaXQgYnV0dG9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY2FuY2VsVGV4dD1DYW5jZWxdIC0gdGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b25cclxuICAgICAqIEBwYXJhbSB7Y2FsbGFibGV9IFtvcHRpb25zLm9uQ29uZmlybT1OT09QXSAtIGNhbGxiYWNrIHRvIG9jY3VyIHdoZW4gY2xpY2tpbmcgdGhlIHN1Ym1pdCBidXR0b25cclxuICAgICAqIEBwYXJhbSB7Y2FsbGFibGV9IFtvcHRpb25zLm9uQ2FuY2VsPU5PT1BdIC0gY2FsbGJhY2sgdG8gb2NjdXIgd2hlbiBjbGlja2luZyB0aGUgY2FuY2VsIGJ1dHRvblxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgc2hvd0NvbmZpcm1hdGlvbk1vZGFsKHRpdGxlLCBjb250ZW50LCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICBjb25zdCBUZXh0RWxlbWVudCA9IHRoaXMuVGV4dEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgQ29uZmlybWF0aW9uTW9kYWwgPSB0aGlzLkNvbmZpcm1hdGlvbk1vZGFsO1xyXG4gICAgICAgIGNvbnN0IE1vZGFsU3RhY2sgPSB0aGlzLk1vZGFsU3RhY2s7XHJcbiAgICAgICAgaWYgKCF0aGlzLk1vZGFsU3RhY2sgfHwgIXRoaXMuQ29uZmlybWF0aW9uTW9kYWwgfHwgIXRoaXMuVGV4dEVsZW1lbnQpIHJldHVybiB0aGlzLmFsZXJ0KHRpdGxlLCBjb250ZW50KTtcclxuXHJcbiAgICAgICAgY29uc3Qge29uQ29uZmlybSwgb25DYW5jZWwsIGNvbmZpcm1UZXh0LCBjYW5jZWxUZXh0LCBkYW5nZXIgPSBmYWxzZX0gPSBvcHRpb25zO1xyXG4gICAgICAgIGlmICh0eXBlb2YoY29udGVudCkgPT0gXCJzdHJpbmdcIikgY29udGVudCA9IFRleHRFbGVtZW50LmRlZmF1bHQoe2NvbG9yOiBUZXh0RWxlbWVudC5Db2xvcnMuUFJJTUFSWSwgY2hpbGRyZW46IFtjb250ZW50XX0pO1xyXG4gICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29udGVudCkpIGNvbnRlbnQgPSBUZXh0RWxlbWVudC5kZWZhdWx0KHtjb2xvcjogVGV4dEVsZW1lbnQuQ29sb3JzLlBSSU1BUlksIGNoaWxkcmVuOiBjb250ZW50fSk7XHJcbiAgICAgICAgY29udGVudCA9IFtjb250ZW50XTtcclxuXHJcbiAgICAgICAgY29uc3QgZW1wdHlGdW5jdGlvbiA9ICgpID0+IHt9O1xyXG4gICAgICAgIE1vZGFsU3RhY2sucHVzaChmdW5jdGlvbihwcm9wcykge1xyXG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb25maXJtYXRpb25Nb2RhbCwgT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICByZWQ6IGRhbmdlcixcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1UZXh0OiBjb25maXJtVGV4dCA/IGNvbmZpcm1UZXh0IDogU3RyaW5ncy5Nb2RhbHMub2theSxcclxuICAgICAgICAgICAgICAgIGNhbmNlbFRleHQ6IGNhbmNlbFRleHQgPyBjYW5jZWxUZXh0IDogU3RyaW5ncy5Nb2RhbHMuY2FuY2VsLFxyXG4gICAgICAgICAgICAgICAgb25Db25maXJtOiBvbkNvbmZpcm0gPyBvbkNvbmZpcm0gOiBlbXB0eUZ1bmN0aW9uLFxyXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6IG9uQ2FuY2VsID8gb25DYW5jZWwgOiBlbXB0eUZ1bmN0aW9uXHJcbiAgICAgICAgICAgIH0sIHByb3BzKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMgPSBbXSwgdGhlbWVzOiB0aGVtZUVycm9ycyA9IFtdfSkge1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzIHx8ICF0aGVtZUVycm9ycyB8fCAhdGhpcy5zaG91bGRTaG93Q29udGVudEVycm9ycykgcmV0dXJuO1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzLmxlbmd0aCAmJiAhdGhlbWVFcnJvcnMubGVuZ3RoKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgYmFja2Ryb3AgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYmFja2Ryb3BcIikgfHwge2JhY2tkcm9wOiBcImJhY2tkcm9wLTF3cm1LYlwifTtcclxuICAgICAgICBjb25zdCBiYXNlTW9kYWxDbGFzc2VzID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5tb2RhbCAmJiBtLmlubmVyICYmICFtLnNpemVNZWRpdW0pIHx8IHttb2RhbDogXCJtb2RhbC0zNnpGdFdcIiwgaW5uZXI6IFwiaW5uZXItMlZFenk5XCJ9O1xyXG4gICAgICAgIGNvbnN0IG1vZGFsQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaXplTWVkaXVtXCIpIHx8IHttb2RhbDogXCJtb2RhbC0zdjh6aVVcIiwgc2l6ZU1lZGl1bTogXCJzaXplTWVkaXVtLWN0bmNFNVwiLCBjb250ZW50OiBcImNvbnRlbnQtMktvQ09aXCIsIGhlYWRlcjogXCJoZWFkZXItMm5oYm91XCIsIGZvb3RlcjogXCJmb290ZXItMzBld044XCIsIGNsb3NlOiBcImNsb3NlLWhoeWpXSlwiLCBpbm5lcjogXCJpbm5lci0yWjVRWlhcIn07XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSAkKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1iYWNrZHJvcCAke2JhY2tkcm9wLmJhY2tkcm9wfVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwgYmQtY29udGVudC1tb2RhbCAke2Jhc2VNb2RhbENsYXNzZXMubW9kYWx9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtaW5uZXIgJHtiYXNlTW9kYWxDbGFzc2VzLmlubmVyfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgJHttb2RhbENsYXNzZXMuaGVhZGVyfVwiPjxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7U3RyaW5ncy5Nb2RhbHMuYWRkb25FcnJvcnN9PC9kaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhciBUT1BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhci1pdGVtXCI+JHtTdHJpbmdzLlBhbmVscy5wbHVnaW5zfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyLWl0ZW1cIj4ke1N0cmluZ3MuUGFuZWxzLnRoZW1lc308L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbmFtZVwiPiR7U3RyaW5ncy5Nb2RhbHMubmFtZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLW1lc3NhZ2VcIj4ke1N0cmluZ3MuTW9kYWxzLm1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1lcnJvclwiPiR7U3RyaW5ncy5Nb2RhbHMuZXJyb3J9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXItd3JhcCBmYWRlICR7bW9kYWxDbGFzc2VzLmNvbnRlbnR9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlciAke21vZGFsQ2xhc3Nlcy5mb290ZXJ9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiPiR7U3RyaW5ncy5Nb2RhbHMub2theX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtcclxuXHJcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVUYWIgPSBmdW5jdGlvbihlcnJvcnMpIHtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gJChgPGRpdiBjbGFzcz1cImVycm9yc1wiPmApO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvcnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gJChgPGRpdiBjbGFzcz1cImVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLW5hbWVcIj4ke2Vyci5uYW1lID8gZXJyLm5hbWUgOiBlcnIuZmlsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbWVzc2FnZVwiPiR7ZXJyLm1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLWVycm9yXCI+PGEgY2xhc3M9XCJlcnJvci1saW5rXCIgaHJlZj1cIlwiPiR7ZXJyLmVycm9yID8gZXJyLmVycm9yLm1lc3NhZ2UgOiBcIlwifTwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yLmZpbmQoXCJhXCIpLm9uKFwiY2xpY2tcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBMb2dnZXIuc3RhY2t0cmFjZShcIkNvbnRlbnRFcnJvclwiLCBgRXJyb3IgZGV0YWlscyBmb3IgJHtlcnIubmFtZSA/IGVyci5uYW1lIDogZXJyLmZpbGV9LmAsIGVyci5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB0YWJzID0gW2dlbmVyYXRlVGFiKHBsdWdpbkVycm9ycyksIGdlbmVyYXRlVGFiKHRoZW1lRXJyb3JzKV07XHJcblxyXG4gICAgICAgIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpLm9uKFwiY2xpY2tcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBtb2RhbC5maW5kKFwiLnRhYi1iYXItaXRlbVwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xyXG4gICAgICAgICAgICAkKGUudGFyZ2V0KS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBtb2RhbC5maW5kKFwiLnNjcm9sbGVyXCIpLmVtcHR5KCkuYXBwZW5kKHRhYnNbJChlLnRhcmdldCkuaW5kZXgoKV0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBtb2RhbC5maW5kKFwiLmZvb3RlciBidXR0b25cIikub24oXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG1vZGFsLnJlbW92ZSgpOyB9LCAzMDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsLmZpbmQoXCIuYmQtYmFja2Ryb3BcIikub24oXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG1vZGFsLnJlbW92ZSgpOyB9LCAzMDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsLmFwcGVuZFRvKFwiI2FwcC1tb3VudFwiKTtcclxuICAgICAgICBpZiAocGx1Z2luRXJyb3JzLmxlbmd0aCkgbW9kYWwuZmluZChcIi50YWItYmFyLWl0ZW1cIilbMF0uY2xpY2soKTtcclxuICAgICAgICBlbHNlIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpWzFdLmNsaWNrKCk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/modals.js\n"); /***/ }), @@ -839,7 +839,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_contentlist__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/contentlist */ \"./src/ui/settings/contentlist.jsx\");\n/* harmony import */ var _settings_group__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings/title */ \"./src/ui/settings/title.jsx\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsRenderer {\n constructor() {\n this.patchSections();\n }\n\n onChange(onChange) {\n return (collection, category, id) => {\n const before = modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].panels.length;\n onChange(collection, category, id);\n const after = modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].panels.length;\n if (before != after) setTimeout(this.forceUpdate.bind(this), 50);\n };\n }\n\n buildSettingsPanel(title, config, state, onChange, button = null) {\n config.forEach(section => {\n section.settings.forEach(item => item.value = state[section.id][item.id]);\n });\n return this.getSettingsPanel(title, config, this.onChange(onChange), button);\n }\n\n getSettingsPanel(title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_3__[\"default\"], Object.assign({}, section, {\n onChange\n }));\n })];\n }\n\n getContentPanel(title, contentList, contentState, options = {}) {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_settings_contentlist__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object.assign({}, {\n title: title,\n contentList: contentList,\n contentState: contentState\n }, options));\n }\n\n get attribution() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n className: \"bd-version\",\n style: {\n fontSize: \"12px\",\n fontWeight: \"600\",\n color: \"#72767d\",\n padding: \"2px 10px\"\n }\n }, `BBD v${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion} by `, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"a\", {\n href: \"https://github.com/rauenzi/\",\n target: \"_blank\"\n }, \"Zerebos\"));\n }\n\n async patchSections() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Patcher\"].after(\"SettingsManager\", modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByDisplayName(\"FluxContainer(GuildSettings)\").prototype, \"render\", thisObject => {\n thisObject._reactInternalFiber.return.return.return.return.return.return.memoizedProps.id = \"guild-settings\";\n });\n const UserSettings = await modules__WEBPACK_IMPORTED_MODULE_1__[\"ReactComponents\"].get(\"UserSettings\", m => m.prototype && m.prototype.generateSections);\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"render\", thisObject => {\n thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = \"user-settings\";\n });\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"generateSections\", (thisObject, args, returnValue) => {\n let location = returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n returnValue.splice(location, 0, section);\n location++;\n };\n\n insert({\n section: \"DIVIDER\"\n });\n insert({\n section: \"HEADER\",\n label: \"BandagedBD\"\n });\n\n for (const collection of modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => this.buildSettingsPanel(collection.name, collection.settings, modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].state[collection.id], modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].onSettingChange.bind(modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"], collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].panels.sort((a, b) => a.order > b.order)) {\n if (panel.clickListener) panel.onClick = event => panel.clickListener(thisObject, event, returnValue);\n insert(panel);\n }\n\n insert({\n section: \"CUSTOM\",\n element: () => this.attribution\n });\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].getReactInstance(node).return.return.return.return.return.return.stateNode.forceUpdate();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzLmpzPzc2YmUiXSwibmFtZXMiOlsiU2V0dGluZ3NSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwicGF0Y2hTZWN0aW9ucyIsIm9uQ2hhbmdlIiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJiZWZvcmUiLCJTZXR0aW5ncyIsImNvbGxlY3Rpb25zIiwibGVuZ3RoIiwicGFuZWxzIiwiYWZ0ZXIiLCJzZXRUaW1lb3V0IiwiZm9yY2VVcGRhdGUiLCJiaW5kIiwiYnVpbGRTZXR0aW5nc1BhbmVsIiwidGl0bGUiLCJjb25maWciLCJzdGF0ZSIsImJ1dHRvbiIsImZvckVhY2giLCJzZWN0aW9uIiwic2V0dGluZ3MiLCJpdGVtIiwidmFsdWUiLCJnZXRTZXR0aW5nc1BhbmVsIiwiZ3JvdXBzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiU2V0dGluZ3NUaXRsZSIsInRleHQiLCJtYXAiLCJTZXR0aW5nc0dyb3VwIiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0Q29udGVudFBhbmVsIiwiY29udGVudExpc3QiLCJjb250ZW50U3RhdGUiLCJvcHRpb25zIiwiQ29udGVudExpc3QiLCJhdHRyaWJ1dGlvbiIsImNsYXNzTmFtZSIsInN0eWxlIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwiY29sb3IiLCJwYWRkaW5nIiwiQ29uZmlnIiwiYmJkVmVyc2lvbiIsImhyZWYiLCJ0YXJnZXQiLCJQYXRjaGVyIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeURpc3BsYXlOYW1lIiwicHJvdG90eXBlIiwidGhpc09iamVjdCIsIl9yZWFjdEludGVybmFsRmliZXIiLCJyZXR1cm4iLCJtZW1vaXplZFByb3BzIiwiVXNlclNldHRpbmdzIiwiUmVhY3RDb21wb25lbnRzIiwiZ2V0IiwibSIsImdlbmVyYXRlU2VjdGlvbnMiLCJhcmdzIiwicmV0dXJuVmFsdWUiLCJsb2NhdGlvbiIsImZpbmRJbmRleCIsInMiLCJ0b0xvd2VyQ2FzZSIsImluc2VydCIsInNwbGljZSIsImxhYmVsIiwiZGlzYWJsZWQiLCJuYW1lIiwiZWxlbWVudCIsIm9uU2V0dGluZ0NoYW5nZSIsInBhbmVsIiwic29ydCIsImEiLCJiIiwib3JkZXIiLCJjbGlja0xpc3RlbmVyIiwib25DbGljayIsImV2ZW50Iiwidmlld0NsYXNzIiwiZ2V0QnlQcm9wcyIsInN0YW5kYXJkU2lkZWJhclZpZXciLCJzcGxpdCIsIm5vZGUiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJVdGlsaXRpZXMiLCJnZXRSZWFjdEluc3RhbmNlIiwic3RhdGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsZ0JBQU4sQ0FBdUI7QUFFdENDLGFBQVcsR0FBRztBQUNWLFNBQUtDLGFBQUw7QUFDSDs7QUFFREMsVUFBUSxDQUFDQSxRQUFELEVBQVc7QUFDZixXQUFPLENBQUNDLFVBQUQsRUFBYUMsUUFBYixFQUF1QkMsRUFBdkIsS0FBOEI7QUFDakMsWUFBTUMsTUFBTSxHQUFHQyxnREFBUSxDQUFDQyxXQUFULENBQXFCQyxNQUFyQixHQUE4QkYsZ0RBQVEsQ0FBQ0csTUFBVCxDQUFnQkQsTUFBN0Q7QUFDQVAsY0FBUSxDQUFDQyxVQUFELEVBQWFDLFFBQWIsRUFBdUJDLEVBQXZCLENBQVI7QUFDQSxZQUFNTSxLQUFLLEdBQUdKLGdEQUFRLENBQUNDLFdBQVQsQ0FBcUJDLE1BQXJCLEdBQThCRixnREFBUSxDQUFDRyxNQUFULENBQWdCRCxNQUE1RDtBQUNBLFVBQUlILE1BQU0sSUFBSUssS0FBZCxFQUFxQkMsVUFBVSxDQUFDLEtBQUtDLFdBQUwsQ0FBaUJDLElBQWpCLENBQXNCLElBQXRCLENBQUQsRUFBOEIsRUFBOUIsQ0FBVjtBQUN4QixLQUxEO0FBTUg7O0FBRURDLG9CQUFrQixDQUFDQyxLQUFELEVBQVFDLE1BQVIsRUFBZ0JDLEtBQWhCLEVBQXVCaEIsUUFBdkIsRUFB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RUFBckMsQ0FBYjtBQUNBTyxxREFBUyxDQUFDQyxnQkFBVixDQUEyQkosSUFBM0IsRUFBaUNoQyxNQUFqQyxDQUF3Q0EsTUFBeEMsQ0FBK0NBLE1BQS9DLENBQXNEQSxNQUF0RCxDQUE2REEsTUFBN0QsQ0FBb0VBLE1BQXBFLENBQTJFcUMsU0FBM0UsQ0FBcUZqRixXQUFyRjtBQUNIOztBQWhGcUMsQ0FBM0IsRUFBZiIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1JlYWN0LCBXZWJwYWNrTW9kdWxlcywgUGF0Y2hlciwgUmVhY3RDb21wb25lbnRzLCBVdGlsaXRpZXMsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IENvbnRlbnRMaXN0IGZyb20gXCIuL3NldHRpbmdzL2NvbnRlbnRsaXN0XCI7XHJcbmltcG9ydCBTZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzL2dyb3VwXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3NldHRpbmdzL3RpdGxlXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgU2V0dGluZ3NSZW5kZXJlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5wYXRjaFNlY3Rpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2Uob25DaGFuZ2UpIHtcclxuICAgICAgICByZXR1cm4gKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBiZWZvcmUgPSBTZXR0aW5ncy5jb2xsZWN0aW9ucy5sZW5ndGggKyBTZXR0aW5ncy5wYW5lbHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBvbkNoYW5nZShjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpO1xyXG4gICAgICAgICAgICBjb25zdCBhZnRlciA9IFNldHRpbmdzLmNvbGxlY3Rpb25zLmxlbmd0aCArIFNldHRpbmdzLnBhbmVscy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGlmIChiZWZvcmUgIT0gYWZ0ZXIpIHNldFRpbWVvdXQodGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpLCA1MCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZFNldHRpbmdzUGFuZWwodGl0bGUsIGNvbmZpZywgc3RhdGUsIG9uQ2hhbmdlLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgY29uZmlnLmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHNlY3Rpb24uc2V0dGluZ3MuZm9yRWFjaChpdGVtID0+IGl0ZW0udmFsdWUgPSBzdGF0ZVtzZWN0aW9uLmlkXVtpdGVtLmlkXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2V0dGluZ3NQYW5lbCh0aXRsZSwgY29uZmlnLCB0aGlzLm9uQ2hhbmdlKG9uQ2hhbmdlKSwgYnV0dG9uKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTZXR0aW5nc1BhbmVsKHRpdGxlLCBncm91cHMsIG9uQ2hhbmdlLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aXRsZSwgYnV0dG9uOiBidXR0b259KSwgZ3JvdXBzLm1hcChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NHcm91cCwgT2JqZWN0LmFzc2lnbih7fSwgc2VjdGlvbiwge29uQ2hhbmdlfSkpO1xyXG4gICAgICAgIH0pXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb250ZW50UGFuZWwodGl0bGUsIGNvbnRlbnRMaXN0LCBjb250ZW50U3RhdGUsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KENvbnRlbnRMaXN0LCBPYmplY3QuYXNzaWduKHt9LCB7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgY29udGVudExpc3Q6IGNvbnRlbnRMaXN0LFxyXG4gICAgICAgICAgICBjb250ZW50U3RhdGU6IGNvbnRlbnRTdGF0ZVxyXG4gICAgICAgIH0sIG9wdGlvbnMpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYXR0cmlidXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZC12ZXJzaW9uXCIsIHN0eWxlOiB7Zm9udFNpemU6IFwiMTJweFwiLCBmb250V2VpZ2h0OiBcIjYwMFwiLCBjb2xvcjogXCIjNzI3NjdkXCIsIHBhZGRpbmc6IFwiMnB4IDEwcHhcIn19LFxyXG4gICAgICAgICAgICBgQkJEIHYke0NvbmZpZy5iYmRWZXJzaW9ufSBieSBgLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7aHJlZjogXCJodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9cIiwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJaZXJlYm9zXCIpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwYXRjaFNlY3Rpb25zKCkge1xyXG4gICAgICAgIFBhdGNoZXIuYWZ0ZXIoXCJTZXR0aW5nc01hbmFnZXJcIiwgV2VicGFja01vZHVsZXMuZ2V0QnlEaXNwbGF5TmFtZShcIkZsdXhDb250YWluZXIoR3VpbGRTZXR0aW5ncylcIikucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ubWVtb2l6ZWRQcm9wcy5pZCA9IFwiZ3VpbGQtc2V0dGluZ3NcIjtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBVc2VyU2V0dGluZ3MgPSBhd2FpdCBSZWFjdENvbXBvbmVudHMuZ2V0KFwiVXNlclNldHRpbmdzXCIsIG0gPT4gbS5wcm90b3R5cGUgJiYgbS5wcm90b3R5cGUuZ2VuZXJhdGVTZWN0aW9ucyk7XHJcbiAgICAgICAgUGF0Y2hlci5hZnRlcihcIlNldHRpbmdzTWFuYWdlclwiLCBVc2VyU2V0dGluZ3MucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLm1lbW9pemVkUHJvcHMuaWQgPSBcInVzZXItc2V0dGluZ3NcIjtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmFmdGVyKFwiU2V0dGluZ3NNYW5hZ2VyXCIsIFVzZXJTZXR0aW5ncy5wcm90b3R5cGUsIFwiZ2VuZXJhdGVTZWN0aW9uc1wiLCAodGhpc09iamVjdCwgYXJncywgcmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gcmV0dXJuVmFsdWUuZmluZEluZGV4KHMgPT4gcy5zZWN0aW9uLnRvTG93ZXJDYXNlKCkgPT0gXCJsaW51eFwiKSArIDE7XHJcbiAgICAgICAgICAgIGNvbnN0IGluc2VydCA9IChzZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZS5zcGxpY2UobG9jYXRpb24sIDAsIHNlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgbG9jYXRpb24rKztcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkRJVklERVJcIn0pO1xyXG4gICAgICAgICAgICBpbnNlcnQoe3NlY3Rpb246IFwiSEVBREVSXCIsIGxhYmVsOiBcIkJhbmRhZ2VkQkRcIn0pO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgU2V0dGluZ3MuY29sbGVjdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmRpc2FibGVkKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGluc2VydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbjogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogKCkgPT4gdGhpcy5idWlsZFNldHRpbmdzUGFuZWwoY29sbGVjdGlvbi5uYW1lLCBjb2xsZWN0aW9uLnNldHRpbmdzLCBTZXR0aW5ncy5zdGF0ZVtjb2xsZWN0aW9uLmlkXSwgU2V0dGluZ3Mub25TZXR0aW5nQ2hhbmdlLmJpbmQoU2V0dGluZ3MsIGNvbGxlY3Rpb24uaWQpLCBjb2xsZWN0aW9uLmJ1dHRvbiA/IGNvbGxlY3Rpb24uYnV0dG9uIDogbnVsbClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFuZWwgb2YgU2V0dGluZ3MucGFuZWxzLnNvcnQoKGEsYikgPT4gYS5vcmRlciA+IGIub3JkZXIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGFuZWwuY2xpY2tMaXN0ZW5lcikgcGFuZWwub25DbGljayA9IChldmVudCkgPT4gcGFuZWwuY2xpY2tMaXN0ZW5lcih0aGlzT2JqZWN0LCBldmVudCwgcmV0dXJuVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgaW5zZXJ0KHBhbmVsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbnNlcnQoe3NlY3Rpb246IFwiQ1VTVE9NXCIsIGVsZW1lbnQ6ICgpID0+IHRoaXMuYXR0cmlidXRpb259KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yY2VVcGRhdGUoKSB7XHJcbiAgICAgICAgY29uc3Qgdmlld0NsYXNzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInN0YW5kYXJkU2lkZWJhclZpZXdcIikuc3RhbmRhcmRTaWRlYmFyVmlldy5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3ZpZXdDbGFzc31gKTtcclxuICAgICAgICBVdGlsaXRpZXMuZ2V0UmVhY3RJbnN0YW5jZShub2RlKS5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5zdGF0ZU5vZGUuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_contentlist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings/contentlist */ \"./src/ui/settings/contentlist.jsx\");\n/* harmony import */ var _settings_group__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _settings_attribution__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings/attribution */ \"./src/ui/settings/attribution.jsx\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsRenderer {\n constructor() {\n this.patchSections();\n }\n\n onChange(onChange) {\n return (collection, category, id) => {\n const before = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n onChange(collection, category, id);\n const after = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n if (before != after) setTimeout(this.forceUpdate.bind(this), 50);\n };\n }\n\n buildSettingsPanel(title, config, state, onChange, button = null) {\n config.forEach(section => {\n section.settings.forEach(item => item.value = state[section.id][item.id]);\n });\n return this.getSettingsPanel(title, config, this.onChange(onChange), button);\n }\n\n getSettingsPanel(title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object.assign({}, section, {\n onChange\n }));\n })];\n }\n\n getContentPanel(title, contentList, contentState, options = {}) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_contentlist__WEBPACK_IMPORTED_MODULE_1__[\"default\"], Object.assign({}, {\n title: title,\n contentList: contentList,\n contentState: contentState\n }, options));\n }\n\n async patchSections() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"FluxContainer(GuildSettings)\").prototype, \"render\", thisObject => {\n thisObject._reactInternalFiber.return.return.return.return.return.return.memoizedProps.id = \"guild-settings\";\n });\n const UserSettings = await modules__WEBPACK_IMPORTED_MODULE_0__[\"ReactComponents\"].get(\"UserSettings\", m => m.prototype && m.prototype.generateSections);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"render\", thisObject => {\n thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = \"user-settings\";\n });\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"generateSections\", (thisObject, args, returnValue) => {\n let location = returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n returnValue.splice(location, 0, section);\n location++;\n };\n\n insert({\n section: \"DIVIDER\"\n });\n insert({\n section: \"HEADER\",\n label: \"BandagedBD\"\n });\n\n for (const collection of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => this.buildSettingsPanel(collection.name, collection.settings, modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].state[collection.id], modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].onSettingChange.bind(modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"], collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.sort((a, b) => a.order > b.order)) {\n if (panel.clickListener) panel.onClick = event => panel.clickListener(thisObject, event, returnValue);\n insert(panel);\n }\n\n insert({\n section: \"CUSTOM\",\n element: _settings_attribution__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n });\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].getReactInstance(node).return.return.return.return.return.return.stateNode.forceUpdate();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzLmpzPzc2YmUiXSwibmFtZXMiOlsiU2V0dGluZ3NSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwicGF0Y2hTZWN0aW9ucyIsIm9uQ2hhbmdlIiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJiZWZvcmUiLCJTZXR0aW5ncyIsImNvbGxlY3Rpb25zIiwibGVuZ3RoIiwicGFuZWxzIiwiYWZ0ZXIiLCJzZXRUaW1lb3V0IiwiZm9yY2VVcGRhdGUiLCJiaW5kIiwiYnVpbGRTZXR0aW5nc1BhbmVsIiwidGl0bGUiLCJjb25maWciLCJzdGF0ZSIsImJ1dHRvbiIsImZvckVhY2giLCJzZWN0aW9uIiwic2V0dGluZ3MiLCJpdGVtIiwidmFsdWUiLCJnZXRTZXR0aW5nc1BhbmVsIiwiZ3JvdXBzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiU2V0dGluZ3NUaXRsZSIsInRleHQiLCJtYXAiLCJTZXR0aW5nc0dyb3VwIiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0Q29udGVudFBhbmVsIiwiY29udGVudExpc3QiLCJjb250ZW50U3RhdGUiLCJvcHRpb25zIiwiQ29udGVudExpc3QiLCJQYXRjaGVyIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeURpc3BsYXlOYW1lIiwicHJvdG90eXBlIiwidGhpc09iamVjdCIsIl9yZWFjdEludGVybmFsRmliZXIiLCJyZXR1cm4iLCJtZW1vaXplZFByb3BzIiwiVXNlclNldHRpbmdzIiwiUmVhY3RDb21wb25lbnRzIiwiZ2V0IiwibSIsImdlbmVyYXRlU2VjdGlvbnMiLCJhcmdzIiwicmV0dXJuVmFsdWUiLCJsb2NhdGlvbiIsImZpbmRJbmRleCIsInMiLCJ0b0xvd2VyQ2FzZSIsImluc2VydCIsInNwbGljZSIsImxhYmVsIiwiZGlzYWJsZWQiLCJuYW1lIiwiZWxlbWVudCIsIm9uU2V0dGluZ0NoYW5nZSIsInBhbmVsIiwic29ydCIsImEiLCJiIiwib3JkZXIiLCJjbGlja0xpc3RlbmVyIiwib25DbGljayIsImV2ZW50IiwiQXR0cmlidXRpb24iLCJ2aWV3Q2xhc3MiLCJnZXRCeVByb3BzIiwic3RhbmRhcmRTaWRlYmFyVmlldyIsInNwbGl0Iiwibm9kZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIlV0aWxpdGllcyIsImdldFJlYWN0SW5zdGFuY2UiLCJzdGF0ZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFZSxtRUFBSSxNQUFNQSxnQkFBTixDQUF1QjtBQUV0Q0MsYUFBVyxHQUFHO0FBQ1YsU0FBS0MsYUFBTDtBQUNIOztBQUVEQyxVQUFRLENBQUNBLFFBQUQsRUFBVztBQUNmLFdBQU8sQ0FBQ0MsVUFBRCxFQUFhQyxRQUFiLEVBQXVCQyxFQUF2QixLQUE4QjtBQUNqQyxZQUFNQyxNQUFNLEdBQUdDLGdEQUFRLENBQUNDLFdBQVQsQ0FBcUJDLE1BQXJCLEdBQThCRixnREFBUSxDQUFDRyxNQUFULENBQWdCRCxNQUE3RDtBQUNBUCxjQUFRLENBQUNDLFVBQUQsRUFBYUMsUUFBYixFQUF1QkMsRUFBdkIsQ0FBUjtBQUNBLFlBQU1NLEtBQUssR0FBR0osZ0RBQVEsQ0FBQ0MsV0FBVCxDQUFxQkMsTUFBckIsR0FBOEJGLGdEQUFRLENBQUNHLE1BQVQsQ0FBZ0JELE1BQTVEO0FBQ0EsVUFBSUgsTUFBTSxJQUFJSyxLQUFkLEVBQXFCQyxVQUFVLENBQUMsS0FBS0MsV0FBTCxDQUFpQkMsSUFBakIsQ0FBc0IsSUFBdEIsQ0FBRCxFQUE4QixFQUE5QixDQUFWO0FBQ3hCLEtBTEQ7QUFNSDs7QUFFREMsb0JBQWtCLENBQUNDLEtBQUQsRUFBUUMsTUFBUixFQUFnQkMsS0FBaEIsRUFBdUJoQixRQUF2QixFQUFpQ2lCLE1BQU0sR0FBRyxJQUExQyxFQUFnRDtBQUM5REYsVUFBTSxDQUFDRyxPQUFQLENBQWVDLE9BQU8sSUFBSTtBQUN0QkEsYUFBTyxDQUFDQyxRQUFSLENBQWlCRixPQUFq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S0FBSyxDQUFDTSxPQUFOLEdBQWlCQyxLQUFELElBQVdQLEtBQUssQ0FBQ0ssYUFBTixDQUFvQjNCLFVBQXBCLEVBQWdDNkIsS0FBaEMsRUFBdUNuQixXQUF2QyxDQUEzQjtBQUN6QkssY0FBTSxDQUFDTyxLQUFELENBQU47QUFDSDs7QUFDRFAsWUFBTSxDQUFDO0FBQUN0QyxlQUFPLEVBQUUsUUFBVjtBQUFvQjJDLGVBQU8sRUFBRVUsNkRBQVdBO0FBQXhDLE9BQUQsQ0FBTjtBQUNILEtBckJEO0FBc0JBLFNBQUs3RCxXQUFMO0FBQ0g7O0FBRURBLGFBQVcsR0FBRztBQUNWLFVBQU04RCxTQUFTLEdBQUdsQyxzREFBYyxDQUFDbUMsVUFBZixDQUEwQixxQkFBMUIsRUFBaURDLG1CQUFqRCxDQUFxRUMsS0FBckUsQ0FBMkUsR0FBM0UsRUFBZ0YsQ0FBaEYsQ0FBbEI7QUFDQSxVQUFNQyxJQUFJLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF3QixJQUFHTixTQUFVLEVBQXJDLENBQWI7QUFDQU8scURBQVMsQ0FBQ0MsZ0JBQVYsQ0FBMkJKLElBQTNCLEVBQWlDakMsTUFBakMsQ0FBd0NBLE1BQXhDLENBQStDQSxNQUEvQyxDQUFzREEsTUFBdEQsQ0FBNkRBLE1BQTdELENBQW9FQSxNQUFwRSxDQUEyRXNDLFNBQTNFLENBQXFGdkUsV0FBckY7QUFDSDs7QUF6RXFDLENBQTNCLEVBQWYiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBXZWJwYWNrTW9kdWxlcywgUGF0Y2hlciwgUmVhY3RDb21wb25lbnRzLCBVdGlsaXRpZXMsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IENvbnRlbnRMaXN0IGZyb20gXCIuL3NldHRpbmdzL2NvbnRlbnRsaXN0XCI7XHJcbmltcG9ydCBTZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzL2dyb3VwXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3NldHRpbmdzL3RpdGxlXCI7XHJcbmltcG9ydCBBdHRyaWJ1dGlvbiBmcm9tIFwiLi9zZXR0aW5ncy9hdHRyaWJ1dGlvblwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFNldHRpbmdzUmVuZGVyZXIge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMucGF0Y2hTZWN0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKG9uQ2hhbmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gU2V0dGluZ3MuY29sbGVjdGlvbnMubGVuZ3RoICsgU2V0dGluZ3MucGFuZWxzLmxlbmd0aDtcclxuICAgICAgICAgICAgb25DaGFuZ2UoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKTtcclxuICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBTZXR0aW5ncy5jb2xsZWN0aW9ucy5sZW5ndGggKyBTZXR0aW5ncy5wYW5lbHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBpZiAoYmVmb3JlICE9IGFmdGVyKSBzZXRUaW1lb3V0KHRoaXMuZm9yY2VVcGRhdGUuYmluZCh0aGlzKSwgNTApO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRTZXR0aW5nc1BhbmVsKHRpdGxlLCBjb25maWcsIHN0YXRlLCBvbkNoYW5nZSwgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIGNvbmZpZy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICBzZWN0aW9uLnNldHRpbmdzLmZvckVhY2goaXRlbSA9PiBpdGVtLnZhbHVlID0gc3RhdGVbc2VjdGlvbi5pZF1baXRlbS5pZF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNldHRpbmdzUGFuZWwodGl0bGUsIGNvbmZpZywgdGhpcy5vbkNoYW5nZShvbkNoYW5nZSksIGJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZ3NQYW5lbCh0aXRsZSwgZ3JvdXBzLCBvbkNoYW5nZSwgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBbUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogdGl0bGUsIGJ1dHRvbjogYnV0dG9ufSksIGdyb3Vwcy5tYXAoc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzR3JvdXAsIE9iamVjdC5hc3NpZ24oe30sIHNlY3Rpb24sIHtvbkNoYW5nZX0pKTtcclxuICAgICAgICB9KV07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29udGVudFBhbmVsKHRpdGxlLCBjb250ZW50TGlzdCwgY29udGVudFN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50TGlzdCwgT2JqZWN0LmFzc2lnbih7fSwge1xyXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgIGNvbnRlbnRMaXN0OiBjb250ZW50TGlzdCxcclxuICAgICAgICAgICAgY29udGVudFN0YXRlOiBjb250ZW50U3RhdGVcclxuICAgICAgICB9LCBvcHRpb25zKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcGF0Y2hTZWN0aW9ucygpIHtcclxuICAgICAgICBQYXRjaGVyLmFmdGVyKFwiU2V0dGluZ3NNYW5hZ2VyXCIsIFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJGbHV4Q29udGFpbmVyKEd1aWxkU2V0dGluZ3MpXCIpLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwgKHRoaXNPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpc09iamVjdC5fcmVhY3RJbnRlcm5hbEZpYmVyLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLm1lbW9pemVkUHJvcHMuaWQgPSBcImd1aWxkLXNldHRpbmdzXCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgVXNlclNldHRpbmdzID0gYXdhaXQgUmVhY3RDb21wb25lbnRzLmdldChcIlVzZXJTZXR0aW5nc1wiLCBtID0+IG0ucHJvdG90eXBlICYmIG0ucHJvdG90eXBlLmdlbmVyYXRlU2VjdGlvbnMpO1xyXG4gICAgICAgIFBhdGNoZXIuYWZ0ZXIoXCJTZXR0aW5nc01hbmFnZXJcIiwgVXNlclNldHRpbmdzLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwgKHRoaXNPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpc09iamVjdC5fcmVhY3RJbnRlcm5hbEZpYmVyLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5tZW1vaXplZFByb3BzLmlkID0gXCJ1c2VyLXNldHRpbmdzXCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgUGF0Y2hlci5hZnRlcihcIlNldHRpbmdzTWFuYWdlclwiLCBVc2VyU2V0dGluZ3MucHJvdG90eXBlLCBcImdlbmVyYXRlU2VjdGlvbnNcIiwgKHRoaXNPYmplY3QsIGFyZ3MsIHJldHVyblZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhdGlvbiA9IHJldHVyblZhbHVlLmZpbmRJbmRleChzID0+IHMuc2VjdGlvbi50b0xvd2VyQ2FzZSgpID09IFwibGludXhcIikgKyAxO1xyXG4gICAgICAgICAgICBjb25zdCBpbnNlcnQgPSAoc2VjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUuc3BsaWNlKGxvY2F0aW9uLCAwLCBzZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uKys7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGluc2VydCh7c2VjdGlvbjogXCJESVZJREVSXCJ9KTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkhFQURFUlwiLCBsYWJlbDogXCJCYW5kYWdlZEJEXCJ9KTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIFNldHRpbmdzLmNvbGxlY3Rpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sbGVjdGlvbi5kaXNhYmxlZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBpbnNlcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb246IGNvbGxlY3Rpb24ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICgpID0+IHRoaXMuYnVpbGRTZXR0aW5nc1BhbmVsKGNvbGxlY3Rpb24ubmFtZSwgY29sbGVjdGlvbi5zZXR0aW5ncywgU2V0dGluZ3Muc3RhdGVbY29sbGVjdGlvbi5pZF0sIFNldHRpbmdzLm9uU2V0dGluZ0NoYW5nZS5iaW5kKFNldHRpbmdzLCBjb2xsZWN0aW9uLmlkKSwgY29sbGVjdGlvbi5idXR0b24gPyBjb2xsZWN0aW9uLmJ1dHRvbiA6IG51bGwpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhbmVsIG9mIFNldHRpbmdzLnBhbmVscy5zb3J0KChhLGIpID0+IGEub3JkZXIgPiBiLm9yZGVyKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHBhbmVsLmNsaWNrTGlzdGVuZXIpIHBhbmVsLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHBhbmVsLmNsaWNrTGlzdGVuZXIodGhpc09iamVjdCwgZXZlbnQsIHJldHVyblZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGluc2VydChwYW5lbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkNVU1RPTVwiLCBlbGVtZW50OiBBdHRyaWJ1dGlvbn0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JjZVVwZGF0ZSgpIHtcclxuICAgICAgICBjb25zdCB2aWV3Q2xhc3MgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwic3RhbmRhcmRTaWRlYmFyVmlld1wiKS5zdGFuZGFyZFNpZGViYXJWaWV3LnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICBjb25zdCBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7dmlld0NsYXNzfWApO1xyXG4gICAgICAgIFV0aWxpdGllcy5nZXRSZWFjdEluc3RhbmNlKG5vZGUpLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnN0YXRlTm9kZS5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings.js\n"); + +/***/ }), + +/***/ "./src/ui/settings/attribution.jsx": +/*!*****************************************!*\ + !*** ./src/ui/settings/attribution.jsx ***! + \*****************************************/ +/*! 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 BBDAttribution; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nclass BBDAttribution extends modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].Component {\n buildTitle(name, version, author) {\n const title = modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Addons.title.split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = name;\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = version;\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n if (nameIndex) title[authorIndex] = author;\n return title.flat();\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n className: \"bd-version\"\n }, this.buildTitle(\"BBD\", data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"a\", {\n href: \"https://github.com/rauenzi\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \"Zerebos\")));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2F0dHJpYnV0aW9uLmpzeD8xNzg0Il0sIm5hbWVzIjpbIkJCREF0dHJpYnV0aW9uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJidWlsZFRpdGxlIiwibmFtZSIsInZlcnNpb24iLCJhdXRob3IiLCJ0aXRsZSIsIlN0cmluZ3MiLCJBZGRvbnMiLCJzcGxpdCIsIm5hbWVJbmRleCIsImZpbmRJbmRleCIsInMiLCJ2ZXJzaW9uSW5kZXgiLCJhdXRob3JJbmRleCIsImZsYXQiLCJyZW5kZXIiLCJDb25maWciLCJiYmRWZXJzaW9uIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxjQUFOLFNBQTZCQyw2Q0FBSyxDQUFDQyxTQUFuQyxDQUE2QztBQUV4REMsWUFBVSxDQUFDQyxJQUFELEVBQU9DLE9BQVAsRUFBZ0JDLE1BQWhCLEVBQXdCO0FBQzlCLFVBQU1DLEtBQUssR0FBR0MsK0NBQU8sQ0FBQ0MsTUFBUixDQUFlRixLQUFmLENBQXFCRyxLQUFyQixDQUEyQixpQkFBM0IsQ0FBZDtBQUNBLFVBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxTQUFOLENBQWdCQyxDQUFDLElBQUlBLENBQUMsSUFBSSxVQUExQixDQUFsQjtBQUNBLFFBQUlGLFNBQUosRUFBZUosS0FBSyxDQUFDSSxTQUFELENBQUwsR0FBbUJQLElBQW5CO0FBQ2YsVUFBTVUsWUFBWSxHQUFHUCxLQUFLLENBQUNLLFNBQU4sQ0FBZ0JDLENBQUMsSUFBSUEsQ0FBQyxJQUFJLGFBQTFCLENBQXJCO0FBQ0EsUUFBSUYsU0FBSixFQUFlSixLQUFLLENBQUNPLFlBQUQsQ0FBTCxHQUFzQlQsT0FBdEI7QUFDZixVQUFNVSxXQUFXLEdBQUdSLEtBQUssQ0FBQ0ssU0FBTixDQUFnQkMsQ0FBQyxJQUFJQSxDQUFDLElBQUksWUFBMUIsQ0FBcEI7QUFDQSxRQUFJRixTQUFKLEVBQWVKLEtBQUssQ0FBQ1EsV0FBRCxDQUFMLEdBQXFCVCxNQUFyQjtBQUNmLFdBQU9DLEtBQUssQ0FBQ1MsSUFBTixFQUFQO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU87QUFBSyxlQUFTLEVBQUU7QUFBaEIsT0FDRixLQUFLZCxVQUFMLENBQWdCLEtBQWhCLEVBQXVCZSwyQ0FBTSxDQUFDQyxVQUE5QixFQUEwQztBQUFHLFVBQUksRUFBQyw0QkFBUjtBQUFxQyxZQUFNLEVBQUMsUUFBNUM7QUFBcUQsU0FBRyxFQUFDO0FBQXpELGlCQUExQyxDQURFLENBQVA7QUFHSDs7QUFqQnVEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL2F0dHJpYnV0aW9uLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1JlYWN0LCBTdHJpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQkJEQXR0cmlidXRpb24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGJ1aWxkVGl0bGUobmFtZSwgdmVyc2lvbiwgYXV0aG9yKSB7XHJcbiAgICAgICAgY29uc3QgdGl0bGUgPSBTdHJpbmdzLkFkZG9ucy50aXRsZS5zcGxpdCgvKHt7W0EtWmEtel0rfX0pLyk7XHJcbiAgICAgICAgY29uc3QgbmFtZUluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7bmFtZX19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW25hbWVJbmRleF0gPSBuYW1lO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb25JbmRleCA9IHRpdGxlLmZpbmRJbmRleChzID0+IHMgPT0gXCJ7e3ZlcnNpb259fVwiKTtcclxuICAgICAgICBpZiAobmFtZUluZGV4KSB0aXRsZVt2ZXJzaW9uSW5kZXhdID0gdmVyc2lvbjtcclxuICAgICAgICBjb25zdCBhdXRob3JJbmRleCA9IHRpdGxlLmZpbmRJbmRleChzID0+IHMgPT0gXCJ7e2F1dGhvcn19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW2F1dGhvckluZGV4XSA9IGF1dGhvcjtcclxuICAgICAgICByZXR1cm4gdGl0bGUuZmxhdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9IFwiYmQtdmVyc2lvblwiPlxyXG4gICAgICAgICAgICB7dGhpcy5idWlsZFRpdGxlKFwiQkJEXCIsIENvbmZpZy5iYmRWZXJzaW9uLCA8YSBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemlcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+WmVyZWJvczwvYT4pfVxyXG4gICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/attribution.jsx\n"); /***/ }), @@ -851,7 +863,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data /***/ (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 ContentList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _plugincard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugincard */ \"./src/ui/settings/plugincard.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// static getPluginsPanel(plugins, state, options = {}) {\n// const {folder = \"\", onChange, reload} = options;\n// const titleComponent = React.createElement(SettingsTitle, {text: \"Plugins\", button: {title: \"Open Plugin Folder\", onClick: () => { require(\"electron\").shell.openItem(folder); }}});\n// const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin =>\n// React.createElement(PluginCard, {key: plugin.id, enabled: state[plugin.id], content: plugin, onChange, reload})\n// );\n// return [titleComponent, React.createElement(\"ul\", {className: \"bda-slist\"}, ...cards)];\n// }\n\n\n\n\n\nclass ContentList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n render() {\n const {\n title,\n folder,\n contentList,\n contentState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\");\n const button = folder ? {\n title: `Open ${title} Folder`,\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"ul\", {\n key: \"ContentList\",\n className: \"bda-slist\"\n }, contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => {\n const CardType = content.type ? _plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(CardType, {\n showReloadIcon: showReloadIcon,\n key: content.id,\n enabled: contentState[content.id],\n content: content,\n onChange: onChange,\n reload: reload\n });\n }))];\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeD9kZDhlIl0sIm5hbWVzIjpbIkNvbnRlbnRMaXN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZWxvYWQiLCJwcm9wcyIsInJlZnJlc2hMaXN0IiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImNvbnRlbnRMaXN0IiwiY29udGVudFN0YXRlIiwib25DaGFuZ2UiLCJzaG93UmVsb2FkSWNvbiIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9uIiwib25DbGljayIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwiYmluZCIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJjb250ZW50IiwiQ2FyZFR5cGUiLCJ0eXBlIiwiUGx1Z2luQ2FyZCIsIlRoZW1lQ2FyZCIsImlkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFFckRDLFFBQU0sR0FBRztBQUNMLFFBQUksS0FBS0MsS0FBTCxDQUFXQyxXQUFmLEVBQTRCLEtBQUtELEtBQUwsQ0FBV0MsV0FBWDtBQUM1QixTQUFLQyxXQUFMO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0MsV0FBRDtBQUFRQyxZQUFSO0FBQWdCQyxpQkFBaEI7QUFBNkJDLGtCQUE3QjtBQUEyQ0MsY0FBM0M7QUFBcURUO0FBQXJELFFBQStELEtBQUtDLEtBQTFFO0FBQ0EsVUFBTVMsY0FBYyxHQUFHLENBQUNDLGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFiLEVBQXlCLFFBQXpCLEVBQW1DLFlBQW5DLENBQXhCO0FBQ0EsVUFBTUMsTUFBTSxHQUFHUCxNQUFNLEdBQUc7QUFBQ0QsV0FBSyxFQUFHLFFBQU9BLEtBQU0sU0FBdEI7QUFBZ0NTLGFBQU8sRUFBRSxNQUFNO0FBQUNDLDJCQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkMsS0FBcEIsQ0FBMEJDLFFBQTFCLENBQW1DWCxNQUFuQztBQUE0QztBQUE1RixLQUFILEdBQW1HLElBQXhIO0FBQ0EsV0FBTyxDQUNILDREQUFDLDhDQUFEO0FBQWUsU0FBRyxFQUFDLE9BQW5CO0FBQTJCLFVBQUksRUFBRUQsS0FBakM7QUFBd0MsWUFBTSxFQUFFUSxNQUFoRDtBQUF3RCxtQkFBYSxFQUFFSCxjQUFjLElBQUksNERBQUMscURBQUQ7QUFBWSxpQkFBUyxFQUFDLFdBQXRCO0FBQWtDLGVBQU8sRUFBRSxLQUFLVixNQUFMLENBQVlrQixJQUFaLENBQWlCLElBQWpCO0FBQTNDO0FBQXpGLE1BREcsRUFFSDtBQUFJLFNBQUcsRUFBQyxhQUFSO0FBQXNCLGVBQVMsRUFBRTtBQUFqQyxPQUNDWCxXQUFXLENBQUNZLElBQVosQ0FBaUIsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVVELENBQUMsQ0FBQ0UsSUFBRixDQUFPQyxXQUFQLEdBQXFCQyxhQUFyQixDQUFtQ0gsQ0FBQyxDQUFDQyxJQUFGLENBQU9DLFdBQVAsRUFBbkMsQ0FBM0IsRUFBcUZFLEdBQXJGLENBQXlGQyxPQUFPLElBQUk7QUFDakcsWUFBTUMsUUFBUSxHQUFHRCxPQUFPLENBQUNFLElBQVIsR0FBZUMsbURBQWYsR0FBNEJDLGtEQUE3QztBQUNBLGFBQU8sNERBQUMsUUFBRDtBQUFVLHNCQUFjLEVBQUVwQixjQUExQjtBQUEwQyxXQUFHLEVBQUVnQixPQUFPLENBQUNLLEVBQXZEO0FBQTJELGVBQU8sRUFBRXZCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQ0ssRUFBVCxDQUFoRjtBQUE4RixlQUFPLEVBQUVMLE9BQXZHO0FBQWdILGdCQUFRLEVBQUVqQixRQUExSDtBQUFvSSxjQUFNLEVBQUVUO0FBQTVJLFFBQVA7QUFDSCxLQUhBLENBREQsQ0FGRyxDQUFQO0FBU0g7O0FBcEJvRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb250ZW50bGlzdC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdGF0aWMgZ2V0UGx1Z2luc1BhbmVsKHBsdWdpbnMsIHN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuLy8gICAgIGNvbnN0IHtmb2xkZXIgPSBcIlwiLCBvbkNoYW5nZSwgcmVsb2FkfSA9IG9wdGlvbnM7XHJcbi8vICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IFwiUGx1Z2luc1wiLCBidXR0b246IHt0aXRsZTogXCJPcGVuIFBsdWdpbiBGb2xkZXJcIiwgb25DbGljazogKCkgPT4geyByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTsgfX19KTtcclxuLy8gICAgIGNvbnN0IGNhcmRzID0gcGx1Z2lucy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKHBsdWdpbiA9PlxyXG4vLyAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGx1Z2luQ2FyZCwge2tleTogcGx1Z2luLmlkLCBlbmFibGVkOiBzdGF0ZVtwbHVnaW4uaWRdLCBjb250ZW50OiBwbHVnaW4sIG9uQ2hhbmdlLCByZWxvYWR9KVxyXG4vLyAgICAgKTtcclxuLy8gICAgIHJldHVybiBbdGl0bGVDb21wb25lbnQsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7Y2xhc3NOYW1lOiBcImJkYS1zbGlzdFwifSwgLi4uY2FyZHMpXTtcclxuLy8gfVxyXG5cclxuaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi90aXRsZVwiO1xyXG5pbXBvcnQgUGx1Z2luQ2FyZCBmcm9tIFwiLi9wbHVnaW5jYXJkXCI7XHJcbmltcG9ydCBUaGVtZUNhcmQgZnJvbSBcIi4vdGhlbWVjYXJkXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRMaXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVmcmVzaExpc3QpIHRoaXMucHJvcHMucmVmcmVzaExpc3QoKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHt0aXRsZSwgZm9sZGVyLCBjb250ZW50TGlzdCwgY29udGVudFN0YXRlLCBvbkNoYW5nZSwgcmVsb2FkfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3Qgc2hvd1JlbG9hZEljb24gPSAhU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJhZGRvbnNcIiwgXCJhdXRvUmVsb2FkXCIpO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGZvbGRlciA/IHt0aXRsZTogYE9wZW4gJHt0aXRsZX0gRm9sZGVyYCwgb25DbGljazogKCkgPT4ge3JlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbC5vcGVuSXRlbShmb2xkZXIpO319IDogbnVsbDtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICA8U2V0dGluZ3NUaXRsZSBrZXk9XCJ0aXRsZVwiIHRleHQ9e3RpdGxlfSBidXR0b249e2J1dHRvbn0gb3RoZXJDaGlsZHJlbj17c2hvd1JlbG9hZEljb24gJiYgPFJlbG9hZEljb24gY2xhc3NOYW1lPVwiYmQtcmVsb2FkXCIgb25DbGljaz17dGhpcy5yZWxvYWQuYmluZCh0aGlzKX0gLz59IC8+LFxyXG4gICAgICAgICAgICA8dWwga2V5PVwiQ29udGVudExpc3RcIiBjbGFzc05hbWU9e1wiYmRhLXNsaXN0XCJ9PlxyXG4gICAgICAgICAgICB7Y29udGVudExpc3Quc29ydCgoYSwgYikgPT4gYS5uYW1lLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShiLm5hbWUudG9Mb3dlckNhc2UoKSkpLm1hcChjb250ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IENhcmRUeXBlID0gY29udGVudC50eXBlID8gUGx1Z2luQ2FyZCA6IFRoZW1lQ2FyZDtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8Q2FyZFR5cGUgc2hvd1JlbG9hZEljb249e3Nob3dSZWxvYWRJY29ufSBrZXk9e2NvbnRlbnQuaWR9IGVuYWJsZWQ9e2NvbnRlbnRTdGF0ZVtjb250ZW50LmlkXX0gY29udGVudD17Y29udGVudH0gb25DaGFuZ2U9e29uQ2hhbmdlfSByZWxvYWQ9e3JlbG9hZH0gLz47XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/contentlist.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _plugincard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugincard */ \"./src/ui/settings/plugincard.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// static getPluginsPanel(plugins, state, options = {}) {\n// const {folder = \"\", onChange, reload} = options;\n// const titleComponent = React.createElement(SettingsTitle, {text: \"Plugins\", button: {title: \"Open Plugin Folder\", onClick: () => { require(\"electron\").shell.openItem(folder); }}});\n// const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin =>\n// React.createElement(PluginCard, {key: plugin.id, enabled: state[plugin.id], content: plugin, onChange, reload})\n// );\n// return [titleComponent, React.createElement(\"ul\", {className: \"bda-slist\"}, ...cards)];\n// }\n\n\n\n\n\nclass ContentList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n render() {\n const {\n title,\n folder,\n contentList,\n contentState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\");\n const button = folder ? {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.openFolder.format({\n type: title\n }),\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"ul\", {\n key: \"ContentList\",\n className: \"bda-slist\"\n }, contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => {\n const CardType = content.type ? _plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(CardType, {\n showReloadIcon: showReloadIcon,\n key: content.id,\n enabled: contentState[content.id],\n content: content,\n onChange: onChange,\n reload: reload\n });\n }))];\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeD9kZDhlIl0sIm5hbWVzIjpbIkNvbnRlbnRMaXN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZWxvYWQiLCJwcm9wcyIsInJlZnJlc2hMaXN0IiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImNvbnRlbnRMaXN0IiwiY29udGVudFN0YXRlIiwib25DaGFuZ2UiLCJzaG93UmVsb2FkSWNvbiIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9uIiwiU3RyaW5ncyIsIkFkZG9ucyIsIm9wZW5Gb2xkZXIiLCJmb3JtYXQiLCJ0eXBlIiwib25DbGljayIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwiYmluZCIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJjb250ZW50IiwiQ2FyZFR5cGUiLCJQbHVnaW5DYXJkIiwiVGhlbWVDYXJkIiwiaWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFZSxNQUFNQSxXQUFOLFNBQTBCQyw2Q0FBSyxDQUFDQyxTQUFoQyxDQUEwQztBQUVyREMsUUFBTSxHQUFHO0FBQ0wsUUFBSSxLQUFLQyxLQUFMLENBQVdDLFdBQWYsRUFBNEIsS0FBS0QsS0FBTCxDQUFXQyxXQUFYO0FBQzVCLFNBQUtDLFdBQUw7QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsVUFBTTtBQUFDQyxXQUFEO0FBQVFDLFlBQVI7QUFBZ0JDLGlCQUFoQjtBQUE2QkMsa0JBQTdCO0FBQTJDQyxjQUEzQztBQUFxRFQ7QUFBckQsUUFBK0QsS0FBS0MsS0FBMUU7QUFDQSxVQUFNUyxjQUFjLEdBQUcsQ0FBQ0MsZ0RBQVEsQ0FBQ0MsR0FBVCxDQUFhLFVBQWIsRUFBeUIsUUFBekIsRUFBbUMsWUFBbkMsQ0FBeEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdQLE1BQU0sR0FBRztBQUFDRCxXQUFLLEVBQUVTLCtDQUFPLENBQUNDLE1BQVIsQ0FBZUMsVUFBZixDQUEwQkMsTUFBMUIsQ0FBaUM7QUFBQ0MsWUFBSSxFQUFFYjtBQUFQLE9BQWpDLENBQVI7QUFBeURjLGFBQU8sRUFBRSxNQUFNO0FBQUNDLDJCQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkMsS0FBcEIsQ0FBMEJDLFFBQTFCLENBQW1DaEIsTUFBbkM7QUFBNEM7QUFBckgsS0FBSCxHQUE0SCxJQUFqSjtBQUNBLFdBQU8sQ0FDSCw0REFBQyw4Q0FBRDtBQUFlLFNBQUcsRUFBQyxPQUFuQjtBQUEyQixVQUFJLEVBQUVELEtBQWpDO0FBQXdDLFlBQU0sRUFBRVEsTUFBaEQ7QUFBd0QsbUJBQWEsRUFBRUgsY0FBYyxJQUFJLDREQUFDLHFEQUFEO0FBQVksaUJBQVMsRUFBQyxXQUF0QjtBQUFrQyxlQUFPLEVBQUUsS0FBS1YsTUFBTCxDQUFZdUIsSUFBWixDQUFpQixJQUFqQjtBQUEzQztBQUF6RixNQURHLEVBRUg7QUFBSSxTQUFHLEVBQUMsYUFBUjtBQUFzQixlQUFTLEVBQUU7QUFBakMsT0FDQ2hCLFdBQVcsQ0FBQ2lCLElBQVosQ0FBaUIsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVVELENBQUMsQ0FBQ0UsSUFBRixDQUFPQyxXQUFQLEdBQXFCQyxhQUFyQixDQUFtQ0gsQ0FBQyxDQUFDQyxJQUFGLENBQU9DLFdBQVAsRUFBbkMsQ0FBM0IsRUFBcUZFLEdBQXJGLENBQXlGQyxPQUFPLElBQUk7QUFDakcsWUFBTUMsUUFBUSxHQUFHRCxPQUFPLENBQUNiLElBQVIsR0FBZWUsbURBQWYsR0FBNEJDLGtEQUE3QztBQUNBLGFBQU8sNERBQUMsUUFBRDtBQUFVLHNCQUFjLEVBQUV4QixjQUExQjtBQUEwQyxXQUFHLEVBQUVxQixPQUFPLENBQUNJLEVBQXZEO0FBQTJELGVBQU8sRUFBRTNCLFlBQVksQ0FBQ3VCLE9BQU8sQ0FBQ0ksRUFBVCxDQUFoRjtBQUE4RixlQUFPLEVBQUVKLE9BQXZHO0FBQWdILGdCQUFRLEVBQUV0QixRQUExSDtBQUFvSSxjQUFNLEVBQUVUO0FBQTVJLFFBQVA7QUFDSCxLQUhBLENBREQsQ0FGRyxDQUFQO0FBU0g7O0FBcEJvRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb250ZW50bGlzdC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdGF0aWMgZ2V0UGx1Z2luc1BhbmVsKHBsdWdpbnMsIHN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuLy8gICAgIGNvbnN0IHtmb2xkZXIgPSBcIlwiLCBvbkNoYW5nZSwgcmVsb2FkfSA9IG9wdGlvbnM7XHJcbi8vICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IFwiUGx1Z2luc1wiLCBidXR0b246IHt0aXRsZTogXCJPcGVuIFBsdWdpbiBGb2xkZXJcIiwgb25DbGljazogKCkgPT4geyByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTsgfX19KTtcclxuLy8gICAgIGNvbnN0IGNhcmRzID0gcGx1Z2lucy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKHBsdWdpbiA9PlxyXG4vLyAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGx1Z2luQ2FyZCwge2tleTogcGx1Z2luLmlkLCBlbmFibGVkOiBzdGF0ZVtwbHVnaW4uaWRdLCBjb250ZW50OiBwbHVnaW4sIG9uQ2hhbmdlLCByZWxvYWR9KVxyXG4vLyAgICAgKTtcclxuLy8gICAgIHJldHVybiBbdGl0bGVDb21wb25lbnQsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7Y2xhc3NOYW1lOiBcImJkYS1zbGlzdFwifSwgLi4uY2FyZHMpXTtcclxuLy8gfVxyXG5cclxuaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3MsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi90aXRsZVwiO1xyXG5pbXBvcnQgUGx1Z2luQ2FyZCBmcm9tIFwiLi9wbHVnaW5jYXJkXCI7XHJcbmltcG9ydCBUaGVtZUNhcmQgZnJvbSBcIi4vdGhlbWVjYXJkXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRMaXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVmcmVzaExpc3QpIHRoaXMucHJvcHMucmVmcmVzaExpc3QoKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHt0aXRsZSwgZm9sZGVyLCBjb250ZW50TGlzdCwgY29udGVudFN0YXRlLCBvbkNoYW5nZSwgcmVsb2FkfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3Qgc2hvd1JlbG9hZEljb24gPSAhU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJhZGRvbnNcIiwgXCJhdXRvUmVsb2FkXCIpO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGZvbGRlciA/IHt0aXRsZTogU3RyaW5ncy5BZGRvbnMub3BlbkZvbGRlci5mb3JtYXQoe3R5cGU6IHRpdGxlfSksIG9uQ2xpY2s6ICgpID0+IHtyZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTt9fSA6IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgPFNldHRpbmdzVGl0bGUga2V5PVwidGl0bGVcIiB0ZXh0PXt0aXRsZX0gYnV0dG9uPXtidXR0b259IG90aGVyQ2hpbGRyZW49e3Nob3dSZWxvYWRJY29uICYmIDxSZWxvYWRJY29uIGNsYXNzTmFtZT1cImJkLXJlbG9hZFwiIG9uQ2xpY2s9e3RoaXMucmVsb2FkLmJpbmQodGhpcyl9IC8+fSAvPixcclxuICAgICAgICAgICAgPHVsIGtleT1cIkNvbnRlbnRMaXN0XCIgY2xhc3NOYW1lPXtcImJkYS1zbGlzdFwifT5cclxuICAgICAgICAgICAge2NvbnRlbnRMaXN0LnNvcnQoKGEsIGIpID0+IGEubmFtZS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5uYW1lLnRvTG93ZXJDYXNlKCkpKS5tYXAoY29udGVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBDYXJkVHlwZSA9IGNvbnRlbnQudHlwZSA/IFBsdWdpbkNhcmQgOiBUaGVtZUNhcmQ7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPENhcmRUeXBlIHNob3dSZWxvYWRJY29uPXtzaG93UmVsb2FkSWNvbn0ga2V5PXtjb250ZW50LmlkfSBlbmFibGVkPXtjb250ZW50U3RhdGVbY29udGVudC5pZF19IGNvbnRlbnQ9e2NvbnRlbnR9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gcmVsb2FkPXtyZWxvYWR9IC8+O1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICBdO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/contentlist.jsx\n"); /***/ }), @@ -887,7 +899,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (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 PluginCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// import {SettingsCookie, PluginCookie, Plugins} from \"data\";\n\n\n\nclass PluginCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.state = {\n checked: this.props.enabled,\n //PluginManager.isEnabled(this.props.content.id),\n settingsOpen: false\n };\n this.hasSettings = typeof this.props.content.plugin.getSettingsPanel === \"function\";\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.reload = this.reload.bind(this); // this.onReload = this.onReload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (this.state.settingsOpen) {\n if (this.settingsPanel instanceof Node) {\n this.panelRef.current.appendChild(this.settingsPanel);\n } // if (!SettingsCookie[\"fork-ps-3\"]) return;\n\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 panel = $(this.panelRef.current);\n const container = panel.parents(\".scroller-2FKFPG\");\n if (!isHidden(container[0], panel[0])) return;\n container.animate({\n scrollTop: panel.offset().top - container.offset().top + container.scrollTop() - 30\n }, 300);\n }\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = this.getString(content.name);\n const author = this.getString(content.author);\n const description = this.getString(content.description);\n const version = this.getString(content.version);\n const website = content.website;\n const source = content.source;\n\n if (this.state.settingsOpen) {\n try {\n this.settingsPanel = content.plugin.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].stacktrace(\"Plugin Settings\", \"Unable to get settings panel for \" + content.name + \".\", err);\n }\n\n const props = {\n id: `plugin-settings-${name}`,\n className: \"plugin-settings\",\n ref: this.panelRef\n };\n if (typeof this.settingsPanel == \"string\") props.dangerouslySetInnerHTML = this.settingsPanel;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n className: \"settings-open ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n \"float\": \"right\",\n \"cursor\": \"pointer\"\n },\n onClick: () => {\n this.panelRef.current.innerHTML = \"\";\n this.setState({\n settingsOpen: false\n });\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, this.settingsPanel instanceof modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component ? this.settingsPanel : null));\n }\n\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source || this.hasSettings) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-website\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-source\",\n href: source,\n target: \"_blank\"\n }, \"Source\")), this.hasSettings && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bd-button bd-button-plugin-settings\",\n disabled: !this.state.checked\n }, \"Settings\")));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n });\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n showSettings() {\n if (!this.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3BsdWdpbmNhcmQuanM/NzczZCJdLCJuYW1lcyI6WyJQbHVnaW5DYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwib25DaGFuZ2UiLCJiaW5kIiwic2hvd1NldHRpbmdzIiwic3RhdGUiLCJjaGVja2VkIiwiZW5hYmxlZCIsInNldHRpbmdzT3BlbiIsImhhc1NldHRpbmdzIiwiY29udGVudCIsInBsdWdpbiIsImdldFNldHRpbmdzUGFuZWwiLCJzZXR0aW5nc1BhbmVsIiwicGFuZWxSZWYiLCJjcmVhdGVSZWYiLCJyZWxvYWQiLCJpZCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiTm9kZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJwYW5lbCIsIiQiLCJwYXJlbnRzIiwiYW5pbWF0ZSIsIm9mZnNldCIsInRvcCIsImdldFN0cmluZyIsInZhbHVlIiwidG9TdHJpbmciLCJyZW5kZXIiLCJuYW1lIiwiYXV0aG9yIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwid2Vic2l0ZSIsInNvdXJjZSIsImVyciIsIkxvZ2dlciIsInN0YWNrdHJhY2UiLCJjbGFzc05hbWUiLCJyZWYiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIm9uQ2xpY2siLCJpbm5lckhUTUwiLCJzZXRTdGF0ZSIsIkNsb3NlQnV0dG9uIiwiU2V0dGluZ3MiLCJnZXQiLCJSZWxvYWRJY29uIiwiZmxleCIsInR5cGUiLCJocmVmIiwidGFyZ2V0IiwiZGlzYWJsZWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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RCxRQUFMLENBQWM7QUFBQ25ELGtCQUFZLEVBQUU7QUFBZixLQUFkO0FBQ0g7O0FBekhtRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9wbHVnaW5jYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHtTZXR0aW5nc0Nvb2tpZSwgUGx1Z2luQ29va2llLCBQbHVnaW5zfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1JlYWN0LCBMb2dnZXIsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQ2xvc2VCdXR0b24gZnJvbSBcIi4uL2ljb25zL2Nsb3NlXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsdWdpbkNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zaG93U2V0dGluZ3MgPSB0aGlzLnNob3dTZXR0aW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZW5hYmxlZCwvL1BsdWdpbk1hbmFnZXIuaXNFbmFibGVkKHRoaXMucHJvcHMuY29udGVudC5pZCksXHJcbiAgICAgICAgICAgIHNldHRpbmdzT3BlbjogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaGFzU2V0dGluZ3MgPSB0eXBlb2YgdGhpcy5wcm9wcy5jb250ZW50LnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc1BhbmVsID0gXCJcIjtcclxuICAgICAgICB0aGlzLnBhbmVsUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVsb2FkID0gdGhpcy5yZWxvYWQuYmluZCh0aGlzKTtcclxuICAgICAgICAvLyB0aGlzLm9uUmVsb2FkID0gdGhpcy5vblJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50ID0gdGhpcy5wcm9wcy5yZWxvYWQodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNldHRpbmdzT3Blbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmFwcGVuZENoaWxkKHRoaXMuc2V0dGluZ3NQYW5lbCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIGlmICghU2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTNcIl0pIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSAoY29udGFpbmVyLCBlbGVtZW50KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY1RvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjQm90dG9tID0gY1RvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgZVRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZUJvdHRvbSA9IGVUb3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIChlVG9wIDwgY1RvcCB8fCBlQm90dG9tID4gY0JvdHRvbSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBjb25zdCBwYW5lbCA9ICQodGhpcy5wYW5lbFJlZi5jdXJyZW50KTtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gcGFuZWwucGFyZW50cyhcIi5zY3JvbGxlci0yRktGUEdcIik7XHJcbiAgICAgICAgICAgIGlmICghaXNIaWRkZW4oY29udGFpbmVyWzBdLCBwYW5lbFswXSkpIHJldHVybjtcclxuICAgICAgICAgICAgY29udGFpbmVyLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiBwYW5lbC5vZmZzZXQoKS50b3AgLSBjb250YWluZXIub2Zmc2V0KCkudG9wICsgY29udGFpbmVyLnNjcm9sbFRvcCgpIC0gMzBcclxuICAgICAgICAgICAgfSwgMzAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RyaW5nKHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiID8gdmFsdWUgOiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7Y29udGVudH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldFN0cmluZyhjb250ZW50Lm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvciA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQuYXV0aG9yKTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQuZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmdldFN0cmluZyhjb250ZW50LnZlcnNpb24pO1xyXG4gICAgICAgIGNvbnN0IHdlYnNpdGUgPSBjb250ZW50LndlYnNpdGU7XHJcbiAgICAgICAgY29uc3Qgc291cmNlID0gY29udGVudC5zb3VyY2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNldHRpbmdzT3Blbikge1xyXG4gICAgICAgICAgICB0cnkgeyB0aGlzLnNldHRpbmdzUGFuZWwgPSBjb250ZW50LnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsKCk7IH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikgeyBMb2dnZXIuc3RhY2t0cmFjZShcIlBsdWdpbiBTZXR0aW5nc1wiLCBcIlVuYWJsZSB0byBnZXQgc2V0dGluZ3MgcGFuZWwgZm9yIFwiICsgY29udGVudC5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0ge2lkOiBgcGx1Z2luLXNldHRpbmdzLSR7bmFtZX1gLCBjbGFzc05hbWU6IFwicGx1Z2luLXNldHRpbmdzXCIsIHJlZjogdGhpcy5wYW5lbFJlZn07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YodGhpcy5zZXR0aW5nc1BhbmVsKSA9PSBcInN0cmluZ1wiKSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHRoaXMuc2V0dGluZ3NQYW5lbDtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge2NsYXNzTmFtZTogXCJzZXR0aW5ncy1vcGVuIHVpLXN3aXRjaC1pdGVtXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB7XCJmbG9hdFwiOiBcInJpZ2h0XCIsIFwiY3Vyc29yXCI6IFwicG9pbnRlclwifSwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbFJlZi5jdXJyZW50LmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IGZhbHNlfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xvc2VCdXR0b24sIG51bGwpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBwcm9wcywgdGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgUmVhY3QuQ29tcG9uZW50ID8gdGhpcy5zZXR0aW5nc1BhbmVsIDogbnVsbCksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XCJkYXRhLW5hbWVcIjogbmFtZSwgXCJkYXRhLXZlcnNpb25cIjogdmVyc2lvbiwgXCJjbGFzc05hbWVcIjogXCJzZXR0aW5ncy1jbG9zZWQgdWktc3dpdGNoLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlci10aXRsZVwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbmFtZVwifSwgbmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIHZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtdmVyc2lvblwifSwgdmVyc2lvbiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGJ5IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1hdXRob3JcIn0sIGF1dGhvcilcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtY29udHJvbHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImFkZG9uc1wiLCBcImF1dG9SZWxvYWRcIikgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZCBiZC1yZWxvYWQtY2FyZFwiLCBvbkNsaWNrOiB0aGlzLnJlbG9hZH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge2NsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtd3JhcHBlciB1aS1mbGV4LWNoaWxkXCIsIHN0eWxlOiB7ZmxleDogXCIwIDAgYXV0b1wifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge2NoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIiwgdHlwZTogXCJjaGVja2JveFwifSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwidWktc3dpdGNoIGNoZWNrZWRcIiA6IFwidWktc3dpdGNoXCJ9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uLXdyYXAgc2Nyb2xsZXItd3JhcCBmYWRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbiBzY3JvbGxlclwifSwgZGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICh3ZWJzaXRlIHx8IHNvdXJjZSB8fCB0aGlzLmhhc1NldHRpbmdzKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGluayBiZGEtbGluay13ZWJzaXRlXCIsIGhyZWY6IHdlYnNpdGUsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiV2Vic2l0ZVwiKSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIHNvdXJjZSAmJiBcIiB8IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rIGJkYS1saW5rLXNvdXJjZVwiLCBocmVmOiBzb3VyY2UsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiU291cmNlXCIpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNTZXR0aW5ncyAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtvbkNsaWNrOiB0aGlzLnNob3dTZXR0aW5ncywgY2xhc3NOYW1lOiBcImJkLWJ1dHRvbiBiZC1idXR0b24tcGx1Z2luLXNldHRpbmdzXCIsIGRpc2FibGVkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSwgXCJTZXR0aW5nc1wiKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJiB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuY29udGVudC5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd1NldHRpbmdzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNTZXR0aW5ncykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3NldHRpbmdzT3BlbjogdHJ1ZX0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/plugincard.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PluginCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// import {SettingsCookie, PluginCookie, Plugins} from \"data\";\n\n\n\nclass PluginCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.state = {\n checked: this.props.enabled,\n //PluginManager.isEnabled(this.props.content.id),\n settingsOpen: false\n };\n this.hasSettings = typeof this.props.content.plugin.getSettingsPanel === \"function\";\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.reload = this.reload.bind(this); // this.onReload = this.onReload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (this.state.settingsOpen) {\n if (this.settingsPanel instanceof Node) {\n this.panelRef.current.appendChild(this.settingsPanel);\n } // if (!SettingsCookie[\"fork-ps-3\"]) return;\n\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 panel = $(this.panelRef.current);\n const container = panel.parents(\".scroller-2FKFPG\");\n if (!isHidden(container[0], panel[0])) return;\n container.animate({\n scrollTop: panel.offset().top - container.offset().top + container.scrollTop() - 30\n }, 300);\n }\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n buildTitle(name, version, author) {\n const title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.title.split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name);\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version);\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n if (nameIndex) title[authorIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author);\n return title.flat();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = this.getString(content.name);\n const author = this.getString(content.author);\n const description = this.getString(content.description);\n const version = this.getString(content.version);\n const website = content.website;\n const source = content.source;\n\n if (this.state.settingsOpen) {\n try {\n this.settingsPanel = content.plugin.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].stacktrace(\"Plugin Settings\", \"Unable to get settings panel for \" + content.name + \".\", err);\n }\n\n const props = {\n id: `plugin-settings-${name}`,\n className: \"plugin-settings\",\n ref: this.panelRef\n };\n if (typeof this.settingsPanel == \"string\") props.dangerouslySetInnerHTML = this.settingsPanel;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n className: \"settings-open ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n \"float\": \"right\",\n \"cursor\": \"pointer\"\n },\n onClick: () => {\n this.panelRef.current.innerHTML = \"\";\n this.setState({\n settingsOpen: false\n });\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, this.settingsPanel instanceof modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component ? this.settingsPanel : null));\n }\n\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, this.buildTitle(name, version, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source || this.hasSettings) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-website\",\n href: website,\n target: \"_blank\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.website), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-source\",\n href: source,\n target: \"_blank\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.source)), this.hasSettings && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bd-button bd-button-plugin-settings\",\n disabled: !this.state.checked\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.pluginSettings)));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n });\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n showSettings() {\n if (!this.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3BsdWdpbmNhcmQuanM/NzczZCJdLCJuYW1lcyI6WyJQbHVnaW5DYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwib25DaGFuZ2UiLCJiaW5kIiwic2hvd1NldHRpbmdzIiwic3RhdGUiLCJjaGVja2VkIiwiZW5hYmxlZCIsInNldHRpbmdzT3BlbiIsImhhc1NldHRpbmdzIiwiY29udGVudCIsInBsdWdpbiIsImdldFNldHRpbmdzUGFuZWwiLCJzZXR0aW5nc1BhbmVsIiwicGFuZWxSZWYiLCJjcmVhdGVSZWYiLCJyZWxvYWQiLCJpZCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiTm9kZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJwYW5lbCIsIiQiLCJwYXJlbnRzIiwiYW5pbWF0ZSIsIm9mZnNldCIsInRvcCIsImdldFN0cmluZyIsInZhbHVlIiwidG9TdHJpbmciLCJidWlsZFRpdGxlIiwibmFtZSIsInZlcnNpb24iLCJhdXRob3IiLCJ0aXRsZSIsIlN0cmluZ3MiLCJBZGRvbnMiLCJzcGxpdCIsIm5hbWVJbmRleCIsImZpbmRJbmRleCIsInMiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwidmVyc2lvbkluZGV4IiwiYXV0aG9ySW5kZXgiLCJmbGF0IiwicmVuZGVyIiwiZGVzY3JpcHRpb24iLCJ3ZWJzaXRlIiwic291cmNlIiwiZXJyIiwiTG9nZ2VyIiwic3RhY2t0cmFjZSIsInJlZiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwic3R5bGUiLCJvbkNsaWNrIiwiaW5uZXJIVE1MIiwic2V0U3RhdGUiLCJDbG9zZUJ1dHRvbiIsIlNldHRpbmdzIiwiZ2V0IiwiUmVsb2FkSWNvbiIsImZsZXgiLCJ0eXBlIiwiaHJlZiIsInRhcmdldCIsImRpc2FibGVkIiwicGx1Z2luU2V0dGluZ3MiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLFVBQU4sU0FBeUJDLDZDQUFLLENBQUNDLFNBQS9CLENBQXlDO0FBRXBEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0MsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNBLFNBQUtDLFlBQUwsR0FBb0IsS0FBS0EsWUFBTCxDQUFrQkQsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FBcEI7QUFDQSxTQUFLRSxLQUFMLEdBQWE7QUFDVEMsYUFBTyxFQUFFLEtBQUtMLEtBQUwsQ0FBV00sT0FEWDtBQUNtQjtBQUM1QkMsa0JBQVksRUFBRTtBQUZMLEtBQWI7QUFJQSxTQUFLQyxXQUFMLEdBQW1CLE9BQU8sS0FBS1IsS0FBTCxDQUFXUyxPQUFYLENBQW1CQyxNQUFuQixDQUEwQkMsZ0JBQWpDLEtBQXNELFVBQXpFO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixFQUFyQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JoQiw2Q0FBSyxDQUFDaUIsU0FBTixFQUFoQjtBQUVBLFNBQUtDLE1BQUwsR0FBYyxLQUFLQSxNQUFMLENBQVliLElBQVosQ0FBaUIsSUFBakIsQ0FBZCxDQVplLENBYWY7QUFDSDs7QUFFRGEsUUFBTSxHQUFHO0FBQ0wsUUFBSSxDQUFDLEtBQUtmLEtBQUwsQ0FBV2UsTUFBaEIsRUFBd0I7QUFDeEIsU0FBS2YsS0FBTCxDQUFXUyxPQUFYLEdBQXFCLEtBQUtULEtBQUwsQ0FBV2UsTUFBWCxDQUFrQixLQUFLZixLQUFMLENBQVdTLE9BQVgsQ0FBbUJPLEVBQXJDLENBQXJCO0FBQ0EsU0FBS0MsV0FBTDtBQUNIOztBQUVEQyxvQkFBa0IsR0FBRztBQUNq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Q29udGVudCI6WyIvLyBpbXBvcnQge1NldHRpbmdzQ29va2llLCBQbHVnaW5Db29raWUsIFBsdWdpbnN9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7UmVhY3QsIExvZ2dlciwgU2V0dGluZ3MsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBDbG9zZUJ1dHRvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2VcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGx1Z2luQ2FyZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNob3dTZXR0aW5ncyA9IHRoaXMuc2hvd1NldHRpbmdzLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5lbmFibGVkLC8vUGx1Z2luTWFuYWdlci5pc0VuYWJsZWQodGhpcy5wcm9wcy5jb250ZW50LmlkKSxcclxuICAgICAgICAgICAgc2V0dGluZ3NPcGVuOiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5oYXNTZXR0aW5ncyA9IHR5cGVvZiB0aGlzLnByb3BzLmNvbnRlbnQucGx1Z2luLmdldFNldHRpbmdzUGFuZWwgPT09IFwiZnVuY3Rpb25cIjtcclxuICAgICAgICB0aGlzLnNldHRpbmdzUGFuZWwgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMucGFuZWxSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIC8vIHRoaXMub25SZWxvYWQgPSB0aGlzLm9uUmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5yZWxvYWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnQgPSB0aGlzLnByb3BzLnJlbG9hZCh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3NPcGVuKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzUGFuZWwgaW5zdGFuY2VvZiBOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuYXBwZW5kQ2hpbGQodGhpcy5zZXR0aW5nc1BhbmVsKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gaWYgKCFTZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtM1wiXSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IChjb250YWluZXIsIGVsZW1lbnQpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNCb3R0b20gPSBjVG9wICsgY29udGFpbmVyLmNsaWVudEhlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlVG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlQm90dG9tID0gZVRvcCArIGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiAgKGVUb3AgPCBjVG9wIHx8IGVCb3R0b20gPiBjQm90dG9tKTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gJCh0aGlzLnBhbmVsUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBwYW5lbC5wYXJlbnRzKFwiLnNjcm9sbGVyLTJGS0ZQR1wiKTtcclxuICAgICAgICAgICAgaWYgKCFpc0hpZGRlbihjb250YWluZXJbMF0sIHBhbmVsWzBdKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb250YWluZXIuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHBhbmVsLm9mZnNldCgpLnRvcCAtIGNvbnRhaW5lci5vZmZzZXQoKS50b3AgKyBjb250YWluZXIuc2Nyb2xsVG9wKCkgLSAzMFxyXG4gICAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRUaXRsZShuYW1lLCB2ZXJzaW9uLCBhdXRob3IpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IFN0cmluZ3MuQWRkb25zLnRpdGxlLnNwbGl0KC8oe3tbQS1aYS16XSt9fSkvKTtcclxuICAgICAgICBjb25zdCBuYW1lSW5kZXggPSB0aXRsZS5maW5kSW5kZXgocyA9PiBzID09IFwie3tuYW1lfX1cIik7XHJcbiAgICAgICAgaWYgKG5hbWVJbmRleCkgdGl0bGVbbmFtZUluZGV4XSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLW5hbWVcIn0sIG5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb25JbmRleCA9IHRpdGxlLmZpbmRJbmRleChzID0+IHMgPT0gXCJ7e3ZlcnNpb259fVwiKTtcclxuICAgICAgICBpZiAobmFtZUluZGV4KSB0aXRsZVt2ZXJzaW9uSW5kZXhdID0gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtdmVyc2lvblwifSwgdmVyc2lvbik7XHJcbiAgICAgICAgY29uc3QgYXV0aG9ySW5kZXggPSB0aXRsZS5maW5kSW5kZXgocyA9PiBzID09IFwie3thdXRob3J9fVwiKTtcclxuICAgICAgICBpZiAobmFtZUluZGV4KSB0aXRsZVthdXRob3JJbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1hdXRob3JcIn0sIGF1dGhvcik7XHJcbiAgICAgICAgcmV0dXJuIHRpdGxlLmZsYXQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qge2NvbnRlbnR9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC5uYW1lKTtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSB0aGlzLmdldFN0cmluZyhjb250ZW50LmF1dGhvcik7XHJcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLmdldFN0cmluZyhjb250ZW50LmRlc2NyaXB0aW9uKTtcclxuICAgICAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC52ZXJzaW9uKTtcclxuICAgICAgICBjb25zdCB3ZWJzaXRlID0gY29udGVudC53ZWJzaXRlO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRlbnQuc291cmNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zZXR0aW5nc09wZW4pIHtcclxuICAgICAgICAgICAgdHJ5IHsgdGhpcy5zZXR0aW5nc1BhbmVsID0gY29udGVudC5wbHVnaW4uZ2V0U2V0dGluZ3NQYW5lbCgpOyB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHsgTG9nZ2VyLnN0YWNrdHJhY2UoXCJQbHVnaW4gU2V0dGluZ3NcIiwgXCJVbmFibGUgdG8gZ2V0IHNldHRpbmdzIHBhbmVsIGZvciBcIiArIGNvbnRlbnQubmFtZSArIFwiLlwiLCBlcnIpOyB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHtpZDogYHBsdWdpbi1zZXR0aW5ncy0ke25hbWV9YCwgY2xhc3NOYW1lOiBcInBsdWdpbi1zZXR0aW5nc1wiLCByZWY6IHRoaXMucGFuZWxSZWZ9O1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKHRoaXMuc2V0dGluZ3NQYW5lbCkgPT0gXCJzdHJpbmdcIikgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB0aGlzLnNldHRpbmdzUGFuZWw7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtjbGFzc05hbWU6IFwic2V0dGluZ3Mtb3BlbiB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtzdHlsZToge1wiZmxvYXRcIjogXCJyaWdodFwiLCBcImN1cnNvclwiOiBcInBvaW50ZXJcIn0sIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxSZWYuY3VycmVudC5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2V0dGluZ3NPcGVuOiBmYWxzZX0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KENsb3NlQnV0dG9uLCBudWxsKVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgcHJvcHMsIHRoaXMuc2V0dGluZ3NQYW5lbCBpbnN0YW5jZW9mIFJlYWN0LkNvbXBvbmVudCA/IHRoaXMuc2V0dGluZ3NQYW5lbCA6IG51bGwpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwge1wiZGF0YS1uYW1lXCI6IG5hbWUsIFwiZGF0YS12ZXJzaW9uXCI6IHZlcnNpb24sIFwiY2xhc3NOYW1lXCI6IFwic2V0dGluZ3MtY2xvc2VkIHVpLXN3aXRjaC1pdGVtXCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlclwifSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXItdGl0bGVcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRUaXRsZShuYW1lLCB2ZXJzaW9uLCBhdXRob3IpXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWNvbnRyb2xzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJhZGRvbnNcIiwgXCJhdXRvUmVsb2FkXCIpICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVsb2FkSWNvbiwge2NsYXNzTmFtZTogXCJiZC1yZWxvYWQgYmQtcmVsb2FkLWNhcmRcIiwgb25DbGljazogdGhpcy5yZWxvYWR9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtjbGFzc05hbWU6IFwidWktc3dpdGNoLXdyYXBwZXIgdWktZmxleC1jaGlsZFwiLCBzdHlsZToge2ZsZXg6IFwiMCAwIGF1dG9cIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtjaGVja2VkOiB0aGlzLnN0YXRlLmNoZWNrZWQsIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLCBjbGFzc05hbWU6IFwidWktc3dpdGNoLWNoZWNrYm94XCIsIHR5cGU6IFwiY2hlY2tib3hcIn0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiB0aGlzLnN0YXRlLmNoZWNrZWQgPyBcInVpLXN3aXRjaCBjaGVja2VkXCIgOiBcInVpLXN3aXRjaFwifSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbi13cmFwIHNjcm9sbGVyLXdyYXAgZmFkZVwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24gc2Nyb2xsZXJcIn0sIGRlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAod2Vic2l0ZSB8fCBzb3VyY2UgfHwgdGhpcy5oYXNTZXR0aW5ncykgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1mb290ZXJcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rc1wifSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmsgYmRhLWxpbmstd2Vic2l0ZVwiLCBocmVmOiB3ZWJzaXRlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBTdHJpbmdzLkFkZG9ucy53ZWJzaXRlKSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIHNvdXJjZSAmJiBcIiB8IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rIGJkYS1saW5rLXNvdXJjZVwiLCBocmVmOiBzb3VyY2UsIHRhcmdldDogXCJfYmxhbmtcIn0sIFN0cmluZ3MuQWRkb25zLnNvdXJjZSlcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1NldHRpbmdzICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge29uQ2xpY2s6IHRoaXMuc2hvd1NldHRpbmdzLCBjbGFzc05hbWU6IFwiYmQtYnV0dG9uIGJkLWJ1dHRvbi1wbHVnaW4tc2V0dGluZ3NcIiwgZGlzYWJsZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9LCBTdHJpbmdzLkFkZG9ucy5wbHVnaW5TZXR0aW5ncylcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZH0pO1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UgJiYgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZXR0aW5ncygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzU2V0dGluZ3MpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IHRydWV9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/plugincard.js\n"); /***/ }), @@ -911,7 +923,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (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 ThemeCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n\n // import Toasts from \"../toasts\";\n\nclass ThemeCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.enabled,\n //ThemeManager.isEnabled(this.props.content.id),\n reloads: 0\n };\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = content.name;\n const description = content.description;\n const version = content.version;\n const author = content.author;\n const website = content.website;\n const source = content.source;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: source,\n target: \"_blank\"\n }, \"Source\"))));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n });\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcz9jMDVjIl0sIm5hbWVzIjpbIlRoZW1lQ2FyZCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2hlY2tlZCIsImVuYWJsZWQiLCJyZWxvYWRzIiwib25DaGFuZ2UiLCJiaW5kIiwicmVsb2FkIiwiY29udGVudCIsImlkIiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwiYXV0aG9yIiwid2Vic2l0ZSIsInNvdXJjZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTZXR0aW5ncyIsImdldCIsIlJlbG9hZEljb24iLCJvbkNsaWNrIiwic3R5bGUiLCJmbGV4IiwidHlwZSIsImhyZWYiLCJ0YXJnZXQiLCJzZXRTdGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVBOztBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDZDQUFLLENBQUNDLFNBQTlCLENBQXdDO0FBRW5EQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsYUFBTyxFQUFFLEtBQUtGLEtBQUwsQ0FBV0csT0FEWDtBQUNvQjtBQUM3QkMsYUFBTyxFQUFFO0FBRkEsS0FBYjtBQUlBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUQsSUFBWixDQUFpQixJQUFqQixDQUFkO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFFBQUksQ0FBQyxLQUFLUCxLQUFMLENBQVdPLE1BQWhCLEVBQXdCO0FBQ3hCLFNBQUtQLEtBQUwsQ0FBV1EsT0FBWCxHQUFxQixLQUFLUixLQUFMLENBQVdPLE1BQVgsQ0FBa0IsS0FB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O0FBQVosS0FBM0IsRUFDbkJ0Qiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUE1QixFQUNJSCxPQUFPLElBQUluQiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixHQUFwQixFQUF5QjtBQUFDQyxlQUFTLEVBQUUsVUFBWjtBQUF3QlEsVUFBSSxFQUFFWCxPQUE5QjtBQUF1Q1ksWUFBTSxFQUFFO0FBQS9DLEtBQXpCLEVBQW1GLFNBQW5GLENBRGYsRUFFSVosT0FBTyxJQUFJQyxNQUFYLElBQXFCLEtBRnpCLEVBR0lBLE1BQU0sSUFBSXBCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNDLGVBQVMsRUFBRSxVQUFaO0FBQXdCUSxVQUFJLEVBQUVWLE1BQTlCO0FBQXNDVyxZQUFNLEVBQUU7QUFBOUMsS0FBekIsRUFBa0YsUUFBbEYsQ0FIZCxDQURtQixDQXBCcEIsQ0FBUDtBQTRCSDs7QUFFRHZCLFVBQVEsR0FBRztBQUNQLFNBQUt3QixRQUFMLENBQWM7QUFBQzNCLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNBLFNBQUtGLEtBQUwsQ0FBV0ssUUFBWCxJQUF1QixLQUFLTCxLQUFMLENBQVdLLFFBQVgsQ0FBb0IsS0FBS0wsS0FBTCxDQUFXUSxPQUFYLENBQW1CQyxFQUF2QyxDQUF2QjtBQUNIOztBQTVEa0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvdGhlbWVjYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuLy8gaW1wb3J0IFRvYXN0cyBmcm9tIFwiLi4vdG9hc3RzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaGVtZUNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZW5hYmxlZCwgLy9UaGVtZU1hbmFnZXIuaXNFbmFibGVkKHRoaXMucHJvcHMuY29udGVudC5pZCksXHJcbiAgICAgICAgICAgIHJlbG9hZHM6IDBcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50ID0gdGhpcy5wcm9wcy5yZWxvYWQodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbnRlbnQubmFtZTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGNvbnRlbnQuZGVzY3JpcHRpb247XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IGNvbnRlbnQudmVyc2lvbjtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSBjb250ZW50LmF1dGhvcjtcclxuICAgICAgICBjb25zdCB3ZWJzaXRlID0gY29udGVudC53ZWJzaXRlO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRlbnQuc291cmNlO1xyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyLXRpdGxlXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiYWRkb25zXCIsIFwiYXV0b1JlbG9hZFwiKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFJlbG9hZEljb24sIHtjbGFzc05hbWU6IFwiYmQtcmVsb2FkIGJkLXJlbG9hZC1jYXJkXCIsIG9uQ2xpY2s6IHRoaXMucmVsb2FkfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7Y2xhc3NOYW1lOiBcInVpLXN3aXRjaC13cmFwcGVyIHVpLWZsZXgtY2hpbGRcIiwgc3R5bGU6IHtmbGV4OiBcIjAgMCBhdXRvXCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7Y2hlY2tlZDogdGhpcy5zdGF0ZS5jaGVja2VkLCBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgY2xhc3NOYW1lOiBcInVpLXN3aXRjaC1jaGVja2JveFwiLCB0eXBlOiBcImNoZWNrYm94XCJ9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogdGhpcy5zdGF0ZS5jaGVja2VkID8gXCJ1aS1zd2l0Y2ggY2hlY2tlZFwiIDogXCJ1aS1zd2l0Y2hcIn0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uIHNjcm9sbGVyXCJ9LCBkZXNjcmlwdGlvbilcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKHdlYnNpdGUgfHwgc291cmNlKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua1wiLCBocmVmOiB3ZWJzaXRlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIldlYnNpdGVcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSAmJiBzb3VyY2UgJiYgXCIgfCBcIixcclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2UgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua1wiLCBocmVmOiBzb3VyY2UsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiU291cmNlXCIpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9KTtcclxuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlICYmIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/themecard.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ThemeCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n\n // import Toasts from \"../toasts\";\n\nclass ThemeCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.enabled,\n //ThemeManager.isEnabled(this.props.content.id),\n reloads: 0\n };\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n buildTitle(name, version, author) {\n const title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.title.split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name);\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version);\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n if (nameIndex) title[authorIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author);\n return title.flat();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = content.name;\n const description = content.description;\n const version = content.version;\n const author = content.author;\n const website = content.website;\n const source = content.source;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, this.buildTitle(name, version, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: source,\n target: \"_blank\"\n }, \"Source\"))));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n });\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcz9jMDVjIl0sIm5hbWVzIjpbIlRoZW1lQ2FyZCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2hlY2tlZCIsImVuYWJsZWQiLCJyZWxvYWRzIiwib25DaGFuZ2UiLCJiaW5kIiwicmVsb2FkIiwiY29udGVudCIsImlkIiwiZm9yY2VVcGRhdGUiLCJidWlsZFRpdGxlIiwibmFtZSIsInZlcnNpb24iLCJhdXRob3IiLCJ0aXRsZSIsIlN0cmluZ3MiLCJBZGRvbnMiLCJzcGxpdCIsIm5hbWVJbmRleCIsImZpbmRJbmRleCIsInMiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwidmVyc2lvbkluZGV4IiwiYXV0aG9ySW5kZXgiLCJmbGF0IiwicmVuZGVyIiwiZGVzY3JpcHRpb24iLCJ3ZWJzaXRlIiwic291cmNlIiwiU2V0dGluZ3MiLCJnZXQiLCJSZWxvYWRJY29uIiwib25DbGljayIsInN0eWxlIiwiZmxleCIsInR5cGUiLCJocmVmIiwidGFyZ2V0Iiwic2V0U3RhdGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFQTs7QUFFZSxNQUFNQSxTQUFOLFNBQXdCQyw2Q0FBSyxDQUFDQyxTQUE5QixDQUF3QztBQUVuREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGFBQU8sRUFBRSxLQUFLRixLQUFMLENBQVdHLE9BRFg7QUFDb0I7QUFDN0JDLGFBQU8sRUFBRTtBQUZBLEtBQWI7QUFJQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0MsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxLQUFLQSxNQUFMLENBQVlELElBQVosQ0FBaUIsSUFBakIsQ0FBZDtBQUNIOztBQUVEQyxRQUFNLEdB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QUFBL0MsS0FBekIsRUFBbUYsU0FBbkYsQ0FEZixFQUVJVixPQUFPLElBQUlDLE1BQVgsSUFBcUIsS0FGekIsRUFHSUEsTUFBTSxJQUFJakMsNkNBQUssQ0FBQ3lCLGFBQU4sQ0FBb0IsR0FBcEIsRUFBeUI7QUFBQ0MsZUFBUyxFQUFFLFVBQVo7QUFBd0JlLFVBQUksRUFBRVIsTUFBOUI7QUFBc0NTLFlBQU0sRUFBRTtBQUE5QyxLQUF6QixFQUFrRixRQUFsRixDQUhkLENBRG1CLENBaEJwQixDQUFQO0FBd0JIOztBQUVEbEMsVUFBUSxHQUFHO0FBQ1AsU0FBS21DLFFBQUwsQ0FBYztBQUFDdEMsYUFBTyxFQUFFLENBQUMsS0FBS0QsS0FBTCxDQUFXQztBQUF0QixLQUFkO0FBQ0EsU0FBS0YsS0FBTCxDQUFXSyxRQUFYLElBQXVCLEtBQUtMLEtBQUwsQ0FBV0ssUUFBWCxDQUFvQixLQUFLTCxLQUFMLENBQVdRLE9BQVgsQ0FBbUJDLEVBQXZDLENBQXZCO0FBQ0g7O0FBbkVrRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy90aGVtZWNhcmQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBTZXR0aW5ncywgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG4vLyBpbXBvcnQgVG9hc3RzIGZyb20gXCIuLi90b2FzdHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRoZW1lQ2FyZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5lbmFibGVkLCAvL1RoZW1lTWFuYWdlci5pc0VuYWJsZWQodGhpcy5wcm9wcy5jb250ZW50LmlkKSxcclxuICAgICAgICAgICAgcmVsb2FkczogMFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlbG9hZCA9IHRoaXMucmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5yZWxvYWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnQgPSB0aGlzLnByb3BzLnJlbG9hZCh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZFRpdGxlKG5hbWUsIHZlcnNpb24sIGF1dGhvcikge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gU3RyaW5ncy5BZGRvbnMudGl0bGUuc3BsaXQoLyh7e1tBLVphLXpdK319KS8pO1xyXG4gICAgICAgIGNvbnN0IG5hbWVJbmRleCA9IHRpdGxlLmZpbmRJbmRleChzID0+IHMgPT0gXCJ7e25hbWV9fVwiKTtcclxuICAgICAgICBpZiAobmFtZUluZGV4KSB0aXRsZVtuYW1lSW5kZXhdID0gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbmFtZVwifSwgbmFtZSk7XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbkluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7dmVyc2lvbn19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW3ZlcnNpb25JbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKTtcclxuICAgICAgICBjb25zdCBhdXRob3JJbmRleCA9IHRpdGxlLmZpbmRJbmRleChzID0+IHMgPT0gXCJ7e2F1dGhvcn19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW2F1dGhvckluZGV4XSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKTtcclxuICAgICAgICByZXR1cm4gdGl0bGUuZmxhdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7Y29udGVudH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSBjb250ZW50Lm5hbWU7XHJcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBjb250ZW50LmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBjb250ZW50LnZlcnNpb247XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gY29udGVudC5hdXRob3I7XHJcbiAgICAgICAgY29uc3Qgd2Vic2l0ZSA9IGNvbnRlbnQud2Vic2l0ZTtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZW50LnNvdXJjZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XCJkYXRhLW5hbWVcIjogbmFtZSwgXCJkYXRhLXZlcnNpb25cIjogdmVyc2lvbiwgXCJjbGFzc05hbWVcIjogXCJzZXR0aW5ncy1jbG9zZWQgdWktc3dpdGNoLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlci10aXRsZVwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZFRpdGxlKG5hbWUsIHZlcnNpb24sIGF1dGhvcilcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtY29udHJvbHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImFkZG9uc1wiLCBcImF1dG9SZWxvYWRcIikgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZCBiZC1yZWxvYWQtY2FyZFwiLCBvbkNsaWNrOiB0aGlzLnJlbG9hZH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge2NsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtd3JhcHBlciB1aS1mbGV4LWNoaWxkXCIsIHN0eWxlOiB7ZmxleDogXCIwIDAgYXV0b1wifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge2NoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIiwgdHlwZTogXCJjaGVja2JveFwifSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwidWktc3dpdGNoIGNoZWNrZWRcIiA6IFwidWktc3dpdGNoXCJ9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uLXdyYXAgc2Nyb2xsZXItd3JhcCBmYWRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbiBzY3JvbGxlclwifSwgZGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICh3ZWJzaXRlIHx8IHNvdXJjZSkgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1mb290ZXJcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rc1wifSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtcIiwgaHJlZjogd2Vic2l0ZSwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJXZWJzaXRlXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgc291cmNlICYmIFwiIHwgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtcIiwgaHJlZjogc291cmNlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIlNvdXJjZVwiKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJiB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuY29udGVudC5pZCk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/themecard.js\n"); /***/ }), diff --git a/src/data/strings.js b/src/data/strings.js index efbd45db..c643f59f 100644 --- a/src/data/strings.js +++ b/src/data/strings.js @@ -165,6 +165,16 @@ export default { } } }, + Addons: { + title: "{{name}} v{{version}} by {{author}}", + openFolder: "Open {{type}} Folder", + reload: "Reload", + pluginSettings: "Settings", + website: "Website", + source: "Source", + server: "Support Server", + donate: "Donate" + }, Emotes: { downloading: "Downloading emotes in the background do not reload.", downloaded: "All emotes successfully downloaded.", diff --git a/src/ui/modals.js b/src/ui/modals.js index 2c6f4885..3d17aee3 100644 --- a/src/ui/modals.js +++ b/src/ui/modals.js @@ -104,8 +104,8 @@ export default class Modals {
-
${Strings.General.plugins}
-
${Strings.General.themes}
+
${Strings.Panels.plugins}
+
${Strings.Panels.themes}
diff --git a/src/ui/settings.js b/src/ui/settings.js index 3f245a3c..349a7d8e 100644 --- a/src/ui/settings.js +++ b/src/ui/settings.js @@ -1,9 +1,9 @@ -import {Config} from "data"; import {React, WebpackModules, Patcher, ReactComponents, Utilities, Settings} from "modules"; import ContentList from "./settings/contentlist"; import SettingsGroup from "./settings/group"; import SettingsTitle from "./settings/title"; +import Attribution from "./settings/attribution"; export default new class SettingsRenderer { @@ -41,13 +41,6 @@ export default new class SettingsRenderer { }, options)); } - get attribution() { - return React.createElement("div", {className: "bd-version", style: {fontSize: "12px", fontWeight: "600", color: "#72767d", padding: "2px 10px"}}, - `BBD v${Config.bbdVersion} by `, - React.createElement("a", {href: "https://github.com/rauenzi/", target: "_blank"}, "Zerebos") - ); - } - async patchSections() { Patcher.after("SettingsManager", WebpackModules.getByDisplayName("FluxContainer(GuildSettings)").prototype, "render", (thisObject) => { thisObject._reactInternalFiber.return.return.return.return.return.return.memoizedProps.id = "guild-settings"; @@ -76,7 +69,7 @@ export default new class SettingsRenderer { if (panel.clickListener) panel.onClick = (event) => panel.clickListener(thisObject, event, returnValue); insert(panel); } - insert({section: "CUSTOM", element: () => this.attribution}); + insert({section: "CUSTOM", element: Attribution}); }); this.forceUpdate(); } diff --git a/src/ui/settings/attribution.jsx b/src/ui/settings/attribution.jsx new file mode 100644 index 00000000..5974f014 --- /dev/null +++ b/src/ui/settings/attribution.jsx @@ -0,0 +1,22 @@ +import {Config} from "data"; +import {React, Strings} from "modules"; + +export default class BBDAttribution extends React.Component { + + buildTitle(name, version, author) { + const title = Strings.Addons.title.split(/({{[A-Za-z]+}})/); + const nameIndex = title.findIndex(s => s == "{{name}}"); + if (nameIndex) title[nameIndex] = name; + const versionIndex = title.findIndex(s => s == "{{version}}"); + if (nameIndex) title[versionIndex] = version; + const authorIndex = title.findIndex(s => s == "{{author}}"); + if (nameIndex) title[authorIndex] = author; + return title.flat(); + } + + render() { + return
+ {this.buildTitle("BBD", Config.bbdVersion, Zerebos)} +
; + } +} \ No newline at end of file diff --git a/src/ui/settings/contentlist.jsx b/src/ui/settings/contentlist.jsx index 6f56f53d..0e353c8a 100644 --- a/src/ui/settings/contentlist.jsx +++ b/src/ui/settings/contentlist.jsx @@ -1,13 +1,4 @@ -// static getPluginsPanel(plugins, state, options = {}) { -// const {folder = "", onChange, reload} = options; -// const titleComponent = React.createElement(SettingsTitle, {text: "Plugins", button: {title: "Open Plugin Folder", onClick: () => { require("electron").shell.openItem(folder); }}}); -// const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin => -// React.createElement(PluginCard, {key: plugin.id, enabled: state[plugin.id], content: plugin, onChange, reload}) -// ); -// return [titleComponent, React.createElement("ul", {className: "bda-slist"}, ...cards)]; -// } - -import {React, Settings} from "modules"; +import {React, Settings, Strings} from "modules"; import SettingsTitle from "./title"; import PluginCard from "./plugincard"; @@ -24,7 +15,7 @@ export default class ContentList extends React.Component { render() { const {title, folder, contentList, contentState, onChange, reload} = this.props; const showReloadIcon = !Settings.get("settings", "addons", "autoReload"); - const button = folder ? {title: `Open ${title} Folder`, onClick: () => {require("electron").shell.openItem(folder);}} : null; + const button = folder ? {title: Strings.Addons.openFolder.format({type: title}), onClick: () => {require("electron").shell.openItem(folder);}} : null; return [ } />,
    diff --git a/src/ui/settings/plugincard.js b/src/ui/settings/plugincard.js index 6909fd80..98081b61 100644 --- a/src/ui/settings/plugincard.js +++ b/src/ui/settings/plugincard.js @@ -1,5 +1,5 @@ // import {SettingsCookie, PluginCookie, Plugins} from "data"; -import {React, Logger, Settings} from "modules"; +import {React, Logger, Settings, Strings} from "modules"; import CloseButton from "../icons/close"; import ReloadIcon from "../icons/reload"; @@ -58,6 +58,17 @@ export default class PluginCard extends React.Component { return typeof value == "string" ? value : value.toString(); } + buildTitle(name, version, author) { + const title = Strings.Addons.title.split(/({{[A-Za-z]+}})/); + const nameIndex = title.findIndex(s => s == "{{name}}"); + if (nameIndex) title[nameIndex] = React.createElement("span", {className: "bda-name"}, name); + const versionIndex = title.findIndex(s => s == "{{version}}"); + if (nameIndex) title[versionIndex] = React.createElement("span", {className: "bda-version"}, version); + const authorIndex = title.findIndex(s => s == "{{author}}"); + if (nameIndex) title[authorIndex] = React.createElement("span", {className: "bda-author"}, author); + return title.flat(); + } + render() { const {content} = this.props; const name = this.getString(content.name); @@ -88,11 +99,7 @@ export default class PluginCard extends React.Component { return React.createElement("li", {"data-name": name, "data-version": version, "className": "settings-closed ui-switch-item"}, React.createElement("div", {className: "bda-header"}, React.createElement("span", {className: "bda-header-title"}, - React.createElement("span", {className: "bda-name"}, name), - " v", - React.createElement("span", {className: "bda-version"}, version), - " by ", - React.createElement("span", {className: "bda-author"}, author) + this.buildTitle(name, version, author) ), React.createElement("div", {className: "bda-controls"}, !Settings.get("settings", "addons", "autoReload") && React.createElement(ReloadIcon, {className: "bd-reload bd-reload-card", onClick: this.reload}), @@ -107,11 +114,11 @@ export default class PluginCard extends React.Component { ), (website || source || this.hasSettings) && React.createElement("div", {className: "bda-footer"}, React.createElement("span", {className: "bda-links"}, - website && React.createElement("a", {className: "bda-link bda-link-website", href: website, target: "_blank"}, "Website"), + website && React.createElement("a", {className: "bda-link bda-link-website", href: website, target: "_blank"}, Strings.Addons.website), website && source && " | ", - source && React.createElement("a", {className: "bda-link bda-link-source", href: source, target: "_blank"}, "Source") + source && React.createElement("a", {className: "bda-link bda-link-source", href: source, target: "_blank"}, Strings.Addons.source) ), - this.hasSettings && React.createElement("button", {onClick: this.showSettings, className: "bd-button bd-button-plugin-settings", disabled: !this.state.checked}, "Settings") + this.hasSettings && React.createElement("button", {onClick: this.showSettings, className: "bd-button bd-button-plugin-settings", disabled: !this.state.checked}, Strings.Addons.pluginSettings) ) ); } diff --git a/src/ui/settings/themecard.js b/src/ui/settings/themecard.js index 83196a18..743d30e7 100644 --- a/src/ui/settings/themecard.js +++ b/src/ui/settings/themecard.js @@ -1,4 +1,4 @@ -import {React, Settings} from "modules"; +import {React, Settings, Strings} from "modules"; import ReloadIcon from "../icons/reload"; // import Toasts from "../toasts"; @@ -20,6 +20,17 @@ export default class ThemeCard extends React.Component { this.forceUpdate(); } + buildTitle(name, version, author) { + const title = Strings.Addons.title.split(/({{[A-Za-z]+}})/); + const nameIndex = title.findIndex(s => s == "{{name}}"); + if (nameIndex) title[nameIndex] = React.createElement("span", {className: "bda-name"}, name); + const versionIndex = title.findIndex(s => s == "{{version}}"); + if (nameIndex) title[versionIndex] = React.createElement("span", {className: "bda-version"}, version); + const authorIndex = title.findIndex(s => s == "{{author}}"); + if (nameIndex) title[authorIndex] = React.createElement("span", {className: "bda-author"}, author); + return title.flat(); + } + render() { const {content} = this.props; const name = content.name; @@ -32,11 +43,7 @@ export default class ThemeCard extends React.Component { return React.createElement("li", {"data-name": name, "data-version": version, "className": "settings-closed ui-switch-item"}, React.createElement("div", {className: "bda-header"}, React.createElement("span", {className: "bda-header-title"}, - React.createElement("span", {className: "bda-name"}, name), - " v", - React.createElement("span", {className: "bda-version"}, version), - " by ", - React.createElement("span", {className: "bda-author"}, author) + this.buildTitle(name, version, author) ), React.createElement("div", {className: "bda-controls"}, !Settings.get("settings", "addons", "autoReload") && React.createElement(ReloadIcon, {className: "bd-reload bd-reload-card", onClick: this.reload}),