diff --git a/tools/cdata.js b/tools/cdata.js index 7266e861..adb558bb 100644 --- a/tools/cdata.js +++ b/tools/cdata.js @@ -113,7 +113,7 @@ function writeHtmlGzipped(sourceFile, resultFile, page) { console.info("Reading " + sourceFile); new inliner(sourceFile, function (error, html) { console.info("Inlined " + html.length + " characters"); - html = filter(html.replace("",""), "html-minify-ui"); + html = filter(html/*.replace("","")*/, "html-minify-ui"); console.info("Minified to " + html.length + " characters"); if (error) { @@ -164,7 +164,8 @@ const char ${s.name}[] PROGMEM = R"${s.prepend || ""}${filter(str, s.filter)}${ return s.mangle ? s.mangle(chunk) : chunk; } else if (s.method == "gzip") { const buf = fs.readFileSync(srcDir + "/" + s.file); - const str = buf.toString('utf-8'); + var str = buf.toString('utf-8'); + if (s.mangle) str = s.mangle(str); const zip = zlib.gzipSync(filter(str, s.filter), { level: zlib.constants.Z_BEST_COMPRESSION }); const result = hexdump(zip.toString('hex'), true); const chunk = ` @@ -253,8 +254,11 @@ writeChunks( name: "PAGE_settingsCss", prepend: "=====()=====", - method: "plaintext", + method: "gzip", filter: "css-minify", + mangle: (str) => + str + .replace("%%","%") }, { file: "settings.htm", @@ -263,140 +267,134 @@ writeChunks( append: ")=====", method: "plaintext", filter: "html-minify", - mangle: (str) => - str - .replace("%", "%%") - .replace(/User Interface\<\/button\>\<\/form\>/gms, "User Interface\<\/button\>\<\/form\>%DMXMENU%"), }, { file: "settings_wifi.htm", name: "PAGE_settings_wifi", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") .replace( /function GetV().*\<\/script\>/gms, - "function GetV() {var d=document;\n" - ), + "" + ) }, { file: "settings_leds.htm", name: "PAGE_settings_leds", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%SCSS%") .replace( /function GetV().*\<\/script\>/gms, - "function GetV() {var d=document;\n" - ), + "" + ) }, { file: "settings_dmx.htm", name: "PAGE_settings_dmx", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", - mangle: (str) => { - const nocss = str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + mangle: (str) => + str + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") .replace( /function GetV().*\<\/script\>/gms, - "function GetV() {var d=document;\n" - ); - return ` -#ifdef WLED_ENABLE_DMX -${nocss} -#else -const char PAGE_settings_dmx[] PROGMEM = R"=====()====="; -#endif -`; - }, + "" + ) }, { file: "settings_ui.htm", name: "PAGE_settings_ui", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") .replace( /function GetV().*\<\/script\>/gms, - "function GetV() {var d=document;\n" - ), + "" + ) }, { file: "settings_sync.htm", name: "PAGE_settings_sync", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") - .replace(/function GetV().*\<\/script\>/gms, "function GetV() {\n"), + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + .replace( + /function GetV().*\<\/script\>/gms, + "" + ) }, { file: "settings_time.htm", name: "PAGE_settings_time", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") - .replace(/function GetV().*\<\/script\>/gms, "function GetV() {\n"), + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + .replace( + /function GetV().*\<\/script\>/gms, + "" + ) }, { file: "settings_sec.htm", name: "PAGE_settings_sec", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") .replace( /function GetV().*\<\/script\>/gms, - "function GetV() {var d=document;\n" - ), + "" + ) }, { file: "settings_um.htm", name: "PAGE_settings_um", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str - .replace(/\/gms, "") - .replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") + //.replace(/\/gms, "") + //.replace(/\.*\<\/style\>/gms, "%CSS%%SCSS%") .replace( /function GetV().*\<\/script\>/gms, - "function GetV() {var d=document;\n" - ), + "" + ) } ], "wled00/html_settings.h" @@ -410,7 +408,7 @@ writeChunks( name: "PAGE_usermod", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", mangle: (str) => str.replace(/fetch\("http\:\/\/.*\/win/gms, 'fetch("/win'), @@ -444,7 +442,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; name: "PAGE_update", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", }, { @@ -452,7 +450,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; name: "PAGE_welcome", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", }, { @@ -460,7 +458,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; name: "PAGE_liveview", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", }, { @@ -468,7 +466,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; name: "PAGE_liveviewws", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", }, { @@ -476,7 +474,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; name: "PAGE_404", prepend: "=====(", append: ")=====", - method: "plaintext", + method: "gzip", filter: "html-minify", }, { diff --git a/wled00/data/index.htm b/wled00/data/index.htm index 0cae084a..7da53e36 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -7,12 +7,39 @@ WLED - + - - - +
Loading WLED UI...
diff --git a/wled00/data/index.js b/wled00/data/index.js index d4c82a64..54d6ac05 100644 --- a/wled00/data/index.js +++ b/wled00/data/index.js @@ -18,14 +18,13 @@ var segCount = 0, ledCount = 0, lowestUnused = 0, maxSeg = 0, lSeg = 0; var pcMode = false, pcModeA = false, lastw = 0; var tr = 7; var d = document; -const ranges = RangeTouch.setup('input[type="range"]', {}); var palettesData; var fxdata = []; var pJson = {}, eJson = {}, lJson = {}; var pN = "", pI = 0, pNum = 0; var pmt = 1, pmtLS = 0, pmtLast = 0; var lastinfo = {}; -var ws; +var ws, cpick, ranges; var cfg = { theme:{base:"dark", bg:{url:""}, alpha:{bg:0.6,tab:0.8}, color:{bg:""}}, comp :{colors:{picker: true, rgb: false, quick: true, hex: false}, @@ -39,17 +38,6 @@ var hol = [ [2024,2,31,2,"https://aircoookie.github.io/easter.png"] ]; -var cpick = new iro.ColorPicker("#picker", { - width: 260, - wheelLightness: false, - wheelAngle: 270, - wheelDirection: "clockwise", - layout: [{ - component: iro.ui.Wheel, - options: {} - }] -}); - function handleVisibilityChange() {if (!d.hidden && new Date () - lastUpdate > 3000) requestJson();} function sCol(na, col) {d.documentElement.style.setProperty(na, col);} function gId(c) {return d.getElementById(c);} @@ -232,10 +220,6 @@ function onLoad() for (var i = 0; i < cd.length; i++) cd[i].style.backgroundColor = "rgb(0, 0, 0)"; selectSlot(0); updateTablinks(0); - cpick.on("input:end", function() { - setColor(1); - }); - cpick.on("color:change", updatePSliders); pmtLS = localStorage.getItem('wledPmt'); // Load initial data @@ -244,7 +228,6 @@ function onLoad() loadFX(()=>{ loadFXData(); loadPresets(()=>{ - //if (isObj(lastinfo) && isEmpty(lastinfo)) loadInfo(requestJson); // if not filled by WS requestJson(); }); }); @@ -602,41 +585,7 @@ function parseInfo() { pmt = li.fs.pmt; cct = li.leds.cct; } -/* -function loadInfo(callback=null) -{ - var url = (loc?`http://${locip}`:'') + '/json/info'; - var useWs = (ws && ws.readyState === WebSocket.OPEN); - if (useWs) { - ws.send('{"v":true}'); - return; - } - fetch(url, { - method: 'get' - }) - .then(res => { - if (!res.ok) showToast('Could not load Info!', true); - return res.json(); - }) - .then(json => { - clearErrorToast(); - lastinfo = json; - parseInfo(); - showNodes(); - if (isInfo) populateInfo(json); - reqsLegal = true; - if (!ws && lastinfo.ws > -1) setTimeout(makeWS,500); - }) - .catch(function (error) { - showToast(error, true); - console.log(error); - }) - .finally(()=>{ - if (callback) callback(); - updateUI(); - }); -} -*/ + function populateInfo(i) { var cn=""; diff --git a/wled00/data/settings.htm b/wled00/data/settings.htm index ef52c38b..3b95dd48 100644 --- a/wled00/data/settings.htm +++ b/wled00/data/settings.htm @@ -21,7 +21,7 @@ border-radius: var(--h); font-size: 6vmin; height: var(--h); - width: calc(100% - 40px); + width: calc(100%% - 40px); margin-top: 2vh; } @@ -31,6 +31,7 @@
+%DMXMENU%
diff --git a/wled00/data/settings_dmx.htm b/wled00/data/settings_dmx.htm index 645baa87..42e9ecd1 100644 --- a/wled00/data/settings_dmx.htm +++ b/wled00/data/settings_dmx.htm @@ -31,7 +31,7 @@ function mMap(){ function S(){GCH(15);GetV();mMap();}function H(){window.open("https://github.com/Aircoookie/WLED/wiki/DMX");}function B(){window.history.back();} function GetV(){} - +
diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 860ecfba..a3718fee 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -71,7 +71,6 @@ if (bquot > 100) {var msg = "Too many LEDs for me to handle!"; if (maxM < 10000) msg += "\n\rConsider using an ESP32."; alert(msg);} if (d.Sf.checkValidity()) d.Sf.submit(); //https://stackoverflow.com/q/37323914 } - function S(){GetV();checkSi();setABL();} function enABL() { var en = gId('able').checked; @@ -451,6 +450,7 @@ ${i+1}: } } } + function S(){GetV();checkSi();setABL();} function GetV() { //values injected by server while sending HTML diff --git a/wled00/data/settings_sync.htm b/wled00/data/settings_sync.htm index 256fa1a5..c62af6db 100644 --- a/wled00/data/settings_sync.htm +++ b/wled00/data/settings_sync.htm @@ -35,7 +35,7 @@ function SetVal(){switch(parseInt(d.Sf.EP.value)){case 5568: d.Sf.DI.value = 556 function S(){GetV();SetVal();} function GetV(){var d=document;} - + diff --git a/wled00/data/settings_time.htm b/wled00/data/settings_time.htm index ca692371..7bd13005 100644 --- a/wled00/data/settings_time.htm +++ b/wled00/data/settings_time.htm @@ -97,7 +97,7 @@ //values injected by server while sending HTML } - + diff --git a/wled00/data/settings_um.htm b/wled00/data/settings_um.htm index d4bf8f6c..8736f44f 100644 --- a/wled00/data/settings_um.htm +++ b/wled00/data/settings_um.htm @@ -133,7 +133,7 @@ } function GetV() {} - + diff --git a/wled00/data/settings_wifi.htm b/wled00/data/settings_wifi.htm index b0ab93e0..3b27f8f8 100644 --- a/wled00/data/settings_wifi.htm +++ b/wled00/data/settings_wifi.htm @@ -18,7 +18,7 @@ //values injected by server while sending HTML } - + diff --git a/wled00/data/style.css b/wled00/data/style.css index 32f9ef3f..9e31814c 100644 --- a/wled00/data/style.css +++ b/wled00/data/style.css @@ -3,7 +3,7 @@ body { text-align: center; background: #222; color: #fff; - line-height: 200%%; /* %% because of AsyncWebServer */ + line-height: 200%; /* %% because of AsyncWebServer */ margin: 0; } hr { @@ -109,9 +109,9 @@ td { position: fixed; text-align: center; z-index: 5; - transform: translateX(-50%%); /* %% because of AsyncWebServer */ - max-width: 90%%; /* %% because of AsyncWebServer */ - left: 50%%; /* %% because of AsyncWebServer */ + transform: translateX(-50%); /* %% because of AsyncWebServer */ + max-width: 90%; /* %% because of AsyncWebServer */ + left: 50%; /* %% because of AsyncWebServer */ } #toast.show { diff --git a/wled00/fcn_declare.h b/wled00/fcn_declare.h index ca63b4fa..894a5d38 100644 --- a/wled00/fcn_declare.h +++ b/wled00/fcn_declare.h @@ -324,6 +324,7 @@ void serveMessage(AsyncWebServerRequest* request, uint16_t code, const String& h String settingsProcessor(const String& var); String dmxProcessor(const String& var); void serveSettings(AsyncWebServerRequest* request, bool post = false); +void serveSettingsJS(AsyncWebServerRequest* request); //ws.cpp void handleWs(); diff --git a/wled00/html_other.h b/wled00/html_other.h index 2f1c06d7..18d889bc 100644 --- a/wled00/html_other.h +++ b/wled00/html_other.h @@ -6,7 +6,15 @@ */ // Autogenerated from wled00/data/usermod.htm, do not edit!! -const char PAGE_usermod[] PROGMEM = R"=====(No usermod custom web page set.)====="; +const uint16_t PAGE_usermod_length = 81; +const uint8_t PAGE_usermod[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb3, 0x51, 0x74, 0xf1, 0x77, 0x0e, + 0x89, 0x0c, 0x70, 0x55, 0xc8, 0x28, 0xc9, 0xcd, 0xb1, 0xb3, 0x81, 0x90, 0x49, 0xf9, 0x29, 0x95, + 0x76, 0x7e, 0xf9, 0x0a, 0xa5, 0xc5, 0xa9, 0x45, 0xb9, 0xf9, 0x29, 0x0a, 0xc9, 0xa5, 0xc5, 0x25, + 0xf9, 0xb9, 0x0a, 0xe5, 0xa9, 0x49, 0x0a, 0x05, 0x89, 0xe9, 0xa9, 0x0a, 0xc5, 0xa9, 0x25, 0x7a, + 0x36, 0xfa, 0x60, 0x55, 0x36, 0xfa, 0x60, 0x2d, 0x00, 0x1e, 0x93, 0x65, 0xc7, 0x48, 0x00, 0x00, + 0x00 +}; // Autogenerated from wled00/data/msg.htm, do not edit!! @@ -35,70 +43,308 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; #endif // Autogenerated from wled00/data/update.htm, do not edit!! -const char PAGE_update[] PROGMEM = R"=====( -WLED Update

WLED Software Update

-Installed version: 0.13.1-bl5
Download the latest binary: -


Updating...
-Please do not close or refresh the page :)
)====="; +const uint16_t PAGE_update_length = 734; +const uint8_t PAGE_update[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x85, 0x54, 0xef, 0x6b, 0xdc, 0x46, + 0x10, 0xfd, 0xae, 0xbf, 0x62, 0xb3, 0xa6, 0x60, 0x43, 0x4e, 0xb2, 0xef, 0x48, 0x29, 0x3a, 0x49, + 0xa5, 0xae, 0xfd, 0x21, 0x50, 0x88, 0x21, 0x49, 0x4b, 0x28, 0xa5, 0xac, 0xb4, 0x23, 0x69, 0xb8, + 0xd5, 0xae, 0xb2, 0x3b, 0xba, 0xf3, 0xf5, 0xf0, 0xff, 0x9e, 0xd1, 0xca, 0x76, 0x9c, 0x94, 0xd2, + 0x2f, 0x62, 0x7f, 0xcc, 0x7b, 0x33, 0xf3, 0xe6, 0xad, 0x8a, 0x57, 0x37, 0xef, 0x7e, 0xfd, 0xf0, + 0xe9, 0xee, 0x56, 0xf4, 0x34, 0x98, 0xaa, 0x78, 0xfc, 0x82, 0xd2, 0x55, 0x31, 0x00, 0x29, 0xd1, + 0x38, 0x4b, 0x60, 0xa9, 0x94, 0x07, 0xd4, 0xd4, 0x97, 0x1a, 0xf6, 0xd8, 0xc0, 0x2a, 0x6e, 0xa4, + 0xb0, 0x6a, 0x80, 0x52, 0xee, 0x11, 0x0e, 0xa3, 0xf3, 0x24, 0xab, 0xa4, 0x20, 0x24, 0x03, 0xd5, + 0x1f, 0xbf, 0xdd, 0xde, 0x88, 0x8f, 0xa3, 0x56, 0x04, 0x45, 0xb6, 0x1c, 0x15, 0xa1, 0xf1, 0x38, + 0x52, 0x95, 0xb4, 0x93, 0x6d, 0x08, 0x9d, 0x15, 0xd7, 0xe7, 0x17, 0xa7, 0x03, 0x5a, 0xed, 0x0e, + 0x69, 0x8f, 0x81, 0x9c, 0x3f, 0xa6, 0xb5, 0x6a, 0x76, 0xe7, 0x17, 0x0f, 0xcf, 0x21, 0x1f, 0x39, + 0x44, 0xbb, 0x66, 0x1a, 0xb8, 0x82, 0xb4, 0x03, 0xba, 0x35, 0x30, 0x2f, 0xaf, 0x8f, 0x6f, 0xf5, + 0xb9, 0x9c, 0x5a, 0x79, 0x91, 0x06, 0x3a, 0x1a, 0x48, 0x35, 0x86, 0xd1, 0xa8, 0x63, 0x29, 0xad, + 0xb3, 0x20, 0x5f, 0xff, 0x27, 0x64, 0x08, 0xdd, 0xbf, 0x31, 0xb5, 0x71, 0xcd, 0x4e, 0x3e, 0x24, + 0x45, 0xf6, 0x58, 0x62, 0x11, 0x03, 0xaa, 0x24, 0xad, 0xe9, 0x34, 0x57, 0xd4, 0x79, 0x37, 0x59, + 0x9d, 0x9f, 0x6d, 0x36, 0x9b, 0x6d, 0xe3, 0x8c, 0xf3, 0xf9, 0x59, 0xdb, 0xb6, 0xdb, 0x96, 0x95, + 0x59, 0xb5, 0x6a, 0x40, 0x73, 0xcc, 0x7f, 0x07, 0xaf, 0x95, 0x55, 0xaf, 0x83, 0xb2, 0x61, 0x15, + 0xc0, 0x63, 0xbb, 0xad, 0x9d, 0xd7, 0xe0, 0xf3, 0x74, 0xd3, 0xf4, 0x22, 0x38, 0x83, 0x5a, 0x44, + 0x82, 0xc7, 0xb4, 0x39, 0x5a, 0x83, 0x16, 0x56, 0x31, 0xf9, 0x42, 0x15, 0xf0, 0x1f, 0xc8, 0xd7, + 0x97, 0xe3, 0xfd, 0x76, 0x50, 0xbe, 0x43, 0x9b, 0xff, 0xf4, 0xbc, 0x5c, 0x91, 0x1b, 0xf3, 0xab, + 0xf5, 0x78, 0xff, 0x80, 0x76, 0x9c, 0xe8, 0x4f, 0x3a, 0x8e, 0x50, 0xb6, 0x68, 0xe0, 0xaf, 0xd3, + 0x57, 0xe8, 0xd5, 0x8f, 0x7c, 0x5f, 0x3b, 0x7d, 0x3c, 0xfd, 0x4f, 0x65, 0x04, 0xf7, 0xb4, 0x52, + 0x06, 0x3b, 0x9b, 0x37, 0x2c, 0x0d, 0xf8, 0xed, 0xcb, 0x2e, 0xd7, 0xeb, 0xf5, 0xcb, 0x2e, 0x63, + 0x95, 0x3d, 0x60, 0xd7, 0x13, 0x17, 0x77, 0xf9, 0xc3, 0xc3, 0x19, 0x8b, 0x78, 0x7a, 0xea, 0x62, + 0xd6, 0x3b, 0x2a, 0x17, 0x15, 0x2b, 0xb2, 0xc5, 0x38, 0x73, 0x11, 0x6c, 0xa2, 0xf5, 0xe2, 0x83, + 0xf7, 0xae, 0xa5, 0x83, 0xf2, 0xf0, 0x6c, 0x08, 0xbe, 0x28, 0x5a, 0xe7, 0x07, 0xc1, 0x06, 0xeb, + 0x9d, 0x2e, 0xe5, 0xdd, 0xbb, 0xf7, 0x1f, 0xa4, 0x48, 0x54, 0x1c, 0x7a, 0x29, 0xb3, 0x29, 0x06, + 0x4a, 0x81, 0x7c, 0xc7, 0x53, 0x16, 0xc0, 0x76, 0x98, 0x3b, 0x96, 0xc3, 0x64, 0x08, 0x47, 0xe5, + 0x29, 0x9b, 0xf1, 0x2b, 0x8e, 0x52, 0x52, 0x38, 0x1b, 0xa6, 0x7a, 0x40, 0xb6, 0x28, 0xdb, 0x85, + 0x3d, 0xf8, 0xd6, 0x06, 0x52, 0xc6, 0x80, 0x16, 0x7b, 0xf0, 0x81, 0x19, 0x73, 0x71, 0x99, 0x5e, + 0x6d, 0xd2, 0x2b, 0x16, 0xfb, 0x4d, 0x51, 0xfb, 0xea, 0xc6, 0x1d, 0xac, 0x71, 0x4a, 0x0b, 0xea, + 0x41, 0x18, 0xce, 0x14, 0x48, 0xd4, 0x68, 0x95, 0x3f, 0xe6, 0xa2, 0x50, 0x22, 0xe9, 0x3d, 0xb4, + 0xa5, 0xec, 0x89, 0xc6, 0x90, 0x67, 0x59, 0x87, 0xd4, 0x4f, 0x75, 0xda, 0xb8, 0x21, 0xfb, 0x05, + 0x7d, 0xe3, 0x9c, 0xdb, 0x21, 0x64, 0x73, 0x67, 0x99, 0x07, 0x03, 0x2a, 0x40, 0x90, 0x82, 0x78, + 0x4c, 0xc0, 0x15, 0xfc, 0x5d, 0x1b, 0x65, 0x77, 0xb2, 0x2a, 0x70, 0xe8, 0x44, 0x12, 0x7c, 0xf3, + 0x95, 0x87, 0x4f, 0xd2, 0xd0, 0x23, 0x18, 0x1d, 0x52, 0x74, 0x8f, 0xb4, 0x4f, 0x14, 0xdf, 0x53, + 0xa7, 0x61, 0xdf, 0xfd, 0x1c, 0x45, 0x2d, 0x5b, 0xae, 0x70, 0x15, 0x3e, 0x4f, 0xac, 0xe0, 0xfc, + 0xc0, 0x32, 0x55, 0xcd, 0x3d, 0x14, 0xd1, 0x08, 0x62, 0x91, 0x65, 0x76, 0x82, 0x14, 0x8d, 0x51, + 0x21, 0xb0, 0x9d, 0xe9, 0xe9, 0x5d, 0x3e, 0xc9, 0xe8, 0xe1, 0xf3, 0x84, 0x1e, 0xf4, 0x4b, 0x60, + 0xb2, 0x20, 0x17, 0xe5, 0xbe, 0xc1, 0xee, 0x95, 0x99, 0xf8, 0x66, 0x19, 0xd6, 0x2b, 0xb9, 0x80, + 0xea, 0x89, 0x88, 0xdf, 0xe3, 0x02, 0x5a, 0x36, 0xdf, 0x80, 0x12, 0x67, 0x1b, 0x83, 0xcd, 0xae, + 0x94, 0xd7, 0xf3, 0x0c, 0xae, 0xd9, 0x4f, 0x45, 0xb6, 0xc4, 0xb1, 0x2b, 0xe6, 0x61, 0x55, 0x85, + 0xc6, 0x7d, 0x9c, 0xe8, 0xfc, 0x08, 0x99, 0xb1, 0x8a, 0x19, 0xd0, 0x76, 0x69, 0x9a, 0x72, 0x6c, + 0xcc, 0x93, 0xdc, 0x45, 0x35, 0x84, 0x76, 0xc2, 0x3a, 0xe2, 0x04, 0x8e, 0x37, 0xce, 0x73, 0x07, + 0xad, 0x87, 0xd0, 0xc7, 0x81, 0x8d, 0xaa, 0x03, 0x91, 0x5f, 0x14, 0x19, 0xf3, 0x31, 0xf7, 0xe2, + 0xb5, 0x2c, 0xfe, 0xb7, 0xbe, 0x00, 0xc6, 0x3c, 0x8c, 0x02, 0xcd, 0x04, 0x00, 0x00 +}; // Autogenerated from wled00/data/welcome.htm, do not edit!! -const char PAGE_welcome[] PROGMEM = R"=====(Welcome! -

Welcome to WLED!

-Thank you for installing my application!

Next steps:

-Connect the module to your local WiFi here!

-Just trying this out in AP mode?

-)====="; +const uint16_t PAGE_welcome_length = 1528; +const uint8_t PAGE_welcome[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x56, 0x5b, 0x93, 0xaa, 0x3a, + 0x16, 0x7e, 0xef, 0x5f, 0xc1, 0x76, 0xea, 0xd4, 0x79, 0x70, 0x77, 0x73, 0x13, 0x51, 0xdb, 0xee, + 0x19, 0xc5, 0x4b, 0x7b, 0x03, 0x6f, 0x78, 0x7b, 0x0b, 0x10, 0x20, 0x08, 0x04, 0x93, 0x80, 0x97, + 0xae, 0xfe, 0xef, 0x13, 0x74, 0xf7, 0xd4, 0x3e, 0x75, 0x1e, 0xa6, 0x4e, 0x2c, 0x21, 0xf9, 0x92, + 0xb5, 0xd6, 0xb7, 0x92, 0xb8, 0x3e, 0xdb, 0x3f, 0x7a, 0x96, 0xb1, 0xde, 0xcf, 0xfb, 0x42, 0xc8, + 0x92, 0xf8, 0xbd, 0xfd, 0xeb, 0x09, 0x81, 0xf7, 0xde, 0x4e, 0x20, 0x03, 0x82, 0x1b, 0x02, 0x42, + 0x21, 0x7b, 0xab, 0xe4, 0xcc, 0x7f, 0x6e, 0x54, 0x7e, 0xa1, 0x4f, 0x2e, 0x4e, 0x19, 0x4c, 0x39, + 0x7c, 0x46, 0x1e, 0x0b, 0xdf, 0x3c, 0x58, 0x20, 0x17, 0x3e, 0xdf, 0x07, 0x15, 0x21, 0x05, 0x09, + 0x7c, 0xab, 0x14, 0x08, 0x9e, 0x33, 0x4c, 0xd8, 0xb7, 0xcd, 0x03, 0x65, 0x21, 0x4c, 0xe0, 0xb3, + 0x8b, 0x63, 0x4c, 0x2a, 0xbf, 0xb9, 0xf9, 0x97, 0x72, 0x6f, 0x7c, 0x2d, 0x43, 0x2c, 0x86, 0xef, + 0x5b, 0x18, 0xbb, 0x38, 0x81, 0x3f, 0xda, 0xe2, 0x63, 0xdc, 0xa6, 0xec, 0xca, 0x5f, 0x4f, 0x0e, + 0xf6, 0xae, 0x9f, 0x3e, 0xb7, 0x7a, 0xf6, 0x41, 0x82, 0xe2, 0x6b, 0x6b, 0x03, 0x89, 0x07, 0x52, + 0xf0, 0xf3, 0x03, 0xc6, 0x05, 0x64, 0xc8, 0x05, 0x3f, 0x29, 0x48, 0xe9, 0x33, 0x85, 0x04, 0xf9, + 0xaf, 0x0c, 0x5e, 0xd8, 0x33, 0x88, 0x51, 0x90, 0xb6, 0x5c, 0x1e, 0x06, 0x92, 0x57, 0x07, 0xb8, + 0xc7, 0x80, 0xe0, 0x3c, 0xf5, 0x1e, 0x1c, 0x5a, 0x65, 0xe0, 0xd7, 0x04, 0x90, 0x00, 0xa5, 0x2d, + 0xe9, 0xf5, 0x17, 0xe6, 0xfb, 0xfe, 0x97, 0x93, 0x33, 0x86, 0xd3, 0x4f, 0x9c, 0xb3, 0x18, 0xa5, + 0xb0, 0x9c, 0xcb, 0x09, 0xe5, 0x93, 0x19, 0x46, 0x77, 0x4f, 0x19, 0xf0, 0x3c, 0x94, 0x06, 0xad, + 0x46, 0x76, 0xf9, 0xb6, 0x97, 0x25, 0xde, 0xbf, 0xef, 0x41, 0x4b, 0x51, 0xcb, 0xfe, 0x3d, 0x3e, + 0x23, 0x9c, 0x90, 0x8f, 0x49, 0xd2, 0xca, 0xb3, 0x0c, 0x12, 0x17, 0x50, 0xf8, 0xfa, 0x7b, 0x06, + 0xe1, 0x37, 0xf3, 0x07, 0x4a, 0xd1, 0x0d, 0xb6, 0xe4, 0x26, 0xb7, 0xfe, 0x3b, 0x57, 0x55, 0x55, + 0x7f, 0xa3, 0xf8, 0xea, 0x60, 0xe2, 0x41, 0xd2, 0x92, 0x04, 0x8a, 0x63, 0xe4, 0x09, 0xbf, 0x61, + 0xcf, 0x04, 0x78, 0x28, 0xa7, 0x2d, 0x45, 0xcb, 0x2e, 0x5f, 0x28, 0x09, 0x3e, 0x1f, 0xac, 0x9a, + 0x9a, 0x74, 0x67, 0x7b, 0x79, 0x9c, 0x54, 0xab, 0xa1, 0xfc, 0xf1, 0x8a, 0x12, 0x10, 0xc0, 0x67, + 0x02, 0x53, 0x6e, 0x56, 0xe6, 0x93, 0xa1, 0x0b, 0x8c, 0x01, 0x83, 0xde, 0xdf, 0x66, 0x5c, 0x82, + 0x68, 0xf6, 0x0c, 0xbd, 0x00, 0xd2, 0xef, 0x8c, 0x6b, 0x45, 0x28, 0x48, 0xe5, 0xe7, 0x15, 0xa4, + 0x7c, 0x39, 0x43, 0x38, 0x6d, 0xf9, 0x48, 0x90, 0xe9, 0xd7, 0x7f, 0x8e, 0xf0, 0xea, 0x13, 0x7e, + 0xe4, 0x54, 0xf0, 0xd1, 0xa7, 0x4f, 0x70, 0xf2, 0x89, 0x33, 0xe0, 0x22, 0x76, 0x6d, 0x49, 0x5f, + 0x0c, 0xff, 0x6f, 0x20, 0x7f, 0x7d, 0xbd, 0x24, 0x00, 0xa5, 0x9f, 0x7f, 0x75, 0xf0, 0xa2, 0x51, + 0xe1, 0x45, 0xa7, 0x82, 0x83, 0x59, 0xf8, 0xf5, 0xd4, 0x16, 0x1f, 0xc7, 0xdf, 0x16, 0x1f, 0x37, + 0xb3, 0xbc, 0x05, 0xef, 0x6d, 0x9e, 0x97, 0x00, 0x62, 0x7e, 0x79, 0xf8, 0x45, 0xa2, 0xc4, 0x7d, + 0xab, 0x78, 0x80, 0x81, 0xd6, 0x9d, 0xb5, 0x98, 0xa5, 0x01, 0xdf, 0x3f, 0x0a, 0xeb, 0xb5, 0x9f, + 0x68, 0xd3, 0xb5, 0x96, 0x67, 0x69, 0x32, 0x0c, 0x70, 0x87, 0x37, 0x73, 0x65, 0x87, 0x7d, 0x3b, + 0xe0, 0xbd, 0xa1, 0x54, 0x8e, 0x7d, 0xa3, 0x33, 0xe3, 0xaf, 0x1e, 0xb8, 0x4d, 0xad, 0xbc, 0x04, + 0x3a, 0x3b, 0x73, 0xb5, 0x94, 0x46, 0x1d, 0x42, 0x6b, 0x6e, 0x7d, 0x51, 0x02, 0xcb, 0x74, 0x61, + 0xcb, 0xdd, 0x4e, 0xc7, 0xb8, 0x44, 0xe7, 0xa2, 0xb1, 0x5f, 0xd8, 0x1c, 0xeb, 0x4e, 0xed, 0xfe, + 0xc5, 0x5e, 0xde, 0xe7, 0xbb, 0x0d, 0x39, 0x30, 0x6c, 0xf1, 0x36, 0x39, 0x89, 0xa2, 0x98, 0x60, + 0x9d, 0x6e, 0x67, 0x66, 0xc3, 0xb1, 0xaa, 0x87, 0xd1, 0x9e, 0x1d, 0x40, 0x67, 0xde, 0x24, 0x9d, + 0x79, 0xf5, 0x63, 0x46, 0x0d, 0x34, 0xac, 0xae, 0x3b, 0x23, 0x2b, 0x9d, 0xad, 0xa4, 0xc9, 0xc9, + 0xb4, 0xf5, 0xc9, 0x3c, 0x9d, 0xda, 0x07, 0x8b, 0x9c, 0xea, 0x05, 0xb7, 0xac, 0x19, 0x9d, 0x60, + 0x18, 0x62, 0x30, 0xad, 0x8a, 0x45, 0xdd, 0x08, 0x70, 0xff, 0x32, 0x5b, 0xdf, 0x09, 0xc5, 0x49, + 0xcd, 0x6a, 0x94, 0x9d, 0x83, 0x37, 0x18, 0x5b, 0xb6, 0xf8, 0x7f, 0xda, 0xb9, 0xd3, 0x35, 0x3b, + 0x27, 0xb5, 0x34, 0x30, 0x76, 0xdd, 0xd1, 0x76, 0x57, 0xe6, 0xa7, 0xf7, 0xf8, 0xc3, 0x3a, 0x9f, + 0x3f, 0x3e, 0x9c, 0x7a, 0x78, 0x2c, 0xa7, 0x4c, 0x29, 0xee, 0x2f, 0x36, 0xcb, 0xd1, 0x4a, 0x57, + 0x37, 0xd1, 0x66, 0x6a, 0xcc, 0xba, 0x9d, 0xfe, 0x7e, 0x44, 0x1a, 0xc6, 0x7e, 0x72, 0x24, 0x5e, + 0xa4, 0xfa, 0xf2, 0x58, 0xd5, 0x6f, 0x60, 0x37, 0x30, 0xb2, 0xb5, 0x55, 0xcd, 0x10, 0xe8, 0x05, + 0xce, 0xfc, 0xc4, 0x2f, 0x66, 0x73, 0xb3, 0x90, 0x4e, 0x57, 0x52, 0x4c, 0xa2, 0xda, 0xa9, 0x9e, + 0x48, 0x07, 0x22, 0x87, 0xd5, 0x99, 0x7e, 0x19, 0xc8, 0xb7, 0x65, 0x92, 0x6e, 0x6f, 0xa7, 0x4d, + 0x53, 0x94, 0x3c, 0x25, 0x62, 0x6c, 0x88, 0x99, 0x25, 0xe7, 0x45, 0xd3, 0xb3, 0x2d, 0xe7, 0x0c, + 0x23, 0x0d, 0x9f, 0x32, 0xdd, 0xbf, 0x6d, 0x37, 0xf3, 0xb8, 0x91, 0xd6, 0x9b, 0x20, 0x23, 0x37, + 0x6c, 0xd9, 0xb6, 0xe3, 0x14, 0xde, 0xc8, 0xd9, 0xa8, 0xd6, 0xf4, 0x8c, 0xd8, 0xce, 0xad, 0x17, + 0xab, 0xa1, 0xec, 0xe9, 0x49, 0x63, 0xa4, 0xfa, 0x70, 0xd5, 0x37, 0xa5, 0x48, 0x31, 0xa0, 0xe9, + 0x58, 0xfb, 0xda, 0xec, 0x82, 0x82, 0xc8, 0x9a, 0x1a, 0x6e, 0x8d, 0x1e, 0xe8, 0x7a, 0xa3, 0xc4, + 0xb2, 0x6b, 0x5c, 0xaf, 0xb5, 0xf3, 0x68, 0x34, 0x9d, 0x4e, 0xa3, 0xce, 0x85, 0x5d, 0x8f, 0x31, + 0x3b, 0x29, 0xc4, 0x59, 0xdb, 0xd5, 0x13, 0x92, 0x64, 0x53, 0x23, 0x3b, 0xd3, 0x52, 0x62, 0x08, + 0x06, 0xd6, 0x12, 0xa3, 0x08, 0x28, 0xb1, 0x36, 0x9b, 0x69, 0x40, 0x52, 0x80, 0xdb, 0xdc, 0x03, + 0xb9, 0xbe, 0x3a, 0x6a, 0x2c, 0x00, 0x73, 0x62, 0x67, 0xd1, 0x21, 0x77, 0xa4, 0xee, 0xb4, 0xbe, + 0x3f, 0xad, 0x2e, 0x93, 0xb3, 0xf3, 0xa1, 0xeb, 0x3b, 0xdb, 0x4e, 0x56, 0xc7, 0xf1, 0x6e, 0x15, + 0x37, 0x16, 0x0c, 0xcc, 0xf2, 0xeb, 0x38, 0x3c, 0x69, 0x09, 0x98, 0x6a, 0xe9, 0x7a, 0xb2, 0xc9, + 0x0e, 0x86, 0xac, 0x6e, 0x12, 0x36, 0xcb, 0xd6, 0x83, 0xb5, 0x12, 0xd4, 0x8a, 0x71, 0xb4, 0xce, + 0x87, 0xfe, 0xec, 0x76, 0xdb, 0xf9, 0x0c, 0xd9, 0x87, 0x34, 0xf4, 0x58, 0xe0, 0xc8, 0x17, 0xec, + 0x17, 0xd7, 0x6c, 0x89, 0x53, 0x6d, 0x1d, 0x99, 0xe9, 0x65, 0x6f, 0x36, 0x6f, 0x63, 0x5c, 0x9f, + 0x68, 0x24, 0x5f, 0x8d, 0x6e, 0x0b, 0x36, 0xcc, 0x37, 0x87, 0x54, 0xba, 0x34, 0x65, 0x32, 0x29, + 0xbc, 0x8f, 0x6e, 0x91, 0xa8, 0xcd, 0xbe, 0xbe, 0xba, 0x1e, 0x6a, 0x57, 0xa9, 0x3e, 0xbc, 0x35, + 0xba, 0xbd, 0xee, 0x60, 0x72, 0xa3, 0xbb, 0x24, 0x74, 0xcf, 0x57, 0x9f, 0x0e, 0x0f, 0xcd, 0x4d, + 0xe6, 0x84, 0x18, 0x19, 0x28, 0x05, 0x97, 0xb9, 0x99, 0x0c, 0xb7, 0xc9, 0x76, 0x4b, 0x4c, 0x5b, + 0x89, 0xba, 0xd2, 0xa9, 0xfe, 0x51, 0x58, 0xa1, 0x29, 0x8f, 0x6d, 0x66, 0xa0, 0xcb, 0x82, 0x65, + 0x4a, 0xa0, 0xc9, 0x87, 0x8d, 0xbd, 0x1b, 0xcd, 0x57, 0xca, 0x72, 0xd6, 0xe9, 0x55, 0xab, 0x6b, + 0x25, 0xdd, 0x8b, 0x3d, 0xd2, 0x8b, 0xac, 0x59, 0xcf, 0xaa, 0x9d, 0x0d, 0x3d, 0x4a, 0xcc, 0x7d, + 0xa4, 0x7a, 0xba, 0x9a, 0x92, 0x5d, 0x1e, 0x34, 0xf6, 0xac, 0x99, 0x9b, 0xdd, 0xc6, 0xc5, 0xb4, + 0x65, 0x77, 0x62, 0xee, 0xb6, 0xb1, 0x3d, 0x30, 0x77, 0x46, 0xb4, 0x91, 0xb3, 0x43, 0x38, 0x5c, + 0xf7, 0x1b, 0x6a, 0xa2, 0x14, 0x5b, 0x7f, 0xef, 0x8b, 0xe6, 0x30, 0xaa, 0x75, 0x03, 0xf9, 0x96, + 0x6b, 0xe3, 0x9e, 0x2a, 0xce, 0xd2, 0x0f, 0xed, 0xb0, 0xf5, 0xa7, 0xd6, 0x91, 0x3a, 0x9c, 0xd2, + 0x30, 0x0a, 0x76, 0x33, 0x53, 0x13, 0x0d, 0x65, 0xb8, 0xdb, 0x0f, 0x07, 0x83, 0x6d, 0xd3, 0x4c, + 0x78, 0xfd, 0xae, 0xef, 0x72, 0x26, 0x0d, 0x93, 0xea, 0x98, 0x82, 0xab, 0x11, 0x35, 0x6e, 0x52, + 0x1a, 0x46, 0xc3, 0x62, 0x3f, 0xbe, 0x6d, 0xfc, 0x1a, 0x58, 0xdd, 0x38, 0x13, 0x4a, 0xaa, 0xb9, + 0xbe, 0x50, 0xc6, 0x23, 0x0f, 0xef, 0xd4, 0xbd, 0xb5, 0x88, 0x2c, 0x1a, 0x27, 0x74, 0x2b, 0x47, + 0x63, 0x55, 0x56, 0xa4, 0xb4, 0xdf, 0x0c, 0x7c, 0xac, 0x37, 0xc3, 0x35, 0x30, 0x3d, 0x97, 0x9e, + 0x36, 0xcb, 0xba, 0x2c, 0xc5, 0x85, 0x55, 0xd3, 0xb3, 0x38, 0x06, 0xb0, 0xb9, 0x84, 0x87, 0x86, + 0xa4, 0xdd, 0x26, 0x58, 0x01, 0x2a, 0x02, 0x7b, 0xcd, 0xd5, 0xb5, 0x6c, 0x9d, 0x6c, 0x8c, 0x4e, + 0xdd, 0x1b, 0x6b, 0x1f, 0xba, 0x29, 0x51, 0x22, 0x02, 0x3a, 0x3f, 0x77, 0x61, 0xe8, 0xe8, 0xc8, + 0xef, 0x87, 0x39, 0x5d, 0xde, 0x7f, 0x5a, 0xfd, 0x78, 0xb0, 0x3e, 0xae, 0xf2, 0x45, 0x62, 0x18, + 0x95, 0xf7, 0xa7, 0xb6, 0x87, 0x0a, 0xc1, 0x8d, 0x01, 0xa5, 0x6f, 0x95, 0xb2, 0x28, 0x71, 0x39, + 0x0a, 0xe5, 0x6f, 0x2d, 0x12, 0x18, 0x16, 0xb6, 0xd3, 0x7e, 0x8f, 0x6b, 0x12, 0x07, 0xdb, 0xa1, + 0xfa, 0xfe, 0xb4, 0x0e, 0x41, 0x7a, 0x14, 0xae, 0x38, 0x17, 0x78, 0x7d, 0x17, 0x50, 0x4a, 0x19, + 0x88, 0xb9, 0x5a, 0x04, 0x42, 0x72, 0x15, 0x40, 0x96, 0xc5, 0xbc, 0xa8, 0x97, 0x15, 0xad, 0xb4, + 0x50, 0x79, 0xd5, 0x7a, 0x37, 0xb9, 0x1e, 0x08, 0x94, 0xc1, 0x8c, 0xb6, 0xda, 0xa2, 0xc3, 0x11, + 0x72, 0xff, 0x3e, 0x19, 0x38, 0x4d, 0xa1, 0xcb, 0x04, 0x2e, 0x8e, 0x42, 0x82, 0xbd, 0x3c, 0xbe, + 0x07, 0xe3, 0x7e, 0x89, 0x10, 0x63, 0x17, 0xc4, 0xc2, 0x16, 0x0d, 0x90, 0x10, 0x42, 0xc2, 0x05, + 0xf1, 0x6e, 0x73, 0xd7, 0x26, 0xe1, 0x09, 0xa7, 0x2e, 0x8f, 0x71, 0x7c, 0xfb, 0xf3, 0x8c, 0x52, + 0x0f, 0x9f, 0x5f, 0xca, 0xc5, 0x65, 0xc0, 0x97, 0x90, 0x40, 0xff, 0xad, 0x22, 0x72, 0xe1, 0x66, + 0x9c, 0x0e, 0x15, 0xcf, 0xc8, 0x47, 0x95, 0x3f, 0xdf, 0xef, 0x6e, 0xbe, 0x41, 0xce, 0xe0, 0xee, + 0xe6, 0x41, 0x03, 0xbd, 0x3f, 0x8d, 0x73, 0xca, 0x29, 0x90, 0x6b, 0x99, 0x00, 0x0b, 0x11, 0x15, + 0xb8, 0xf6, 0xf1, 0xa4, 0x84, 0xce, 0xbc, 0x24, 0x05, 0xff, 0xdd, 0x16, 0xd1, 0xfb, 0x3f, 0x0b, + 0xcf, 0x55, 0x09, 0x12, 0xca, 0x03, 0xaf, 0xf1, 0x3d, 0xb7, 0x52, 0xee, 0x09, 0x8e, 0xe9, 0x8f, + 0xbf, 0xc6, 0x16, 0xf9, 0xb6, 0xf3, 0xcd, 0x17, 0x1f, 0x65, 0x5d, 0xbc, 0xff, 0x07, 0xf9, 0x2f, + 0xec, 0xfa, 0x82, 0xd2, 0x99, 0x08, 0x00, 0x00 +}; // Autogenerated from wled00/data/liveview.htm, do not edit!! -const char PAGE_liveview[] PROGMEM = R"=====( -WLED Live Preview
)====="; +const uint16_t PAGE_liveview_length = 547; +const uint8_t PAGE_liveview[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x53, 0x4d, 0x6f, 0xdb, 0x30, + 0x0c, 0xbd, 0xe7, 0x57, 0x78, 0x2a, 0x5a, 0x48, 0x88, 0x63, 0x3b, 0xc5, 0xba, 0x8f, 0xf8, 0xe3, + 0xb0, 0xb5, 0x87, 0x02, 0x05, 0xd6, 0x43, 0x81, 0x61, 0x18, 0x76, 0x50, 0x24, 0xc6, 0xd6, 0x2a, + 0x4b, 0x81, 0x4c, 0xb9, 0x08, 0xd2, 0xfc, 0xf7, 0xc9, 0x76, 0xd2, 0x62, 0xc0, 0x30, 0xa0, 0x3e, + 0xc8, 0x94, 0xf8, 0xf4, 0x48, 0x3e, 0x52, 0xc5, 0xbb, 0xeb, 0x6f, 0x5f, 0x1f, 0x7e, 0xdc, 0xdf, + 0x44, 0x0d, 0xb6, 0xba, 0x2a, 0x8e, 0x2b, 0x70, 0x59, 0x15, 0x2d, 0x20, 0x8f, 0x0c, 0x6f, 0xa1, + 0x24, 0xbd, 0x82, 0xa7, 0xad, 0x75, 0x48, 0xa2, 0x99, 0xb0, 0x06, 0xc1, 0x60, 0x49, 0x9e, 0x94, + 0xc4, 0xa6, 0x94, 0xd0, 0x2b, 0x01, 0x8b, 0x71, 0x13, 0x2b, 0xa3, 0x50, 0x71, 0xbd, 0xe8, 0x04, + 0xd7, 0x50, 0x2e, 0xe3, 0x36, 0x1c, 0xb4, 0xbe, 0x3d, 0xed, 0xc9, 0x91, 0x73, 0x26, 0x1a, 0xee, + 0x3a, 0x08, 0x1c, 0x1e, 0x37, 0x8b, 0x4f, 0xe4, 0xaf, 0x50, 0xd8, 0x40, 0x0b, 0x0b, 0x61, 0xb5, + 0x75, 0x24, 0x7a, 0x09, 0x76, 0x76, 0x39, 0x7e, 0x01, 0x8a, 0x0a, 0x35, 0x54, 0xb3, 0xef, 0x77, + 0x37, 0xd7, 0xd1, 0x9d, 0xea, 0x21, 0xba, 0x77, 0x30, 0xa4, 0x57, 0xa4, 0x93, 0xa7, 0xe8, 0x70, + 0x37, 0x00, 0xd6, 0x56, 0xee, 0xf6, 0x2d, 0x77, 0xb5, 0x32, 0xab, 0xec, 0x70, 0x26, 0xb8, 0xe9, + 0xf7, 0x6b, 0x2e, 0x1e, 0x6b, 0x67, 0xbd, 0x91, 0xab, 0xb3, 0x2c, 0xcb, 0xf2, 0x8d, 0xd2, 0x08, + 0x6e, 0xb5, 0x76, 0xaa, 0x6e, 0xd0, 0x40, 0xd7, 0xd1, 0xe5, 0xc7, 0xab, 0x73, 0x96, 0x8f, 0xd5, + 0xac, 0x96, 0x59, 0x76, 0x9e, 0x37, 0x30, 0xf8, 0x26, 0x7b, 0x6b, 0xbb, 0x50, 0x9f, 0x35, 0x2b, + 0xbe, 0xee, 0xac, 0xf6, 0x08, 0x87, 0x59, 0x91, 0x4e, 0xe1, 0x8a, 0x74, 0xd2, 0x6c, 0x88, 0x5a, + 0x15, 0x52, 0xf5, 0x91, 0x92, 0x25, 0x19, 0x82, 0x86, 0x94, 0x3b, 0xe1, 0xd4, 0x16, 0xab, 0x99, + 0xdf, 0x4a, 0x8e, 0x40, 0x59, 0xde, 0x73, 0x17, 0x61, 0x6b, 0x3d, 0x96, 0xc6, 0x6b, 0x9d, 0x6f, + 0xbc, 0x11, 0x03, 0x6f, 0x74, 0x02, 0xec, 0xd5, 0x86, 0x4a, 0x2b, 0x7c, 0x1b, 0x6a, 0x4f, 0x1a, + 0x25, 0x25, 0x18, 0xe6, 0x00, 0xbd, 0x33, 0x91, 0xd0, 0xc0, 0xdd, 0x83, 0x6a, 0x21, 0xdc, 0xa6, + 0x23, 0x07, 0x8b, 0x7b, 0xab, 0xe4, 0x64, 0x97, 0x41, 0xd5, 0x93, 0x73, 0x22, 0x8b, 0x2f, 0xaf, + 0x32, 0xc6, 0xf2, 0x0d, 0xa0, 0x68, 0x28, 0x49, 0x7f, 0x77, 0xd6, 0xa4, 0x3a, 0xc8, 0x46, 0x58, + 0x12, 0x94, 0x36, 0x14, 0xcb, 0x8a, 0x62, 0x62, 0x1f, 0x9f, 0x9f, 0xe9, 0xbf, 0xa8, 0xff, 0xc3, + 0x1a, 0x68, 0x63, 0x4c, 0x06, 0x42, 0xca, 0xd8, 0x2b, 0xdb, 0x7e, 0x28, 0x2e, 0xf4, 0x51, 0x2b, + 0x13, 0xe8, 0x16, 0xb5, 0xe3, 0x52, 0x85, 0x32, 0xe8, 0xe7, 0x4c, 0x42, 0x1d, 0x93, 0xd8, 0x97, + 0x98, 0x68, 0x90, 0x5d, 0x58, 0x4c, 0x8d, 0x4d, 0xbe, 0xb1, 0x8e, 0xaa, 0x32, 0xcb, 0x55, 0xe1, + 0x73, 0x35, 0x9f, 0xb3, 0xf1, 0xbe, 0x3d, 0x82, 0x7e, 0xaa, 0x5f, 0xb9, 0x3d, 0x22, 0xab, 0x0f, + 0x17, 0x17, 0xd4, 0x96, 0x36, 0xe9, 0xfc, 0xba, 0x43, 0xa7, 0x4c, 0x4d, 0x2f, 0x43, 0x0a, 0x30, + 0x0f, 0xd3, 0x41, 0xe6, 0x36, 0x0e, 0x04, 0x8b, 0x65, 0x80, 0x0c, 0x07, 0x31, 0x61, 0x87, 0xe1, + 0xcf, 0x48, 0xfc, 0xa2, 0x63, 0x0d, 0x78, 0xa3, 0x61, 0x30, 0xbf, 0xec, 0x6e, 0x25, 0x9d, 0x9a, + 0xc3, 0x92, 0xb1, 0x7f, 0xc9, 0xeb, 0x64, 0x94, 0x10, 0xbf, 0x45, 0x88, 0xf7, 0x19, 0x3b, 0xb0, + 0x44, 0xf0, 0x41, 0x5e, 0x7a, 0x6a, 0x24, 0x45, 0xb6, 0x7f, 0xb3, 0x9a, 0x07, 0xc6, 0xc6, 0x79, + 0x9a, 0x86, 0xa5, 0x48, 0xa7, 0x51, 0x4a, 0xc7, 0x17, 0xf9, 0x07, 0xe3, 0xed, 0x60, 0x85, 0xa7, + 0x03, 0x00, 0x00 +}; // Autogenerated from wled00/data/liveviewws.htm, do not edit!! -const char PAGE_liveviewws[] PROGMEM = R"=====( -WLED Live Preview
)====="; +const uint16_t PAGE_liveviewws_length = 683; +const uint8_t PAGE_liveviewws[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x54, 0xeb, 0x6f, 0xd3, 0x30, + 0x10, 0xff, 0xde, 0xbf, 0x22, 0x78, 0xa2, 0x8b, 0xd5, 0x34, 0x6d, 0x91, 0x78, 0xe5, 0x51, 0x04, + 0xac, 0x48, 0x4c, 0x13, 0x9b, 0x34, 0xd0, 0x84, 0x10, 0x1f, 0xdc, 0xf8, 0x9a, 0x58, 0x4b, 0xec, + 0x62, 0x5f, 0x1a, 0x55, 0x55, 0xfe, 0x77, 0xce, 0x4d, 0x37, 0x1e, 0x82, 0x7c, 0xc8, 0xc3, 0xbe, + 0xbb, 0xdf, 0xe3, 0xce, 0xc9, 0x9e, 0x5c, 0x5c, 0xbf, 0xff, 0xfc, 0xf5, 0x66, 0x15, 0x54, 0xd8, + 0xd4, 0xcb, 0xec, 0x74, 0x07, 0x21, 0x97, 0x59, 0x03, 0x28, 0x02, 0x2d, 0x1a, 0xc8, 0xd9, 0x4e, + 0x41, 0xb7, 0x35, 0x16, 0x59, 0x30, 0x2a, 0x8c, 0x46, 0xd0, 0x98, 0xb3, 0x4e, 0x49, 0xac, 0x72, + 0x09, 0x3b, 0x55, 0xc0, 0xf4, 0xf8, 0x11, 0x29, 0xad, 0x50, 0x89, 0x7a, 0xea, 0x0a, 0x51, 0x43, + 0xbe, 0x88, 0x1a, 0x5a, 0x68, 0xda, 0xe6, 0xe1, 0x9b, 0x9d, 0x6a, 0x8e, 0x8a, 0x4a, 0x58, 0x07, + 0x54, 0xa3, 0xc5, 0xcd, 0xf4, 0x15, 0xfb, 0x03, 0x0a, 0x2b, 0x68, 0x60, 0x5a, 0x98, 0xda, 0x58, + 0x16, 0x3c, 0x82, 0x9d, 0x3d, 0x3b, 0x5e, 0x14, 0x8a, 0x0a, 0x6b, 0x58, 0x8e, 0xee, 0xae, 0x56, + 0x17, 0xc1, 0x95, 0xda, 0x41, 0x70, 0x63, 0xc1, 0xd3, 0xcb, 0x66, 0xc3, 0x4e, 0xe6, 0x70, 0xef, + 0x03, 0xd6, 0x46, 0xee, 0x0f, 0x8d, 0xb0, 0xa5, 0xd2, 0xc9, 0xbc, 0x3f, 0x2b, 0x84, 0xde, 0x1d, + 0xd6, 0xa2, 0xb8, 0x2f, 0xad, 0x69, 0xb5, 0x4c, 0xce, 0xe6, 0xf3, 0x79, 0xba, 0x51, 0x35, 0x82, + 0x4d, 0xd6, 0x56, 0x95, 0x15, 0x6a, 0x70, 0x2e, 0x5c, 0xbc, 0x7c, 0xfe, 0x94, 0xa7, 0x47, 0x35, + 0xc9, 0x62, 0x3e, 0x7f, 0x9a, 0x56, 0xe0, 0xf7, 0x86, 0xf7, 0xad, 0x71, 0xa4, 0xcf, 0xe8, 0x44, + 0xac, 0x9d, 0xa9, 0x5b, 0x84, 0x7e, 0x94, 0xcd, 0x06, 0xb8, 0x6c, 0x36, 0x78, 0xe6, 0x51, 0x97, + 0x99, 0x54, 0xbb, 0x40, 0xc9, 0x9c, 0x79, 0x50, 0xa2, 0xec, 0x0a, 0xab, 0xb6, 0xb8, 0x1c, 0x6d, + 0x5a, 0x5d, 0xf8, 0xfc, 0xa0, 0xdd, 0x4a, 0x81, 0x70, 0x22, 0x1e, 0x02, 0x3f, 0xec, 0x84, 0x0d, + 0x74, 0xce, 0x6a, 0xa5, 0x41, 0xd8, 0x69, 0x69, 0x85, 0x54, 0x24, 0x3b, 0x7c, 0x3d, 0x97, 0x50, + 0x46, 0x2c, 0x32, 0x39, 0xc4, 0x35, 0xe8, 0x12, 0xab, 0x74, 0x63, 0x6c, 0xa8, 0xf2, 0x79, 0xaa, + 0x32, 0x93, 0xaa, 0xc9, 0x64, 0x48, 0xc5, 0x1c, 0xbe, 0xa9, 0xef, 0x29, 0x9e, 0x82, 0x96, 0x2f, + 0xc6, 0xe3, 0x10, 0x73, 0x8c, 0x5d, 0xbb, 0x76, 0x68, 0x95, 0x2e, 0xc3, 0x67, 0x9c, 0x47, 0x7a, + 0x42, 0x3e, 0xb2, 0x09, 0x46, 0x94, 0x3b, 0x5d, 0x50, 0x88, 0x5f, 0x88, 0x18, 0xef, 0xfd, 0x93, + 0xb3, 0x48, 0x9a, 0xa2, 0x6d, 0x08, 0x36, 0x2e, 0x01, 0x57, 0x35, 0xf8, 0xd7, 0x77, 0xfb, 0x8f, + 0x32, 0x1c, 0x64, 0xf0, 0xf8, 0xa8, 0x34, 0xfe, 0xe5, 0x61, 0xae, 0xfb, 0x47, 0x45, 0x94, 0xe2, + 0x9b, 0x71, 0xe9, 0x8c, 0xf6, 0x7a, 0xd0, 0xee, 0x4f, 0x9a, 0x2e, 0x6f, 0xaf, 0x3f, 0xc5, 0x5b, + 0xdf, 0xee, 0x10, 0x62, 0x52, 0x2d, 0x78, 0xaa, 0xc7, 0x63, 0x4d, 0x4c, 0xa5, 0x1b, 0x8f, 0x2d, + 0xfc, 0x68, 0xc1, 0xe1, 0x5b, 0x1a, 0x13, 0xe1, 0xeb, 0x7c, 0xb0, 0x34, 0x03, 0x61, 0xf8, 0x50, + 0x36, 0xe4, 0x87, 0x3f, 0xad, 0x1a, 0xf2, 0x78, 0xcf, 0x79, 0x5f, 0x08, 0x2c, 0x2a, 0x8f, 0x45, + 0x33, 0x42, 0xdd, 0x80, 0x18, 0xac, 0x25, 0x6f, 0x98, 0xa7, 0x31, 0x3d, 0xc5, 0x07, 0x9d, 0x0b, + 0x8e, 0xcb, 0x09, 0x8b, 0x80, 0xf7, 0xbd, 0xa7, 0xd4, 0xb9, 0x1c, 0xcd, 0x36, 0xee, 0x94, 0x96, + 0xa6, 0x8b, 0x3b, 0x97, 0x76, 0xc4, 0xa3, 0x73, 0xb1, 0xa5, 0xfe, 0xed, 0x6f, 0x91, 0xc0, 0xf2, + 0x3c, 0xbf, 0x83, 0xf5, 0xad, 0x29, 0xee, 0x01, 0xe3, 0xeb, 0x9b, 0xd5, 0xa7, 0x37, 0xe1, 0x03, + 0x86, 0xd2, 0x1b, 0x13, 0xb2, 0x2f, 0x0e, 0x02, 0xaa, 0x11, 0xdc, 0xdd, 0x06, 0xd4, 0x8e, 0x60, + 0x0b, 0x70, 0xcf, 0x78, 0x44, 0x35, 0x1c, 0x68, 0xb2, 0xeb, 0x70, 0x5e, 0xef, 0xce, 0x13, 0xb4, + 0x2d, 0xf4, 0x8c, 0xf3, 0xe4, 0xaf, 0xe4, 0x1b, 0x8a, 0xf6, 0xbc, 0xcc, 0x16, 0x34, 0x75, 0x86, + 0x12, 0x43, 0xa2, 0xa4, 0x89, 0xec, 0x23, 0x68, 0xc8, 0x3a, 0x97, 0xcc, 0x66, 0x6c, 0xf2, 0xd8, + 0x91, 0xda, 0x14, 0x47, 0x7f, 0xe2, 0xca, 0x38, 0x9c, 0xb0, 0x59, 0xe7, 0xa8, 0x72, 0x6c, 0xb4, + 0x2f, 0x92, 0xff, 0xe6, 0xd6, 0x3f, 0xa0, 0x88, 0xa4, 0x8f, 0x02, 0xf9, 0x5f, 0x8a, 0xfd, 0x71, + 0x43, 0x48, 0xb9, 0xda, 0x11, 0xd6, 0x95, 0x72, 0x74, 0xe4, 0x80, 0x9c, 0x6c, 0xe8, 0x40, 0x88, + 0x12, 0x58, 0xf4, 0x5b, 0x73, 0xb9, 0x9f, 0xf8, 0x61, 0x9c, 0xb3, 0xd9, 0x30, 0xec, 0xb3, 0xe3, + 0x3f, 0xe3, 0x27, 0xdc, 0x5a, 0x16, 0x55, 0x49, 0x04, 0x00, 0x00 +}; // Autogenerated from wled00/data/404.htm, do not edit!! -const char PAGE_404[] PROGMEM = R"=====(Not found -

404 Not Found

Akemi does not know where you are headed...

- -)====="; +const uint16_t PAGE_404_length = 868; +const uint8_t PAGE_404[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x65, 0x54, 0x5b, 0x73, 0xaa, 0x3a, + 0x14, 0x7e, 0xef, 0xaf, 0xe0, 0x78, 0xe6, 0xcc, 0x7e, 0x68, 0x2d, 0xa8, 0xd8, 0x2a, 0xa2, 0x33, + 0x01, 0x51, 0xec, 0xc5, 0x7a, 0xa3, 0xd6, 0xbe, 0x05, 0x12, 0x21, 0x15, 0x08, 0x4d, 0x82, 0x62, + 0x3b, 0xfd, 0xef, 0x3b, 0x40, 0xf7, 0x9c, 0xce, 0xec, 0x35, 0x03, 0x2b, 0xf9, 0x56, 0xd6, 0x7d, + 0x25, 0xe6, 0x3f, 0xe3, 0x27, 0x7b, 0xb3, 0x5b, 0x38, 0x4a, 0x24, 0x92, 0x78, 0x64, 0x7e, 0xff, + 0x31, 0x44, 0x23, 0x33, 0xc1, 0x02, 0x2a, 0x41, 0x04, 0x19, 0xc7, 0x62, 0xd8, 0xc8, 0xc5, 0xbe, + 0xd9, 0x6b, 0x7c, 0xa3, 0x17, 0x01, 0x4d, 0x05, 0x4e, 0x25, 0x7c, 0x22, 0x48, 0x44, 0x43, 0x84, + 0x8f, 0x24, 0xc0, 0xcd, 0x6a, 0xd3, 0x50, 0x52, 0x98, 0xe0, 0x61, 0xe3, 0x48, 0xf0, 0x29, 0xa3, + 0x4c, 0xfc, 0xd1, 0xa9, 0x51, 0x11, 0xe1, 0x04, 0x37, 0x03, 0x1a, 0x53, 0xd6, 0xf8, 0x61, 0xe6, + 0xdf, 0x76, 0x45, 0xf2, 0xac, 0x20, 0x22, 0xc6, 0xa3, 0x39, 0x15, 0xca, 0x9e, 0xe6, 0x29, 0x32, + 0xd5, 0x1a, 0x30, 0xb9, 0x38, 0x4b, 0x76, 0xe1, 0x53, 0x74, 0xfe, 0xdc, 0x4b, 0xb5, 0xe6, 0x1e, + 0x26, 0x24, 0x3e, 0x1b, 0xcf, 0x98, 0x21, 0x98, 0xc2, 0x2b, 0x17, 0xc7, 0x47, 0x2c, 0x48, 0x00, + 0xaf, 0x38, 0x4c, 0x79, 0x93, 0x63, 0x46, 0xf6, 0x03, 0x81, 0x0b, 0xd1, 0x84, 0x31, 0x09, 0x53, + 0x23, 0x90, 0x7e, 0x30, 0x1b, 0xf8, 0x30, 0x38, 0x84, 0xac, 0xb4, 0x5c, 0x07, 0x61, 0x94, 0x9e, + 0x07, 0x09, 0x64, 0x21, 0x49, 0x0d, 0x6d, 0xf0, 0x8d, 0xed, 0xf7, 0xfb, 0x2f, 0x92, 0x84, 0x9f, + 0x55, 0x42, 0x86, 0xae, 0x69, 0x59, 0x21, 0xcf, 0x14, 0x75, 0x82, 0x46, 0x57, 0xfb, 0x6f, 0x40, + 0x12, 0x18, 0xe2, 0x26, 0xc3, 0x29, 0x92, 0x8e, 0xd2, 0xd0, 0xc8, 0x48, 0x81, 0x63, 0x28, 0x30, + 0xfa, 0x4b, 0x12, 0x30, 0xc2, 0xb3, 0x26, 0x46, 0x21, 0xe6, 0x7f, 0xfc, 0xb4, 0xbb, 0x59, 0xa1, + 0x68, 0x4a, 0xb3, 0xa5, 0x95, 0xfc, 0xcb, 0xcf, 0x85, 0xa0, 0xe9, 0x27, 0xcd, 0x45, 0x4c, 0x52, + 0x5c, 0x46, 0x91, 0x33, 0x2e, 0xc3, 0xc8, 0x28, 0xa9, 0x62, 0xce, 0x20, 0x42, 0xa5, 0xa5, 0x5e, + 0x15, 0x45, 0x65, 0xa1, 0xd4, 0x1c, 0xd4, 0xd1, 0xb4, 0x3b, 0xe5, 0xba, 0xca, 0x54, 0x30, 0x99, + 0xfa, 0x9e, 0xb2, 0xc4, 0xc8, 0xb3, 0x0c, 0xb3, 0x00, 0x72, 0x3c, 0xf8, 0x59, 0xab, 0xe8, 0x4f, + 0x8d, 0x6a, 0x94, 0x93, 0x0f, 0x6c, 0xb4, 0xfa, 0x52, 0xfb, 0xef, 0xaa, 0x74, 0x3a, 0x9d, 0x1f, + 0xc5, 0x18, 0xf8, 0x94, 0xc9, 0x74, 0x0c, 0x4d, 0xe1, 0x34, 0x26, 0x48, 0xf9, 0x81, 0x35, 0x19, + 0x44, 0x24, 0xe7, 0x55, 0x4e, 0x5f, 0x17, 0xa6, 0x5a, 0xf7, 0xc9, 0x54, 0xeb, 0x19, 0x2a, 0xdb, + 0x35, 0x32, 0x65, 0x29, 0x15, 0x18, 0xcb, 0x36, 0xcb, 0x96, 0x73, 0x16, 0x0c, 0x1b, 0x08, 0x0a, + 0x68, 0x54, 0x85, 0x52, 0xb3, 0x34, 0x94, 0xee, 0x39, 0xbe, 0xd1, 0xaf, 0xc8, 0xb3, 0xf5, 0xb4, + 0x3a, 0x69, 0xf7, 0xd3, 0x90, 0x02, 0x49, 0xf3, 0xb5, 0x17, 0x39, 0x5e, 0x28, 0x57, 0x76, 0xb9, + 0x05, 0xa1, 0x0d, 0x1e, 0x25, 0xb3, 0x9c, 0x6c, 0xc6, 0xa6, 0x15, 0xf2, 0x32, 0x5f, 0xaf, 0xb4, + 0x19, 0x60, 0x5c, 0x0f, 0x6e, 0x96, 0x25, 0xb0, 0x4a, 0x97, 0x5e, 0xcb, 0x92, 0x0a, 0xc5, 0xdb, + 0xe9, 0xd8, 0xdb, 0x2d, 0xbd, 0x12, 0xf4, 0x3d, 0xa7, 0xf0, 0x56, 0x95, 0xdc, 0xea, 0xb5, 0x42, + 0xdb, 0x53, 0x3f, 0xee, 0xdf, 0xd5, 0x92, 0xfa, 0xfe, 0xb6, 0x45, 0x6d, 0x10, 0x4e, 0x23, 0x0a, + 0x4b, 0xf1, 0x74, 0xf1, 0xf0, 0xd2, 0xab, 0x2c, 0xdf, 0xa1, 0xc9, 0xdd, 0x93, 0xa7, 0xfe, 0x4f, + 0x60, 0x32, 0x5f, 0x60, 0x6b, 0x56, 0xc9, 0x02, 0x27, 0x7a, 0x0d, 0x4e, 0x00, 0x8c, 0x79, 0xb9, + 0xbd, 0x05, 0x60, 0xcb, 0xb6, 0x64, 0x79, 0x28, 0x03, 0x45, 0x6b, 0x6f, 0x65, 0x3d, 0x8f, 0xa3, + 0x45, 0x11, 0xf4, 0xfd, 0x31, 0xf5, 0x42, 0x07, 0xcc, 0x97, 0xd8, 0x5f, 0xa8, 0x13, 0x2f, 0x77, + 0x1f, 0xdf, 0xac, 0xe9, 0x4e, 0xb5, 0x2e, 0x3b, 0xce, 0x6e, 0x75, 0xbb, 0x72, 0xb5, 0x77, 0x5b, + 0x7d, 0xb5, 0x82, 0x1b, 0xf7, 0x64, 0xc7, 0x6f, 0xa1, 0xfb, 0x74, 0x59, 0xbc, 0xce, 0x9e, 0xd7, + 0xb3, 0x36, 0xdf, 0x85, 0x2e, 0x9c, 0xde, 0x3a, 0xd6, 0x36, 0xea, 0xbd, 0x6d, 0x69, 0xb1, 0x61, + 0xb6, 0x35, 0x41, 0xe3, 0xbb, 0x4b, 0x6b, 0xac, 0xc7, 0xfe, 0xcc, 0x2d, 0x40, 0xf0, 0xd1, 0x03, + 0x0b, 0xf0, 0xfc, 0xb0, 0xe1, 0xec, 0xd5, 0xd1, 0xf1, 0x72, 0xdc, 0x7d, 0xff, 0x10, 0x9d, 0x00, + 0x4c, 0x36, 0x3b, 0x7a, 0xb0, 0xf5, 0x9d, 0x3d, 0xef, 0x4f, 0xcf, 0x7e, 0x98, 0xeb, 0x67, 0xb0, + 0x14, 0xd6, 0xe4, 0x61, 0xf9, 0xe2, 0xe6, 0x2e, 0xb0, 0xc0, 0xed, 0xdd, 0x23, 0x7e, 0x72, 0x6c, + 0xd5, 0xd1, 0xb6, 0xdd, 0xfc, 0xdc, 0x0f, 0x8f, 0xfa, 0x91, 0x76, 0x97, 0xee, 0x7d, 0x9b, 0xdc, + 0x9e, 0xdf, 0xdb, 0x76, 0xcf, 0x03, 0xd6, 0xa3, 0xee, 0x26, 0x0f, 0x97, 0xf6, 0x7a, 0xf3, 0x62, + 0x6f, 0x26, 0xad, 0x31, 0xb3, 0x5f, 0x6e, 0x2e, 0xa7, 0x59, 0xff, 0xc3, 0xea, 0xa2, 0x2a, 0x5b, + 0xe0, 0xc4, 0x93, 0xcd, 0x61, 0x9d, 0x2f, 0x13, 0xdb, 0x6e, 0x8c, 0x2e, 0xcc, 0xa8, 0x35, 0xd2, + 0x35, 0x5d, 0x29, 0xef, 0xeb, 0xa4, 0xbe, 0xaf, 0x12, 0x31, 0xfd, 0x11, 0x38, 0xe0, 0x84, 0x28, + 0x88, 0x62, 0xae, 0xa4, 0x52, 0x76, 0x48, 0xe9, 0x49, 0x39, 0x45, 0x98, 0x61, 0xe5, 0x4c, 0x73, + 0x05, 0x4a, 0x5e, 0x0e, 0x08, 0x46, 0xd7, 0xd7, 0xd7, 0xa6, 0xea, 0x4b, 0x0d, 0x56, 0x7d, 0x17, + 0x66, 0x7d, 0x19, 0x14, 0x9a, 0x06, 0x31, 0x09, 0x0e, 0xc3, 0x5f, 0x27, 0x92, 0x22, 0x7a, 0xba, + 0x8e, 0x69, 0x00, 0x05, 0xa1, 0xe9, 0x75, 0xc4, 0xf0, 0x7e, 0xd8, 0x50, 0xb9, 0x1c, 0x43, 0xcc, + 0x78, 0xe3, 0xd7, 0xc8, 0x92, 0xb3, 0xab, 0x08, 0xaa, 0x94, 0x6f, 0x09, 0xa3, 0x31, 0x97, 0xe6, + 0x2a, 0x13, 0xd2, 0x96, 0x5a, 0x8f, 0x9f, 0x5a, 0xbd, 0x6a, 0xbf, 0x01, 0x22, 0xc8, 0xb7, 0x64, + 0xeb, 0x04, 0x00, 0x00 +}; // Autogenerated from wled00/data/favicon.ico, do not edit!! diff --git a/wled00/html_settings.h b/wled00/html_settings.h index bc3c5d46..affbaaf4 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -6,7 +6,48 @@ */ // Autogenerated from wled00/data/style.css, do not edit!! -const char PAGE_settingsCss[] PROGMEM = R"=====()====="; +const uint16_t PAGE_settingsCss_length = 624; +const uint8_t PAGE_settingsCss[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x54, 0xdb, 0x6e, 0x9c, 0x30, + 0x10, 0xfd, 0x95, 0xad, 0xa2, 0x48, 0xa9, 0xb4, 0x20, 0x60, 0x81, 0x6e, 0x6d, 0xf5, 0xa5, 0x1f, + 0x51, 0x55, 0xaa, 0xf2, 0x60, 0xec, 0x61, 0xb1, 0xd6, 0xd8, 0xc8, 0x36, 0x09, 0x1b, 0x8b, 0x7f, + 0xaf, 0xb9, 0x15, 0x92, 0xd0, 0xf6, 0x25, 0x0f, 0xdc, 0x3c, 0xc3, 0x78, 0xce, 0x39, 0x3e, 0x53, + 0x28, 0x76, 0x73, 0xa5, 0x92, 0x36, 0x28, 0x49, 0xcd, 0xc5, 0x0d, 0xfd, 0x00, 0xcd, 0x88, 0x24, + 0x47, 0x43, 0xa4, 0x09, 0x0c, 0x68, 0x5e, 0x62, 0x0b, 0x9d, 0x0d, 0x88, 0xe0, 0x17, 0x89, 0x28, + 0x48, 0x0b, 0x1a, 0x17, 0x84, 0x5e, 0x2f, 0x5a, 0xb5, 0x92, 0xa1, 0xbb, 0x24, 0x49, 0x30, 0x55, + 0x42, 0x69, 0x74, 0x57, 0x96, 0x25, 0x16, 0x5c, 0x42, 0x50, 0x01, 0xbf, 0x54, 0x16, 0x25, 0x51, + 0x74, 0x8f, 0x6b, 0xa2, 0x2f, 0x5c, 0xa2, 0xa8, 0xaf, 0xb4, 0x2b, 0x94, 0x66, 0xa0, 0x83, 0x39, + 0x3d, 0xcf, 0xf3, 0x9e, 0x1c, 0x09, 0xaa, 0xd4, 0x13, 0x68, 0x37, 0x2f, 0x26, 0xe7, 0x79, 0x43, + 0x06, 0x54, 0x69, 0x62, 0xb9, 0x92, 0x48, 0x2a, 0x09, 0x7d, 0x58, 0x58, 0x79, 0x2c, 0x5a, 0x6b, + 0x95, 0x74, 0xdb, 0xfd, 0x4f, 0xa7, 0xd3, 0x76, 0xff, 0xff, 0x60, 0x99, 0x3a, 0x40, 0xe1, 0x89, + 0x56, 0x07, 0xa3, 0x04, 0x67, 0x87, 0xb1, 0xc0, 0xdc, 0x98, 0x26, 0x8c, 0xb7, 0x06, 0x25, 0x69, + 0xd3, 0x61, 0xc6, 0x4d, 0x23, 0xc8, 0x0d, 0x71, 0x39, 0x42, 0x2a, 0x84, 0xa2, 0xd7, 0xa9, 0xba, + 0xe1, 0x2f, 0xe0, 0xb1, 0xf9, 0x9c, 0x19, 0x5b, 0x9c, 0x34, 0xdd, 0xe1, 0x3c, 0x5d, 0xb8, 0x21, + 0x8c, 0x71, 0x79, 0x41, 0xc3, 0xf7, 0x10, 0xc0, 0x35, 0x97, 0xc1, 0x33, 0x67, 0xb6, 0x42, 0xe9, + 0x10, 0xa7, 0xad, 0x36, 0xbe, 0xd9, 0x46, 0xf1, 0x91, 0xca, 0x7d, 0xac, 0x56, 0x35, 0x5a, 0x3d, + 0x3b, 0xff, 0x40, 0x11, 0x6e, 0x94, 0xe1, 0x63, 0xcc, 0x58, 0x4e, 0xaf, 0xb7, 0x0d, 0xfb, 0x0b, + 0x93, 0x83, 0x06, 0x2f, 0x01, 0x97, 0x0c, 0x3a, 0x14, 0xf7, 0xa1, 0x90, 0xd7, 0x99, 0x6a, 0x4f, + 0x7b, 0x58, 0x81, 0x68, 0xbe, 0xbb, 0x8d, 0x88, 0x02, 0x4a, 0xbb, 0x16, 0x25, 0x85, 0xe7, 0xa1, + 0xb5, 0x80, 0xa7, 0x1e, 0x73, 0x8f, 0xab, 0xe7, 0xb2, 0x69, 0xed, 0x07, 0xb0, 0x9c, 0xbd, 0x62, + 0x79, 0x2a, 0x8b, 0x3c, 0xb1, 0xa4, 0x10, 0xc0, 0x16, 0xc5, 0xcf, 0xe7, 0xf3, 0x14, 0xf9, 0x65, + 0x6f, 0x0d, 0x7c, 0x1b, 0x1a, 0x7d, 0x74, 0x2b, 0xd1, 0x35, 0x78, 0x4d, 0xea, 0x6d, 0x86, 0x6c, + 0xeb, 0x02, 0xf4, 0xa3, 0x9b, 0x49, 0x85, 0x1a, 0xbf, 0xcd, 0x5e, 0x84, 0x49, 0x16, 0x2c, 0xaf, + 0x7e, 0x0c, 0xbb, 0x4e, 0xcc, 0x3f, 0xc7, 0x51, 0xf4, 0x97, 0x94, 0x25, 0xe3, 0x9c, 0xed, 0x27, + 0x2c, 0xf1, 0x3c, 0xdd, 0x8f, 0xd7, 0x73, 0x3c, 0xcb, 0xf7, 0xe3, 0xc6, 0xad, 0x67, 0x62, 0xb7, + 0x81, 0x3f, 0x09, 0x43, 0x87, 0x06, 0x04, 0x50, 0xeb, 0x56, 0x58, 0xf8, 0x5f, 0x04, 0xd1, 0x0a, + 0xe8, 0xb5, 0x50, 0xdd, 0xa3, 0xb3, 0xda, 0x8b, 0x52, 0x2a, 0x5d, 0x23, 0x43, 0x89, 0x80, 0x87, + 0x38, 0xcc, 0x3e, 0xcf, 0xe4, 0x04, 0x7a, 0xf4, 0x68, 0xbc, 0x29, 0xff, 0xe1, 0x82, 0x5b, 0xe6, + 0x16, 0x3b, 0x0c, 0x52, 0x84, 0x2c, 0x5b, 0x40, 0x85, 0x19, 0xd4, 0x9f, 0x78, 0xdd, 0x28, 0x6d, + 0x89, 0xb4, 0xfd, 0x9d, 0x55, 0xc4, 0x58, 0xa7, 0x1a, 0x42, 0xb9, 0xbd, 0xf9, 0x33, 0xff, 0xfe, + 0x8c, 0xa7, 0x69, 0xfa, 0xc6, 0xa6, 0x5e, 0x19, 0xbf, 0xe2, 0x07, 0x42, 0x3d, 0xaa, 0xf0, 0xae, + 0xdd, 0x91, 0x9d, 0xf8, 0xcb, 0xc6, 0x93, 0x71, 0x3e, 0x7c, 0x4c, 0xce, 0x0b, 0xe0, 0xc9, 0x0f, + 0x33, 0x33, 0x1a, 0x6e, 0x75, 0x43, 0xc9, 0x3b, 0x60, 0x3b, 0x13, 0x6f, 0x71, 0x57, 0x86, 0x57, + 0x4a, 0xc7, 0x37, 0x41, 0x2c, 0xfc, 0x7c, 0x08, 0xb2, 0xe8, 0x7e, 0x20, 0xb6, 0x9b, 0x9d, 0xfe, + 0xd5, 0x0f, 0xbe, 0xc1, 0x66, 0xc8, 0xaf, 0xcf, 0xe0, 0x42, 0x53, 0x79, 0x47, 0x2f, 0x08, 0xe3, + 0x3d, 0x17, 0xe7, 0x29, 0x26, 0x92, 0xd7, 0xd3, 0x20, 0x28, 0x09, 0x03, 0x2e, 0x0f, 0x61, 0x66, + 0x8e, 0xeb, 0xeb, 0x21, 0x19, 0x6e, 0xda, 0xb7, 0xae, 0x0d, 0x2c, 0x85, 0x41, 0x6b, 0xa5, 0xff, + 0x59, 0xb9, 0x48, 0xe2, 0xdd, 0xca, 0xfd, 0x6f, 0x38, 0xf8, 0xd2, 0xd4, 0xff, 0x05, 0x00, 0x00 +}; // Autogenerated from wled00/data/settings.htm, do not edit!! @@ -17,7 +58,7 @@ body{text-align:center;background:#222;height:100px;margin:0}html{--h:10.2vh}but
%DMXMENU%
)====="; // Autogenerated from wled00/data/settings_wifi.htm, do not edit!! -const char PAGE_settings_wifi[] PROGMEM = R"=====(WiFi Settings")); return String(buf); } - +*/ #ifdef WLED_ENABLE_DMX - if (var == "DMXMENU") { return String(F("
")); } - #endif - if (var == "SCSS") return String(FPSTR(PAGE_settingsCss)); + //if (var == "SCSS") return String(FPSTR(PAGE_settingsCss)); return String(); } @@ -447,13 +471,32 @@ String dmxProcessor(const String& var) } +void serveSettingsJS(AsyncWebServerRequest* request) +{ + char buf[SETTINGS_STACK_BUF_SIZE+37]; + buf[0] = 0; + byte subPage = request->arg(F("p")).toInt(); + if (!subPage || subPage>8) { + strcpy_P(buf, PSTR("alert('Settings for this request are not implemented.');")); + request->send(501, "application/javascript", buf); + return; + } + strcat_P(buf,PSTR("function GetV(){var d=document;")); + getSettingsJS(subPage, buf+strlen(buf)); // this may overflow by 35bytes!!! + strcat_P(buf,PSTR("}")); + request->send(200, "application/javascript", buf); +} + + void serveSettings(AsyncWebServerRequest* request, bool post) { byte subPage = 0; const String& url = request->url(); if (url.indexOf("sett") >= 0) { - if (url.indexOf("wifi") > 0) subPage = 1; + if (url.indexOf(".js") > 0) subPage = 254; + else if (url.indexOf(".css") > 0) subPage = 253; + else if (url.indexOf("wifi") > 0) subPage = 1; else if (url.indexOf("leds") > 0) subPage = 2; else if (url.indexOf("ui") > 0) subPage = 3; else if (url.indexOf("sync") > 0) subPage = 4; @@ -502,17 +545,24 @@ void serveSettings(AsyncWebServerRequest* request, bool post) optionType = subPage; + AsyncWebServerResponse *response; switch (subPage) { - case 1: request->send_P(200, "text/html", PAGE_settings_wifi, settingsProcessor); break; - case 2: request->send_P(200, "text/html", PAGE_settings_leds, settingsProcessor); break; - case 3: request->send_P(200, "text/html", PAGE_settings_ui , settingsProcessor); break; - case 4: request->send_P(200, "text/html", PAGE_settings_sync, settingsProcessor); break; - case 5: request->send_P(200, "text/html", PAGE_settings_time, settingsProcessor); break; - case 6: request->send_P(200, "text/html", PAGE_settings_sec , settingsProcessor); break; - case 7: request->send_P(200, "text/html", PAGE_settings_dmx , settingsProcessor); break; - case 8: request->send_P(200, "text/html", PAGE_settings_um , settingsProcessor); break; - case 255: request->send_P(200, "text/html", PAGE_welcome); break; - default: request->send_P(200, "text/html", PAGE_settings , settingsProcessor); + case 1: response = request->beginResponse_P(200, "text/html", PAGE_settings_wifi, PAGE_settings_wifi_length); break; + case 2: response = request->beginResponse_P(200, "text/html", PAGE_settings_leds, PAGE_settings_leds_length); break; + case 3: response = request->beginResponse_P(200, "text/html", PAGE_settings_ui, PAGE_settings_ui_length); break; + case 4: response = request->beginResponse_P(200, "text/html", PAGE_settings_sync, PAGE_settings_sync_length); break; + case 5: response = request->beginResponse_P(200, "text/html", PAGE_settings_time, PAGE_settings_time_length); break; + case 6: response = request->beginResponse_P(200, "text/html", PAGE_settings_sec, PAGE_settings_sec_length); break; + case 7: response = request->beginResponse_P(200, "text/html", PAGE_settings_dmx, PAGE_settings_dmx_length); break; + case 8: response = request->beginResponse_P(200, "text/html", PAGE_settings_um, PAGE_settings_um_length); break; + case 253: response = request->beginResponse_P(200, "text/css", PAGE_settingsCss, PAGE_settingsCss_length); break; + case 254: serveSettingsJS(request); return; + case 255: response = request->beginResponse_P(200, "text/html", PAGE_welcome, PAGE_welcome_length); break; + default: request->send_P(200, "text/html", PAGE_settings, settingsProcessor); return; + //default: response = request->beginResponse_P(200, "text/html", PAGE_settings, PAGE_settings_length); break; } + response->addHeader(F("Content-Encoding"),"gzip"); + setStaticContentCacheHeaders(response); + request->send(response); } diff --git a/wled00/xml.cpp b/wled00/xml.cpp index 5c75a15a..7a8a66b4 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -600,6 +600,4 @@ void getSettingsJS(byte subPage, char* dest) oappendi(usermods.getModCount()); oappend(";"); } - - oappend(SET_F("}")); }