From bce624b0f2e3d527f505dc2bd54f9faf92f2c725 Mon Sep 17 00:00:00 2001 From: Martin Mueller Date: Tue, 27 Sep 2022 10:31:07 -0400 Subject: [PATCH] Added more robust retry when a socket error occurs. --- data/js/controls.js | 1427 +++++++++++++++++----------------- data/js/controls.min.js | 13 +- data/js/graph.min.js | 28 +- data/js/slider.min.js | 20 +- data/js/tabbedcontent.min.js | 68 +- src/dataControlsJS.h | 15 +- src/dataGraphJS.h | 2 +- src/dataIndexHTML.h | 2 +- src/dataNormalizeCSS.h | 2 +- src/dataSliderJS.h | 2 +- src/dataStyleCSS.h | 2 +- src/dataTabbedcontentJS.h | 2 +- src/dataZeptoJS.h | 2 +- 13 files changed, 801 insertions(+), 784 deletions(-) diff --git a/data/js/controls.js b/data/js/controls.js index 2db30eb..d1dc71b 100644 --- a/data/js/controls.js +++ b/data/js/controls.js @@ -82,56 +82,57 @@ var hasAccel = false; var sliderContinuous = false; function colorClass(colorId) { - colorId = Number(colorId); - switch (colorId) { - case C_TURQUOISE: - return "turquoise"; + colorId = Number(colorId); + switch (colorId) { + case C_TURQUOISE: + return "turquoise"; - case C_EMERALD: - return "emerald"; + case C_EMERALD: + return "emerald"; - case C_PETERRIVER: - return "peterriver"; + case C_PETERRIVER: + return "peterriver"; - case C_WETASPHALT: - return "wetasphalt"; + case C_WETASPHALT: + return "wetasphalt"; - case C_SUNFLOWER: - return "sunflower"; + case C_SUNFLOWER: + return "sunflower"; - case C_CARROT: - return "carrot"; + case C_CARROT: + return "carrot"; - case C_ALIZARIN: - return "alizarin"; + case C_ALIZARIN: + return "alizarin"; - case C_DARK: - case C_NONE: - return "dark"; - default: - return ""; - } + case C_DARK: + case C_NONE: + return "dark"; + default: + return ""; + } } var websock; var websockConnected = false; +var WebSocketTimer = null; function requestOrientationPermission() { - /* - // Currently this fails, since it needs secure context on IOS safari - if (typeof DeviceMotionEvent.requestPermission === "function") { - DeviceOrientationEvent.requestPermission() - .then(response => { - if (response == "granted") { - window.addEventListener("deviceorientation", handleOrientation); - } - }) - .catch(console.error); - } else { - // Non IOS 13 - window.addEventListener("deviceorientation", handleOrientation); - } - */ + /* + // Currently this fails, since it needs secure context on IOS safari + if (typeof DeviceMotionEvent.requestPermission === "function") { + DeviceOrientationEvent.requestPermission() + .then(response => { + if (response == "granted") { + window.addEventListener("deviceorientation", handleOrientation); + } + }) + .catch(console.error); + } else { + // Non IOS 13 + window.addEventListener("deviceorientation", handleOrientation); + } + */ } /* function handleOrientation(event) { @@ -168,737 +169,755 @@ function handleOrientation(event) { */ function saveGraphData() { - localStorage.setItem("espuigraphs", JSON.stringify(graphData)); + localStorage.setItem("espuigraphs", JSON.stringify(graphData)); } function restoreGraphData(id) { - var savedData = localStorage.getItem("espuigraphs", graphData); - if (savedData != null) { - savedData = JSON.parse(savedData); - return savedData[id]; - } - return []; + var savedData = localStorage.getItem("espuigraphs", graphData); + if (savedData != null) { + savedData = JSON.parse(savedData); + return savedData[id]; + } + return []; } function restart() { - $(document).add("*").off(); - $("#row").html(""); - websock.close(); - start(); + $(document).add("*").off(); + $("#row").html(""); + conStatusError(); + start(); } function conStatusError() { - websockConnected = false; - $("#conStatus").removeClass("color-green"); - $("#conStatus").addClass("color-red"); - $("#conStatus").html("Error / No Connection ↻"); - $("#conStatus").off(); - $("#conStatus").on({ - click: restart, - }); + if (true === websockConnected) { + websockConnected = false; + websock.close(); + $("#conStatus").removeClass("color-green"); + $("#conStatus").addClass("color-red"); + $("#conStatus").html("Error / No Connection ↻"); + $("#conStatus").off(); + $("#conStatus").on({ + click: restart, + }); + } } function handleVisibilityChange() { - if (!websockConnected && !document.hidden) { - restart(); - } + if (!websockConnected && !document.hidden) { + restart(); + } } function start() { - document.addEventListener("visibilitychange", handleVisibilityChange, false); - if ( - window.location.port != "" || - window.location.port != 80 || - window.location.port != 443 - ) { - websock = new WebSocket( - "ws://" + window.location.hostname + ":" + window.location.port + "/ws" - ); - } else { - websock = new WebSocket("ws://" + window.location.hostname + "/ws"); - } - websock.onopen = function (evt) { - console.log("websock open"); - $("#conStatus").addClass("color-green"); - $("#conStatus").text("Connected"); - websockConnected = true; - }; - - websock.onclose = function (evt) { - console.log("websock close"); - conStatusError(); - }; - - websock.onerror = function (evt) { - console.log("websock Error"); - console.log(evt); - conStatusError(); - }; - - var handleEvent = function (evt) { - console.log(evt); - try - { - var data = JSON.parse(evt.data); - } - catch (Event) - { - console.error(Event); - // start the update over again - websock.send("uiok:" + 0); - return; - } - var e = document.body; - var center = ""; - - switch (data.type) { - case UI_INITIAL_GUI: - // Clear current elements - $("#row").html(""); - $("#tabsnav").html(""); - $("#tabscontent").html(""); - - if (data.sliderContinuous) { - sliderContinuous = data.sliderContinuous; - } - data.controls.forEach(element => { - var fauxEvent = { - data: JSON.stringify(element), - }; - handleEvent(fauxEvent); - }); - - //If there are more elements in the complete UI, then request them - //Note: we subtract 1 from data.controls.length because the controls always - //includes the title element - if(data.totalcontrols > (data.controls.length - 1)) { - websock.send("uiok:" + (data.controls.length - 1)); - } - break; - - case UI_EXTEND_GUI: - data.controls.forEach(element => { - var fauxEvent = { - data: JSON.stringify(element), - }; - handleEvent(fauxEvent); - }); - - //Do we need to keep requesting more UI elements? - if(data.totalcontrols > data.startindex + (data.controls.length - 1)) { - websock.send("uiok:" + (data.startindex + (data.controls.length - 1))); - } - break; - - case UI_RELOAD: - window.location.reload(); - break; - - case UI_TITEL: - document.title = data.label; - $("#mainHeader").html(data.label); - break; - - /* - Most elements have the same behaviour when added. - */ - case UI_LABEL: - case UI_NUMBER: - case UI_TEXT_INPUT: - case UI_SELECT: - case UI_GAUGE: - case UI_SEPARATOR: - if (data.visible) addToHTML(data); - break; - - /* - These elements must call additional functions after being added to the DOM - */ - case UI_BUTTON: - if (data.visible) { - addToHTML(data); - $("#btn" + data.id).on({ - touchstart: function (e) { - e.preventDefault(); - buttonclick(data.id, true); - }, - touchend: function (e) { - e.preventDefault(); - buttonclick(data.id, false); - }, - }); - } - break; - - case UI_SWITCHER: - if (data.visible) { - addToHTML(data); - switcher(data.id, data.value); - } - break; - - case UI_CPAD: - case UI_PAD: - if (data.visible) { - addToHTML(data); - $("#pf" + data.id).on({ - touchstart: function (e) { - e.preventDefault(); - padclick(UP, data.id, true); - }, - touchend: function (e) { - e.preventDefault(); - padclick(UP, data.id, false); - }, - }); - $("#pl" + data.id).on({ - touchstart: function (e) { - e.preventDefault(); - padclick(LEFT, data.id, true); - }, - touchend: function (e) { - e.preventDefault(); - padclick(LEFT, data.id, false); - }, - }); - $("#pr" + data.id).on({ - touchstart: function (e) { - e.preventDefault(); - padclick(RIGHT, data.id, true); - }, - touchend: function (e) { - e.preventDefault(); - padclick(RIGHT, data.id, false); - }, - }); - $("#pb" + data.id).on({ - touchstart: function (e) { - e.preventDefault(); - padclick(DOWN, data.id, true); - }, - touchend: function (e) { - e.preventDefault(); - padclick(DOWN, data.id, false); - }, - }); - $("#pc" + data.id).on({ - touchstart: function (e) { - e.preventDefault(); - padclick(CENTER, data.id, true); - }, - touchend: function (e) { - e.preventDefault(); - padclick(CENTER, data.id, false); - }, - }); - } - break; - - case UI_SLIDER: - //https://codepen.io/seanstopnik/pen/CeLqA - if (data.visible) { - addToHTML(data); - rangeSlider(!sliderContinuous); - } - break; - - case UI_TAB: - if (data.visible) { - $("#tabsnav").append( - "
  • " + data.value + "
  • " - ); - $("#tabscontent").append("
    "); - - tabs = $(".tabscontent").tabbedContent({ loop: true }).data("api"); - // switch to tab... - $("a") - .filter(function () { - return $(this).attr("href") === "#click-to-switch"; - }) - .on("click", function (e) { - var tab = prompt("Tab to switch to (number or id)?"); - if (!tabs.switchTab(tab)) { - alert("That tab does not exist :\\"); - } - e.preventDefault(); - }); - } - break; - - case UI_OPTION: - if (data.parentControl) { - var parent = $("#select" + data.parentControl); - parent.append( - "" - ); - } - break; - - case UI_MIN: - if (data.parentControl) { - //Is it applied to a slider? - if($('#sl' + data.parentControl).length) { - $('#sl' + data.parentControl).attr("min", data.value); - } else if($('#num' + data.parentControl).length) { - //Or a number - $('#num' + data.parentControl).attr("min", data.value); - } - } - break; - - case UI_MAX: - if (data.parentControl) { - //Is it applied to a slider? - if($('#sl' + data.parentControl).length) { - $('#sl' + data.parentControl).attr("max", data.value); - } else if($('#text' + data.parentControl).length) { - //Is it a text element - $('#text' + data.parentControl).attr("maxlength", data.value); - } else if($('#num' + data.parentControl).length) { - //Or a number - $('#num' + data.parentControl).attr("max", data.value); - } - } - break; - - case UI_STEP: - if (data.parentControl) { - var parent = $("#id" + data.parentControl + " input"); - if (parent.size()) { - parent.attr("step", data.value); - } - } - break; - - case UI_GRAPH: - if (data.visible) { - addToHTML(data); - graphData[data.id] = restoreGraphData(data.id); - renderGraphSvg(graphData[data.id], "graph" + data.id); - } - break; - case ADD_GRAPH_POINT: - var ts = Math.round(new Date().getTime() / 1000); - graphData[data.id].push({ x: ts, y: data.value }); - saveGraphData(); - renderGraphSvg(graphData[data.id], "graph" + data.id); - break; - case CLEAR_GRAPH: - graphData[data.id] = []; - saveGraphData(); - renderGraphSvg(graphData[data.id], "graph" + data.id); - break; - - case UI_ACCEL: - if (hasAccel) break; - hasAccel = true; - if (data.visible) { - addToHTML(data); - requestOrientationPermission(); - } - break; - - /* - * Update messages change the value/style of a component without adding new HTML - */ - case UPDATE_LABEL: - $("#l" + data.id).html(data.value); - if(data.hasOwnProperty('elementStyle')) { - $("#l" + data.id).attr("style", data.elementStyle); - } - break; - - case UPDATE_SWITCHER: - switcher(data.id, data.value == "0" ? 0 : 1); - if(data.hasOwnProperty('elementStyle')) { - $("#sl" + data.id).attr("style", data.elementStyle); - } - break; - - case UPDATE_SLIDER: - $("#sl" + data.id).attr("value", data.value) - slider_move($("#sl" + data.id).parent().parent(), data.value, "100", false); - if(data.hasOwnProperty('elementStyle')) { - $("#sl" + data.id).attr("style", data.elementStyle); - } - break; - - case UPDATE_NUMBER: - $("#num" + data.id).val(data.value); - if(data.hasOwnProperty('elementStyle')) { - $("#num" + data.id).attr("style", data.elementStyle); - } - break; - - case UPDATE_TEXT_INPUT: - $("#text" + data.id).val(data.value); - if(data.hasOwnProperty('elementStyle')) { - $("#text" + data.id).attr("style", data.elementStyle); - } - if(data.hasOwnProperty('inputType')) { - $("#text" + data.id).attr("type", data.inputType); - } - break; - - case UPDATE_SELECT: - $("#select" + data.id).val(data.value); - if(data.hasOwnProperty('elementStyle')) { - $("#select" + data.id).attr("style", data.elementStyle); - } - break; - - case UPDATE_BUTTON: - $("#btn" + data.id).val(data.value); - $("#btn" + data.id).text(data.value); - if(data.hasOwnProperty('elementStyle')) { - $("#btn" + data.id).attr("style", data.elementStyle); - } - break; - - case UPDATE_PAD: - case UPDATE_CPAD: - break; - case UPDATE_GAUGE: - $("#gauge" + data.id).val(data.value); - if(data.hasOwnProperty('elementStyle')) { - $("#gauge" + data.id).attr("style", data.elementStyle); - } - break; - case UPDATE_ACCEL: - break; - - case UPDATE_TIME: - var rv = new Date().toISOString(); - websock.send("time:" + rv + ":" + data.id); - break; - - default: - console.error("Unknown type or event"); - break; - } - - if (data.type >= UI_TITEL && data.type < UPDATE_OFFSET) { - //A UI element was just added to the DOM - processEnabled(data); - } - - if (data.type >= UPDATE_OFFSET && data.type < UI_INITIAL_GUI) { - //An "update" message was just recieved and processed - var element = $("#id" + data.id); - - if(data.hasOwnProperty('panelStyle')) { - $("#id" + data.id).attr("style", data.panelStyle); - } - - if(data.hasOwnProperty('visible')) { - if(data['visible']) - $("#id" + data.id).show(); - else - $("#id" + data.id).hide(); - } - - if (data.type == UPDATE_SLIDER) { - element.removeClass( - "slider-turquoise slider-emerald slider-peterriver slider-wetasphalt slider-sunflower slider-carrot slider-alizarin" + document.addEventListener("visibilitychange", handleVisibilityChange, false); + if ( + window.location.port != "" || + window.location.port != 80 || + window.location.port != 443 + ) { + websock = new WebSocket( + "ws://" + window.location.hostname + ":" + window.location.port + "/ws" ); - element.addClass("slider-" + colorClass(data.color)); - } else { - element.removeClass( - "turquoise emerald peterriver wetasphalt sunflower carrot alizarin" - ); - element.addClass(colorClass(data.color)); - } - - processEnabled(data); + } else { + websock = new WebSocket("ws://" + window.location.hostname + "/ws"); } - $(".range-slider__range").each(function(){ - $(this)[0].value = $(this).attr("value"); - $(this).next().html($(this).attr("value")); - }); - }; + // is the timer running? + if (null === WebSocketTimer) { + // timer runs forever + WebSocketTimer = setInterval(function () { + // console.info("Periodic Timer has expired"); + // is the socket closed? + if (websock.readyState === 3) { + // console.info("Web Socket Is Closed"); + restart(); + } + }, 5000); + } // end timer was not running - websock.onmessage = handleEvent; + websock.onopen = function (evt) { + console.log("websock open"); + $("#conStatus").addClass("color-green"); + $("#conStatus").text("Connected"); + websockConnected = true; + }; + + websock.onclose = function (evt) { + console.log("websock close"); + conStatusError(); + }; + + websock.onerror = function (evt) { + console.log("websock Error"); + console.log(evt); + + restart(); + }; + + var handleEvent = function (evt) { + console.log(evt); + try { + var data = JSON.parse(evt.data); + } + catch (Event) { + console.error(Event); + // start the update over again + websock.send("uiok:" + 0); + return; + } + var e = document.body; + var center = ""; + + switch (data.type) { + case UI_INITIAL_GUI: + // Clear current elements + $("#row").html(""); + $("#tabsnav").html(""); + $("#tabscontent").html(""); + + if (data.sliderContinuous) { + sliderContinuous = data.sliderContinuous; + } + data.controls.forEach(element => { + var fauxEvent = { + data: JSON.stringify(element), + }; + handleEvent(fauxEvent); + }); + + //If there are more elements in the complete UI, then request them + //Note: we subtract 1 from data.controls.length because the controls always + //includes the title element + if (data.totalcontrols > (data.controls.length - 1)) { + websock.send("uiok:" + (data.controls.length - 1)); + } + break; + + case UI_EXTEND_GUI: + data.controls.forEach(element => { + var fauxEvent = { + data: JSON.stringify(element), + }; + handleEvent(fauxEvent); + }); + + //Do we need to keep requesting more UI elements? + if (data.totalcontrols > data.startindex + (data.controls.length - 1)) { + websock.send("uiok:" + (data.startindex + (data.controls.length - 1))); + } + break; + + case UI_RELOAD: + window.location.reload(); + break; + + case UI_TITEL: + document.title = data.label; + $("#mainHeader").html(data.label); + break; + + /* + Most elements have the same behaviour when added. + */ + case UI_LABEL: + case UI_NUMBER: + case UI_TEXT_INPUT: + case UI_SELECT: + case UI_GAUGE: + case UI_SEPARATOR: + if (data.visible) addToHTML(data); + break; + + /* + These elements must call additional functions after being added to the DOM + */ + case UI_BUTTON: + if (data.visible) { + addToHTML(data); + $("#btn" + data.id).on({ + touchstart: function (e) { + e.preventDefault(); + buttonclick(data.id, true); + }, + touchend: function (e) { + e.preventDefault(); + buttonclick(data.id, false); + }, + }); + } + break; + + case UI_SWITCHER: + if (data.visible) { + addToHTML(data); + switcher(data.id, data.value); + } + break; + + case UI_CPAD: + case UI_PAD: + if (data.visible) { + addToHTML(data); + $("#pf" + data.id).on({ + touchstart: function (e) { + e.preventDefault(); + padclick(UP, data.id, true); + }, + touchend: function (e) { + e.preventDefault(); + padclick(UP, data.id, false); + }, + }); + $("#pl" + data.id).on({ + touchstart: function (e) { + e.preventDefault(); + padclick(LEFT, data.id, true); + }, + touchend: function (e) { + e.preventDefault(); + padclick(LEFT, data.id, false); + }, + }); + $("#pr" + data.id).on({ + touchstart: function (e) { + e.preventDefault(); + padclick(RIGHT, data.id, true); + }, + touchend: function (e) { + e.preventDefault(); + padclick(RIGHT, data.id, false); + }, + }); + $("#pb" + data.id).on({ + touchstart: function (e) { + e.preventDefault(); + padclick(DOWN, data.id, true); + }, + touchend: function (e) { + e.preventDefault(); + padclick(DOWN, data.id, false); + }, + }); + $("#pc" + data.id).on({ + touchstart: function (e) { + e.preventDefault(); + padclick(CENTER, data.id, true); + }, + touchend: function (e) { + e.preventDefault(); + padclick(CENTER, data.id, false); + }, + }); + } + break; + + case UI_SLIDER: + //https://codepen.io/seanstopnik/pen/CeLqA + if (data.visible) { + addToHTML(data); + rangeSlider(!sliderContinuous); + } + break; + + case UI_TAB: + if (data.visible) { + $("#tabsnav").append( + "
  • " + data.value + "
  • " + ); + $("#tabscontent").append("
    "); + + tabs = $(".tabscontent").tabbedContent({ loop: true }).data("api"); + // switch to tab... + $("a") + .filter(function () { + return $(this).attr("href") === "#click-to-switch"; + }) + .on("click", function (e) { + var tab = prompt("Tab to switch to (number or id)?"); + if (!tabs.switchTab(tab)) { + alert("That tab does not exist :\\"); + } + e.preventDefault(); + }); + } + break; + + case UI_OPTION: + if (data.parentControl) { + var parent = $("#select" + data.parentControl); + parent.append( + "" + ); + } + break; + + case UI_MIN: + if (data.parentControl) { + //Is it applied to a slider? + if ($('#sl' + data.parentControl).length) { + $('#sl' + data.parentControl).attr("min", data.value); + } else if ($('#num' + data.parentControl).length) { + //Or a number + $('#num' + data.parentControl).attr("min", data.value); + } + } + break; + + case UI_MAX: + if (data.parentControl) { + //Is it applied to a slider? + if ($('#sl' + data.parentControl).length) { + $('#sl' + data.parentControl).attr("max", data.value); + } else if ($('#text' + data.parentControl).length) { + //Is it a text element + $('#text' + data.parentControl).attr("maxlength", data.value); + } else if ($('#num' + data.parentControl).length) { + //Or a number + $('#num' + data.parentControl).attr("max", data.value); + } + } + break; + + case UI_STEP: + if (data.parentControl) { + var parent = $("#id" + data.parentControl + " input"); + if (parent.size()) { + parent.attr("step", data.value); + } + } + break; + + case UI_GRAPH: + if (data.visible) { + addToHTML(data); + graphData[data.id] = restoreGraphData(data.id); + renderGraphSvg(graphData[data.id], "graph" + data.id); + } + break; + case ADD_GRAPH_POINT: + var ts = Math.round(new Date().getTime() / 1000); + graphData[data.id].push({ x: ts, y: data.value }); + saveGraphData(); + renderGraphSvg(graphData[data.id], "graph" + data.id); + break; + case CLEAR_GRAPH: + graphData[data.id] = []; + saveGraphData(); + renderGraphSvg(graphData[data.id], "graph" + data.id); + break; + + case UI_ACCEL: + if (hasAccel) break; + hasAccel = true; + if (data.visible) { + addToHTML(data); + requestOrientationPermission(); + } + break; + + /* + * Update messages change the value/style of a component without adding new HTML + */ + case UPDATE_LABEL: + $("#l" + data.id).html(data.value); + if (data.hasOwnProperty('elementStyle')) { + $("#l" + data.id).attr("style", data.elementStyle); + } + break; + + case UPDATE_SWITCHER: + switcher(data.id, data.value == "0" ? 0 : 1); + if (data.hasOwnProperty('elementStyle')) { + $("#sl" + data.id).attr("style", data.elementStyle); + } + break; + + case UPDATE_SLIDER: + $("#sl" + data.id).attr("value", data.value) + slider_move($("#sl" + data.id).parent().parent(), data.value, "100", false); + if (data.hasOwnProperty('elementStyle')) { + $("#sl" + data.id).attr("style", data.elementStyle); + } + break; + + case UPDATE_NUMBER: + $("#num" + data.id).val(data.value); + if (data.hasOwnProperty('elementStyle')) { + $("#num" + data.id).attr("style", data.elementStyle); + } + break; + + case UPDATE_TEXT_INPUT: + $("#text" + data.id).val(data.value); + if (data.hasOwnProperty('elementStyle')) { + $("#text" + data.id).attr("style", data.elementStyle); + } + if (data.hasOwnProperty('inputType')) { + $("#text" + data.id).attr("type", data.inputType); + } + break; + + case UPDATE_SELECT: + $("#select" + data.id).val(data.value); + if (data.hasOwnProperty('elementStyle')) { + $("#select" + data.id).attr("style", data.elementStyle); + } + break; + + case UPDATE_BUTTON: + $("#btn" + data.id).val(data.value); + $("#btn" + data.id).text(data.value); + if (data.hasOwnProperty('elementStyle')) { + $("#btn" + data.id).attr("style", data.elementStyle); + } + break; + + case UPDATE_PAD: + case UPDATE_CPAD: + break; + case UPDATE_GAUGE: + $("#gauge" + data.id).val(data.value); + if (data.hasOwnProperty('elementStyle')) { + $("#gauge" + data.id).attr("style", data.elementStyle); + } + break; + case UPDATE_ACCEL: + break; + + case UPDATE_TIME: + var rv = new Date().toISOString(); + websock.send("time:" + rv + ":" + data.id); + break; + + default: + console.error("Unknown type or event"); + break; + } + + if (data.type >= UI_TITEL && data.type < UPDATE_OFFSET) { + //A UI element was just added to the DOM + processEnabled(data); + } + + if (data.type >= UPDATE_OFFSET && data.type < UI_INITIAL_GUI) { + //An "update" message was just recieved and processed + var element = $("#id" + data.id); + + if (data.hasOwnProperty('panelStyle')) { + $("#id" + data.id).attr("style", data.panelStyle); + } + + if (data.hasOwnProperty('visible')) { + if (data['visible']) + $("#id" + data.id).show(); + else + $("#id" + data.id).hide(); + } + + if (data.type == UPDATE_SLIDER) { + element.removeClass( + "slider-turquoise slider-emerald slider-peterriver slider-wetasphalt slider-sunflower slider-carrot slider-alizarin" + ); + element.addClass("slider-" + colorClass(data.color)); + } else { + element.removeClass( + "turquoise emerald peterriver wetasphalt sunflower carrot alizarin" + ); + element.addClass(colorClass(data.color)); + } + + processEnabled(data); + } + + $(".range-slider__range").each(function () { + $(this)[0].value = $(this).attr("value"); + $(this).next().html($(this).attr("value")); + }); + }; + + websock.onmessage = handleEvent; } function sliderchange(number) { - var val = $("#sl" + number).val(); - websock.send("slvalue:" + val + ":" + number); + var val = $("#sl" + number).val(); + websock.send("slvalue:" + val + ":" + number); - $(".range-slider__range").each(function(){ - $(this).attr("value", $(this)[0].value); - }); + $(".range-slider__range").each(function () { + $(this).attr("value", $(this)[0].value); + }); } function numberchange(number) { - var val = $("#num" + number).val(); - websock.send("nvalue:" + val + ":" + number); + var val = $("#num" + number).val(); + websock.send("nvalue:" + val + ":" + number); } function textchange(number) { - var val = $("#text" + number).val(); - websock.send("tvalue:" + val + ":" + number); + var val = $("#text" + number).val(); + websock.send("tvalue:" + val + ":" + number); } function tabclick(number) { - var val = $("#tab" + number).val(); - websock.send("tabvalue:" + val + ":" + number); + var val = $("#tab" + number).val(); + websock.send("tabvalue:" + val + ":" + number); } function selectchange(number) { - var val = $("#select" + number).val(); - websock.send("svalue:" + val + ":" + number); + var val = $("#select" + number).val(); + websock.send("svalue:" + val + ":" + number); } function buttonclick(number, isdown) { - if (isdown) websock.send("bdown:" + number); - else websock.send("bup:" + number); + if (isdown) websock.send("bdown:" + number); + else websock.send("bup:" + number); } function padclick(type, number, isdown) { - if($("#id" + number + " nav").hasClass("disabled")) { - return; - } - switch (type) { - case CENTER: - if (isdown) websock.send("pcdown:" + number); - else websock.send("pcup:" + number); - break; - case UP: - if (isdown) websock.send("pfdown:" + number); - else websock.send("pfup:" + number); - break; - case DOWN: - if (isdown) websock.send("pbdown:" + number); - else websock.send("pbup:" + number); - break; - case LEFT: - if (isdown) websock.send("pldown:" + number); - else websock.send("plup:" + number); - break; - case RIGHT: - if (isdown) websock.send("prdown:" + number); - else websock.send("prup:" + number); - break; - } + if ($("#id" + number + " nav").hasClass("disabled")) { + return; + } + switch (type) { + case CENTER: + if (isdown) websock.send("pcdown:" + number); + else websock.send("pcup:" + number); + break; + case UP: + if (isdown) websock.send("pfdown:" + number); + else websock.send("pfup:" + number); + break; + case DOWN: + if (isdown) websock.send("pbdown:" + number); + else websock.send("pbup:" + number); + break; + case LEFT: + if (isdown) websock.send("pldown:" + number); + else websock.send("plup:" + number); + break; + case RIGHT: + if (isdown) websock.send("prdown:" + number); + else websock.send("prup:" + number); + break; + } } function switcher(number, state) { - if (state == null) { - if (!$("#sl" + number).hasClass("checked")) { - websock.send("sactive:" + number); - $("#sl" + number).addClass("checked"); - } else { - websock.send("sinactive:" + number); - $("#sl" + number).removeClass("checked"); + if (state == null) { + if (!$("#sl" + number).hasClass("checked")) { + websock.send("sactive:" + number); + $("#sl" + number).addClass("checked"); + } else { + websock.send("sinactive:" + number); + $("#sl" + number).removeClass("checked"); + } + } else if (state == 1) { + $("#sl" + number).addClass("checked"); + $("#sl" + number).prop("checked", true); + } else if (state == 0) { + $("#sl" + number).removeClass("checked"); + $("#sl" + number).prop("checked", false); } - } else if (state == 1) { - $("#sl" + number).addClass("checked"); - $("#sl" + number).prop("checked", true); - } else if (state == 0) { - $("#sl" + number).removeClass("checked"); - $("#sl" + number).prop("checked", false); - } } var rangeSlider = function (isDiscrete) { - var range = $(".range-slider__range"); - var slidercb = function() { - sliderchange($(this).attr("id").replace(/^\D+/g, "")); - }; + var range = $(".range-slider__range"); + var slidercb = function () { + sliderchange($(this).attr("id").replace(/^\D+/g, "")); + }; - range.on({input: function() { - $(this).next().html(this.value)} - }); + range.on({ + input: function () { + $(this).next().html(this.value) + } + }); - range.each(function() { - $(this).next().html(this.value); - if($(this).attr("callbackSet") != "true") { - if (!isDiscrete) { - $(this).on({input: slidercb}); //input fires when dragging - } else { - $(this).on({change: slidercb}); //change fires only once released - } - $(this).attr("callbackSet", "true"); - } - }); + range.each(function () { + $(this).next().html(this.value); + if ($(this).attr("callbackSet") != "true") { + if (!isDiscrete) { + $(this).on({ input: slidercb }); //input fires when dragging + } else { + $(this).on({ change: slidercb }); //change fires only once released + } + $(this).attr("callbackSet", "true"); + } + }); }; -var addToHTML = function(data) { - panelStyle = data.hasOwnProperty('panelStyle') ? " style='" + data.panelStyle + "' " : ""; - panelwide = data.hasOwnProperty('wide') ? "wide" : ""; +var addToHTML = function (data) { + panelStyle = data.hasOwnProperty('panelStyle') ? " style='" + data.panelStyle + "' " : ""; + panelwide = data.hasOwnProperty('wide') ? "wide" : ""; - if(!data.hasOwnProperty('parentControl') || $("#tab" + data.parentControl).length > 0) { - //We add the control with its own panel - var parent = data.hasOwnProperty('parentControl') ? - $("#tab" + data.parentControl) : - $("#row"); + if (!data.hasOwnProperty('parentControl') || $("#tab" + data.parentControl).length > 0) { + //We add the control with its own panel + var parent = data.hasOwnProperty('parentControl') ? + $("#tab" + data.parentControl) : + $("#row"); - var html = ""; - switch(data.type) { - case UI_LABEL: - case UI_BUTTON: - case UI_SWITCHER: - case UI_CPAD: - case UI_PAD: - case UI_SLIDER: - case UI_NUMBER: - case UI_TEXT_INPUT: - case UI_SELECT: - case UI_GRAPH: - case UI_GAUGE: - case UI_ACCEL: - html = "
    " + data.label + "

    " + - elementHTML(data) + - "
    "; - break; - case UI_SEPARATOR: - html = "
    " + - "
    " + data.label + "

    "; - break; - case UI_TIME: - //Invisible element - break; + var html = ""; + switch (data.type) { + case UI_LABEL: + case UI_BUTTON: + case UI_SWITCHER: + case UI_CPAD: + case UI_PAD: + case UI_SLIDER: + case UI_NUMBER: + case UI_TEXT_INPUT: + case UI_SELECT: + case UI_GRAPH: + case UI_GAUGE: + case UI_ACCEL: + html = "
    " + data.label + "

    " + + elementHTML(data) + + "
    "; + break; + case UI_SEPARATOR: + html = "
    " + + "
    " + data.label + "

    "; + break; + case UI_TIME: + //Invisible element + break; + } + + parent.append(html); + + } else { + //We are adding to an existing panel so we only need the HTML for the element + var parent = $("#id" + data.parentControl); + parent.append(elementHTML(data)); } - - parent.append(html); - - } else { - //We are adding to an existing panel so we only need the HTML for the element - var parent = $("#id" + data.parentControl); - parent.append(elementHTML(data)); - } } -var elementHTML = function(data) { - var id = data.id - var elementStyle = data.hasOwnProperty('elementStyle') ? " style='" + data.elementStyle + "' " : ""; - var inputType = data.hasOwnProperty('inputType') ? " type='" + data.inputType + "' " : ""; - switch(data.type) { - case UI_LABEL: - return "" + data.value + ""; - case UI_BUTTON: - return ""; - case UI_SWITCHER: - return ""; - case UI_CPAD: - case UI_PAD: - return ""; - case UI_SLIDER: - return "
    " + - "" + - data.value + "
    "; - case UI_NUMBER: - return ""; - case UI_TEXT_INPUT: - return ""; - case UI_SELECT: - return ""; - case UI_ACCEL: - return "ACCEL // Not implemented fully!
    ";
    -    default:
    -      return "";
    -  }
    +var elementHTML = function (data) {
    +    var id = data.id
    +    var elementStyle = data.hasOwnProperty('elementStyle') ? " style='" + data.elementStyle + "' " : "";
    +    var inputType = data.hasOwnProperty('inputType') ? " type='" + data.inputType + "' " : "";
    +    switch (data.type) {
    +        case UI_LABEL:
    +            return "" + data.value + "";
    +        case UI_BUTTON:
    +            return "";
    +        case UI_SWITCHER:
    +            return "";
    +        case UI_CPAD:
    +        case UI_PAD:
    +            return "";
    +        case UI_SLIDER:
    +            return "
    " + + "" + + data.value + "
    "; + case UI_NUMBER: + return ""; + case UI_TEXT_INPUT: + return ""; + case UI_SELECT: + return ""; + case UI_ACCEL: + return "ACCEL // Not implemented fully!
    ";
    +        default:
    +            return "";
    +    }
     }
     
     
     
    -var processEnabled = function(data) {
    -  //Handle the enabling and disabling of controls
    -  //Most controls can be disabled through the use of $("#").prop("disabled", true) and CSS will style it accordingly
    -  //The switcher and pads also require the addition of the "disabled" class
    -  switch(data.type) {
    -    case UI_SWITCHER:
    -    case UPDATE_SWITCHER:
    -      if(data.enabled) {
    -        $("#sl" + data.id).removeClass('disabled');
    -        $("#s" + data.id).prop("disabled", false);
    -      } else {
    -        $("#sl" + data.id).addClass('disabled');
    -        $("#s" + data.id).prop("disabled", true);
    -      }
    -      break;
    -      
    -    case UI_SLIDER:
    -    case UPDATE_SLIDER:
    -      $("#sl" + data.id).prop("disabled", !data.enabled);
    -      break;
    +var processEnabled = function (data) {
    +    //Handle the enabling and disabling of controls
    +    //Most controls can be disabled through the use of $("#").prop("disabled", true) and CSS will style it accordingly
    +    //The switcher and pads also require the addition of the "disabled" class
    +    switch (data.type) {
    +        case UI_SWITCHER:
    +        case UPDATE_SWITCHER:
    +            if (data.enabled) {
    +                $("#sl" + data.id).removeClass('disabled');
    +                $("#s" + data.id).prop("disabled", false);
    +            } else {
    +                $("#sl" + data.id).addClass('disabled');
    +                $("#s" + data.id).prop("disabled", true);
    +            }
    +            break;
     
    -    case UI_NUMBER:
    -    case UPDATE_NUMBER:
    -      $("#num" + data.id).prop("disabled", !data.enabled);
    -      break;
    +        case UI_SLIDER:
    +        case UPDATE_SLIDER:
    +            $("#sl" + data.id).prop("disabled", !data.enabled);
    +            break;
     
    -    case UI_TEXT_INPUT:
    -    case UPDATE_TEXT_INPUT:
    -      $("#text" + data.id).prop("disabled", !data.enabled);
    -      break;
    -    
    -    case UI_SELECT:
    -    case UPDATE_SELECT:
    -      $("#select" + data.id).prop("disabled", !data.enabled);
    -      break;
    +        case UI_NUMBER:
    +        case UPDATE_NUMBER:
    +            $("#num" + data.id).prop("disabled", !data.enabled);
    +            break;
     
    -    case UI_BUTTON:
    -    case UPDATE_BUTTON:
    -      $("#btn" + data.id).prop("disabled", !data.enabled);
    -      break;
    +        case UI_TEXT_INPUT:
    +        case UPDATE_TEXT_INPUT:
    +            $("#text" + data.id).prop("disabled", !data.enabled);
    +            break;
     
    -    case UI_PAD:
    -    case UI_CPAD:
    -    case UPDATE_PAD:
    -    case UPDATE_CPAD:
    -      if(data.enabled) {
    -        $("#id" + data.id + " nav").removeClass('disabled');
    -      } else {
    -        $("#id" + data.id + " nav").addClass('disabled');
    -      }
    -      break;
    -  }
    +        case UI_SELECT:
    +        case UPDATE_SELECT:
    +            $("#select" + data.id).prop("disabled", !data.enabled);
    +            break;
    +
    +        case UI_BUTTON:
    +        case UPDATE_BUTTON:
    +            $("#btn" + data.id).prop("disabled", !data.enabled);
    +            break;
    +
    +        case UI_PAD:
    +        case UI_CPAD:
    +        case UPDATE_PAD:
    +        case UPDATE_CPAD:
    +            if (data.enabled) {
    +                $("#id" + data.id + " nav").removeClass('disabled');
    +            } else {
    +                $("#id" + data.id + " nav").addClass('disabled');
    +            }
    +            break;
    +    }
     }
    diff --git a/data/js/controls.min.js b/data/js/controls.min.js
    index e18bcce..b387a49 100644
    --- a/data/js/controls.min.js
    +++ b/data/js/controls.min.js
    @@ -1,16 +1,15 @@
     const UI_INITIAL_GUI=200;const UI_RELOAD=201;const UPDATE_OFFSET=100;const UI_EXTEND_GUI=210;const UI_TITEL=0;const UI_PAD=1;const UPDATE_PAD=101;const UI_CPAD=2;const UPDATE_CPAD=102;const UI_BUTTON=3;const UPDATE_BUTTON=103;const UI_LABEL=4;const UPDATE_LABEL=104;const UI_SWITCHER=5;const UPDATE_SWITCHER=105;const UI_SLIDER=6;const UPDATE_SLIDER=106;const UI_NUMBER=7;const UPDATE_NUMBER=107;const UI_TEXT_INPUT=8;const UPDATE_TEXT_INPUT=108;const UI_GRAPH=9;const ADD_GRAPH_POINT=10;const CLEAR_GRAPH=109;const UI_TAB=11;const UPDATE_TAB=111;const UI_SELECT=12;const UPDATE_SELECT=112;const UI_OPTION=13;const UPDATE_OPTION=113;const UI_MIN=14;const UPDATE_MIN=114;const UI_MAX=15;const UPDATE_MAX=115;const UI_STEP=16;const UPDATE_STEP=116;const UI_GAUGE=17;const UPDATE_GAUGE=117;const UI_ACCEL=18;const UPDATE_ACCEL=118;const UI_SEPARATOR=19;const UPDATE_SEPARATOR=119;const UI_TIME=20;const UPDATE_TIME=120;const UP=0;const DOWN=1;const LEFT=2;const RIGHT=3;const CENTER=4;const C_TURQUOISE=0;const C_EMERALD=1;const C_PETERRIVER=2;const C_WETASPHALT=3;const C_SUNFLOWER=4;const C_CARROT=5;const C_ALIZARIN=6;const C_DARK=7;const C_NONE=255;var graphData=new Array();var hasAccel=false;var sliderContinuous=false;function colorClass(colorId){colorId=Number(colorId);switch(colorId){case C_TURQUOISE:return"turquoise";case C_EMERALD:return"emerald";case C_PETERRIVER:return"peterriver";case C_WETASPHALT:return"wetasphalt";case C_SUNFLOWER:return"sunflower";case C_CARROT:return"carrot";case C_ALIZARIN:return"alizarin";case C_DARK:case C_NONE:return"dark";default:return"";}}
    -var websock;var websockConnected=false;function requestOrientationPermission(){}
    +var websock;var websockConnected=false;var WebSocketTimer=null;function requestOrientationPermission(){}
     function saveGraphData(){localStorage.setItem("espuigraphs",JSON.stringify(graphData));}
     function restoreGraphData(id){var savedData=localStorage.getItem("espuigraphs",graphData);if(savedData!=null){savedData=JSON.parse(savedData);return savedData[id];}
     return[];}
    -function restart(){$(document).add("*").off();$("#row").html("");websock.close();start();}
    -function conStatusError(){websockConnected=false;$("#conStatus").removeClass("color-green");$("#conStatus").addClass("color-red");$("#conStatus").html("Error / No Connection ↻");$("#conStatus").off();$("#conStatus").on({click:restart,});}
    +function restart(){$(document).add("*").off();$("#row").html("");conStatusError();start();}
    +function conStatusError(){if(true===websockConnected){websockConnected=false;websock.close();$("#conStatus").removeClass("color-green");$("#conStatus").addClass("color-red");$("#conStatus").html("Error / No Connection ↻");$("#conStatus").off();$("#conStatus").on({click:restart,});}}
     function handleVisibilityChange(){if(!websockConnected&&!document.hidden){restart();}}
     function start(){document.addEventListener("visibilitychange",handleVisibilityChange,false);if(window.location.port!=""||window.location.port!=80||window.location.port!=443){websock=new WebSocket("ws://"+window.location.hostname+":"+window.location.port+"/ws");}else{websock=new WebSocket("ws://"+window.location.hostname+"/ws");}
    -websock.onopen=function(evt){console.log("websock open");$("#conStatus").addClass("color-green");$("#conStatus").text("Connected");websockConnected=true;};websock.onclose=function(evt){console.log("websock close");conStatusError();};websock.onerror=function(evt){console.log("websock Error");console.log(evt);conStatusError();};var handleEvent=function(evt){console.log(evt);try
    -{var data=JSON.parse(evt.data);}
    -catch(Event)
    -{console.error(Event);websock.send("uiok:"+0);return;}
    +if(null===WebSocketTimer){WebSocketTimer=setInterval(function(){if(websock.readyState===3){restart();}},5000);}
    +websock.onopen=function(evt){console.log("websock open");$("#conStatus").addClass("color-green");$("#conStatus").text("Connected");websockConnected=true;};websock.onclose=function(evt){console.log("websock close");conStatusError();};websock.onerror=function(evt){console.log("websock Error");console.log(evt);restart();};var handleEvent=function(evt){console.log(evt);try{var data=JSON.parse(evt.data);}
    +catch(Event){console.error(Event);websock.send("uiok:"+0);return;}
     var e=document.body;var center="";switch(data.type){case UI_INITIAL_GUI:$("#row").html("");$("#tabsnav").html("");$("#tabscontent").html("");if(data.sliderContinuous){sliderContinuous=data.sliderContinuous;}
     data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});if(data.totalcontrols>(data.controls.length-1)){websock.send("uiok:"+(data.controls.length-1));}
     break;case UI_EXTEND_GUI:data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});if(data.totalcontrols>data.startindex+(data.controls.length-1)){websock.send("uiok:"+(data.startindex+(data.controls.length-1)));}
    diff --git a/data/js/graph.min.js b/data/js/graph.min.js
    index b113ea1..7d11b2d 100644
    --- a/data/js/graph.min.js
    +++ b/data/js/graph.min.js
    @@ -1,15 +1,15 @@
    -function lineGraph(parent,xAccessor,yAccessor){const width=620;const height=420;const gutter=40;const pixelsPerTick=30;function numericTransformer(dataMin,dataMax,pxMin,pxMax){var dataDiff=dataMax-dataMin,pxDiff=pxMax-pxMin,dataRatio=pxDiff/dataDiff,coordRatio=dataDiff/pxDiff;return{toCoord:function(data){return(data-dataMin)*dataRatio+pxMin;},toData:function(coord){return(coord-pxMin)*coordRatio+dataMin;}};}
    -function axisRenderer(orientation,transform){var axisGroup=document.createElementNS("http://www.w3.org/2000/svg","g");var axisPath=document.createElementNS("http://www.w3.org/2000/svg","path");axisGroup.setAttribute("class",orientation+"-axis");var xMin=gutter;var xMax=width-gutter;var yMin=height-gutter;var yMax=gutter;if(orientation==="x"){axisPath.setAttribute("d","M "+xMin+" "+yMin+" L "+xMax+" "+yMin);for(var i=xMin;i<=xMax;i++){if((i-xMin)%pixelsPerTick===0&&i!==xMin){var text=document.createElementNS("http://www.w3.org/2000/svg","text");text.innerHTML=Math.floor(transform(i));text.setAttribute("x",i);text.setAttribute("y",yMin);text.setAttribute("dy","1em");axisGroup.appendChild(text);}}}else{axisPath.setAttribute("d","M "+xMin+" "+yMin+" L "+xMin+" "+yMax);for(var i=yMax;i<=yMin;i++){if((i-yMin)%pixelsPerTick===0&&i!==yMin){var tickGroup=document.createElementNS("http://www.w3.org/2000/svg","g");var gridLine=document.createElementNS("http://www.w3.org/2000/svg","path");text=document.createElementNS("http://www.w3.org/2000/svg","text");text.innerHTML=Math.floor(transform(i));text.setAttribute("x",xMin);text.setAttribute("y",i);text.setAttribute("dx","-.5em");text.setAttribute("dy",".3em");gridLine.setAttribute("d","M "+xMin+" "+i+" L "+xMax+" "+i);tickGroup.appendChild(gridLine);tickGroup.appendChild(text);axisGroup.appendChild(tickGroup);}}}
    -axisGroup.appendChild(axisPath);parent.appendChild(axisGroup);}
    -function lineRenderer(xAccessor,yAccessor,xTransform,yTransform){var line=document.createElementNS("http://www.w3.org/2000/svg","path");xAccessor.reset();yAccessor.reset();if(!xAccessor.hasNext()||!yAccessor.hasNext()){return;}
    -var pathString="M "+xTransform(xAccessor.next())+" "+yTransform(yAccessor.next());while(xAccessor.hasNext()&&yAccessor.hasNext()){pathString+=" L "+
    -xTransform(xAccessor.next())+
    -" "+
    -yTransform(yAccessor.next());}
    -line.setAttribute("class","series");line.setAttribute("d",pathString);parent.appendChild(line);}
    -function pointRenderer(xAccessor,yAccessor,xTransform,yTransform){var pointGroup=document.createElementNS("http://www.w3.org/2000/svg","g");pointGroup.setAttribute("class","data-points");xAccessor.reset();yAccessor.reset();if(!xAccessor.hasNext()||!yAccessor.hasNext()){return;}
    -while(xAccessor.hasNext()&&yAccessor.hasNext()){var xDataValue=xAccessor.next();var x=xTransform(xDataValue);var yDataValue=yAccessor.next();var y=yTransform(yDataValue);var circle=document.createElementNS("http://www.w3.org/2000/svg","circle");circle.setAttribute("cx",x);circle.setAttribute("cy",y);circle.setAttribute("r","4");var text=document.createElementNS("http://www.w3.org/2000/svg","text");text.innerHTML=Math.floor(xDataValue)+" / "+Math.floor(yDataValue);text.setAttribute("x",x);text.setAttribute("y",y);text.setAttribute("dx","1em");text.setAttribute("dy","-.7em");pointGroup.appendChild(circle);pointGroup.appendChild(text);}
    -parent.appendChild(pointGroup);}
    -xTransform=numericTransformer(xAccessor.min(),xAccessor.max(),0+gutter,width-gutter);yTransform=numericTransformer(yAccessor.min(),yAccessor.max(),height-gutter,0+gutter);axisRenderer("x",xTransform.toData);axisRenderer("y",yTransform.toData);lineRenderer(xAccessor,yAccessor,xTransform.toCoord,yTransform.toCoord);pointRenderer(xAccessor,yAccessor,xTransform.toCoord,yTransform.toCoord);}
    -function renderGraphSvg(dataArray,renderId){var figure=document.getElementById(renderId);while(figure.hasChildNodes()){figure.removeChild(figure.lastChild);}
    +function lineGraph(parent,xAccessor,yAccessor){const width=620;const height=420;const gutter=40;const pixelsPerTick=30;function numericTransformer(dataMin,dataMax,pxMin,pxMax){var dataDiff=dataMax-dataMin,pxDiff=pxMax-pxMin,dataRatio=pxDiff/dataDiff,coordRatio=dataDiff/pxDiff;return{toCoord:function(data){return(data-dataMin)*dataRatio+pxMin;},toData:function(coord){return(coord-pxMin)*coordRatio+dataMin;}};}
    +function axisRenderer(orientation,transform){var axisGroup=document.createElementNS("http://www.w3.org/2000/svg","g");var axisPath=document.createElementNS("http://www.w3.org/2000/svg","path");axisGroup.setAttribute("class",orientation+"-axis");var xMin=gutter;var xMax=width-gutter;var yMin=height-gutter;var yMax=gutter;if(orientation==="x"){axisPath.setAttribute("d","M "+xMin+" "+yMin+" L "+xMax+" "+yMin);for(var i=xMin;i<=xMax;i++){if((i-xMin)%pixelsPerTick===0&&i!==xMin){var text=document.createElementNS("http://www.w3.org/2000/svg","text");text.innerHTML=Math.floor(transform(i));text.setAttribute("x",i);text.setAttribute("y",yMin);text.setAttribute("dy","1em");axisGroup.appendChild(text);}}}else{axisPath.setAttribute("d","M "+xMin+" "+yMin+" L "+xMin+" "+yMax);for(var i=yMax;i<=yMin;i++){if((i-yMin)%pixelsPerTick===0&&i!==yMin){var tickGroup=document.createElementNS("http://www.w3.org/2000/svg","g");var gridLine=document.createElementNS("http://www.w3.org/2000/svg","path");text=document.createElementNS("http://www.w3.org/2000/svg","text");text.innerHTML=Math.floor(transform(i));text.setAttribute("x",xMin);text.setAttribute("y",i);text.setAttribute("dx","-.5em");text.setAttribute("dy",".3em");gridLine.setAttribute("d","M "+xMin+" "+i+" L "+xMax+" "+i);tickGroup.appendChild(gridLine);tickGroup.appendChild(text);axisGroup.appendChild(tickGroup);}}}
    +axisGroup.appendChild(axisPath);parent.appendChild(axisGroup);}
    +function lineRenderer(xAccessor,yAccessor,xTransform,yTransform){var line=document.createElementNS("http://www.w3.org/2000/svg","path");xAccessor.reset();yAccessor.reset();if(!xAccessor.hasNext()||!yAccessor.hasNext()){return;}
    +var pathString="M "+xTransform(xAccessor.next())+" "+yTransform(yAccessor.next());while(xAccessor.hasNext()&&yAccessor.hasNext()){pathString+=" L "+
    +xTransform(xAccessor.next())+
    +" "+
    +yTransform(yAccessor.next());}
    +line.setAttribute("class","series");line.setAttribute("d",pathString);parent.appendChild(line);}
    +function pointRenderer(xAccessor,yAccessor,xTransform,yTransform){var pointGroup=document.createElementNS("http://www.w3.org/2000/svg","g");pointGroup.setAttribute("class","data-points");xAccessor.reset();yAccessor.reset();if(!xAccessor.hasNext()||!yAccessor.hasNext()){return;}
    +while(xAccessor.hasNext()&&yAccessor.hasNext()){var xDataValue=xAccessor.next();var x=xTransform(xDataValue);var yDataValue=yAccessor.next();var y=yTransform(yDataValue);var circle=document.createElementNS("http://www.w3.org/2000/svg","circle");circle.setAttribute("cx",x);circle.setAttribute("cy",y);circle.setAttribute("r","4");var text=document.createElementNS("http://www.w3.org/2000/svg","text");text.innerHTML=Math.floor(xDataValue)+" / "+Math.floor(yDataValue);text.setAttribute("x",x);text.setAttribute("y",y);text.setAttribute("dx","1em");text.setAttribute("dy","-.7em");pointGroup.appendChild(circle);pointGroup.appendChild(text);}
    +parent.appendChild(pointGroup);}
    +xTransform=numericTransformer(xAccessor.min(),xAccessor.max(),0+gutter,width-gutter);yTransform=numericTransformer(yAccessor.min(),yAccessor.max(),height-gutter,0+gutter);axisRenderer("x",xTransform.toData);axisRenderer("y",yTransform.toData);lineRenderer(xAccessor,yAccessor,xTransform.toCoord,yTransform.toCoord);pointRenderer(xAccessor,yAccessor,xTransform.toCoord,yTransform.toCoord);}
    +function renderGraphSvg(dataArray,renderId){var figure=document.getElementById(renderId);while(figure.hasChildNodes()){figure.removeChild(figure.lastChild);}
     var svg=document.createElementNS("http://www.w3.org/2000/svg","svg");svg.setAttribute("viewBox","0 0 640 440");svg.setAttribute("preserveAspectRatio","xMidYMid meet");lineGraph(svg,(function(data,min,max){var i=0;return{hasNext:function(){return i
    '+ -'
    0
    '+ -"
    ";return tmplt;} +function rkmd_rangeSlider(selector){var self,slider_width,slider_offset,curnt,sliderDiscrete,range,slider;self=$(selector);slider_width=self.width();slider_offset=self.offset().left;sliderDiscrete=self;sliderDiscrete.each(function(i,v){curnt=$(this);curnt.append(sliderDiscrete_tmplt());range=curnt.find('input[type="range"]');slider=curnt.find(".slider");slider_fill=slider.find(".slider-fill");slider_handle=slider.find(".slider-handle");slider_label=slider.find(".slider-label");var range_val=parseInt(range.val());slider_fill.css("width",range_val+"%");slider_handle.css("left",range_val+"%");slider_label.find("span").text(range_val);});self.on("mousedown touchstart",".slider-handle",function(e){if(e.button===2){return false;} +var parents=$(this).parents(".rkmd-slider");var slider_width=parents.width();var slider_offset=parents.offset().left;var check_range=parents.find('input[type="range"]').is(":disabled");if(check_range===true){return false;} +$(this).addClass("is-active");var moveFu=function(e){var pageX=e.pageX||e.changedTouches[0].pageX;var slider_new_width=pageX-slider_offset;if(slider_new_width<=slider_width&&!(slider_new_width<"0")){slider_move(parents,slider_new_width,slider_width,true);}};var upFu=function(e){$(this).off(handlers);parents.find(".is-active").removeClass("is-active");};var handlers={mousemove:moveFu,touchmove:moveFu,mouseup:upFu,touchend:upFu,};$(document).on(handlers);});self.on("mousedown touchstart",".slider",function(e){if(e.button===2){return false;} +var parents=$(this).parents(".rkmd-slider");var slider_width=parents.width();var slider_offset=parents.offset().left;var check_range=parents.find('input[type="range"]').is(":disabled");if(check_range===true){return false;} +var slider_new_width=e.pageX-slider_offset;if(slider_new_width<=slider_width&&!(slider_new_width<"0")){slider_move(parents,slider_new_width,slider_width,true);} +var upFu=function(e){$(this).off(handlers);};var handlers={mouseup:upFu,touchend:upFu,};$(document).on(handlers);});} +function sliderDiscrete_tmplt(){var tmplt='
    '+ +'
    '+ +'
    0
    '+ +"
    ";return tmplt;} function slider_move(parents,newW,sliderW,send){var slider_new_val=parseInt(Math.round((newW/sliderW)*100));var slider_fill=parents.find(".slider-fill");var slider_handle=parents.find(".slider-handle");var range=parents.find('input[type="range"]');range.next().html(newW);slider_fill.css("width",slider_new_val+"%");slider_handle.css({left:slider_new_val+"%",transition:"none","-webkit-transition":"none","-moz-transition":"none",});range.val(slider_new_val);if(parents.find(".slider-handle span").text()!=slider_new_val){parents.find(".slider-handle span").text(slider_new_val);var number=parents.attr("id").substring(2);if(send)websock.send("slvalue:"+slider_new_val+":"+number);}} \ No newline at end of file diff --git a/data/js/tabbedcontent.min.js b/data/js/tabbedcontent.min.js index efbf454..e6925c0 100644 --- a/data/js/tabbedcontent.min.js +++ b/data/js/tabbedcontent.min.js @@ -1,35 +1,35 @@ -;(function($,document,window,undefined){"use strict";var Tabbedcontent=function(tabcontent,options){var defaults={links:tabcontent.prev().find('a').length?tabcontent.prev().find('a'):'.tabs a',errorSelector:'.error-message',speed:false,onSwitch:false,onInit:false,currentClass:'active',tabErrorClass:'has-errors',history:true,historyOnInit:true,loop:false},firstTime=false,children=tabcontent.children(),history=window.history,loc=document.location,current=null;options=$.extend(defaults,options);if(!(options.links instanceof $)){options.links=$(options.links);} -function tabExists(tab){return Boolean(children.filter(tab).length);} -function isFirst(){return current===0;} -function isInt(num){return num%1===0;} -function isLast(){return current===children.length-1;} -function filterTab(tab){return $(this).attr('href').match(new RegExp(tab+'$'));} -function getTab(tab){if(tab instanceof $){return{tab:tab,link:options.links.eq(tab.index())};} -if(isInt(tab)){return{tab:children.eq(tab),link:options.links.eq(tab)};} -if(children.filter(tab).length){return{tab:children.filter(tab),link:options.links.filter(function(){return filterTab.apply(this,[tab]);})};} -return{tab:children.filter('#'+tab),link:options.links.filter(function(){return filterTab.apply(this,['#'+tab]);})};} -function getCurrent(){return options.links.parent().filter('.'+options.currentClass).index();} -function next(loop){++current;if(loop===undefined)loop=options.loop;if(current=children.length){return switchTab(0,true);} -return false;} -function prev(loop){--current;if(loop===undefined)loop=options.loop;if(current>=0){return switchTab(current,true);}else if(loop&¤t<0){return switchTab(children.length-1,true);} -return false;} -function onSwitch(tab){if(options.history&&options.historyOnInit&&firstTime&&history!==undefined&&('pushState'in history)){firstTime=false;window.setTimeout(function(){history.replaceState(null,'',tab);},100);} -current=getCurrent();if(options.onSwitch&&typeof options.onSwitch==='function'){options.onSwitch(tab,api());} -tabcontent.trigger('tabcontent.switch',[tab,api()]);} -function switchTab(tab,api){if(!tab.toString().match(/^#/)){tab='#'+getTab(tab).tab.attr('id');} -if(!tabExists(tab)){return false;} -options.links.attr('aria-selected','false').parent().removeClass(options.currentClass);options.links.filter(function(){return filterTab.apply(this,[tab]);}).attr('aria-selected','true').parent().addClass(options.currentClass);children.hide();if(options.history&&api){if(history!==undefined&&('pushState'in history)){history.pushState(null,'',tab);}else{window.location.hash=tab;}} -children.attr('aria-hidden','true').filter(tab).show(options.speed,function(){if(options.speed){onSwitch(tab);}}).attr('aria-hidden','false');if(!options.speed){onSwitch(tab);} -return true;} -function apiSwitch(tab){return switchTab(tab,true);} -function hashSwitch(e){switchTab(loc.hash);} -function init(){if(tabExists(loc.hash)){switchTab(loc.hash);} -else if(options.links.parent().filter('.'+options.currentClass).length){switchTab(options.links.parent().filter('.'+options.currentClass).index());} -else if(options.errorSelector&&children.find(options.errorSelector).length){children.each(function(){if($(this).find(options.errorSelector).length){switchTab("#"+$(this).attr("id"));return false;}});} -else{switchTab("#"+children.filter(":first-child").attr("id"));} -if(options.errorSelector){children.find(options.errorSelector).each(function(){var tab=getTab($(this).parent());tab.link.parent().addClass(options.tabErrorClass);});} -if('onhashchange'in window){$(window).bind('hashchange',hashSwitch);}else{var current_href=loc.href;window.setInterval(function(){if(current_href!==loc.href){hashSwitch.call(window.event);current_href=loc.href;}},100);} -$(options.links).on('click',function(e){switchTab($(this).attr('href').replace(/^[^#]+/,''),options.history);e.preventDefault();});if(options.onInit&&typeof options.onInit==='function'){options.onInit(api());} -tabcontent.trigger('tabcontent.init',[api()]);} -function api(){return{'switch':apiSwitch,'switchTab':apiSwitch,'getCurrent':getCurrent,'getTab':getTab,'next':next,'prev':prev,'isFirst':isFirst,'isLast':isLast};} +;(function($,document,window,undefined){"use strict";var Tabbedcontent=function(tabcontent,options){var defaults={links:tabcontent.prev().find('a').length?tabcontent.prev().find('a'):'.tabs a',errorSelector:'.error-message',speed:false,onSwitch:false,onInit:false,currentClass:'active',tabErrorClass:'has-errors',history:true,historyOnInit:true,loop:false},firstTime=false,children=tabcontent.children(),history=window.history,loc=document.location,current=null;options=$.extend(defaults,options);if(!(options.links instanceof $)){options.links=$(options.links);} +function tabExists(tab){return Boolean(children.filter(tab).length);} +function isFirst(){return current===0;} +function isInt(num){return num%1===0;} +function isLast(){return current===children.length-1;} +function filterTab(tab){return $(this).attr('href').match(new RegExp(tab+'$'));} +function getTab(tab){if(tab instanceof $){return{tab:tab,link:options.links.eq(tab.index())};} +if(isInt(tab)){return{tab:children.eq(tab),link:options.links.eq(tab)};} +if(children.filter(tab).length){return{tab:children.filter(tab),link:options.links.filter(function(){return filterTab.apply(this,[tab]);})};} +return{tab:children.filter('#'+tab),link:options.links.filter(function(){return filterTab.apply(this,['#'+tab]);})};} +function getCurrent(){return options.links.parent().filter('.'+options.currentClass).index();} +function next(loop){++current;if(loop===undefined)loop=options.loop;if(current=children.length){return switchTab(0,true);} +return false;} +function prev(loop){--current;if(loop===undefined)loop=options.loop;if(current>=0){return switchTab(current,true);}else if(loop&¤t<0){return switchTab(children.length-1,true);} +return false;} +function onSwitch(tab){if(options.history&&options.historyOnInit&&firstTime&&history!==undefined&&('pushState'in history)){firstTime=false;window.setTimeout(function(){history.replaceState(null,'',tab);},100);} +current=getCurrent();if(options.onSwitch&&typeof options.onSwitch==='function'){options.onSwitch(tab,api());} +tabcontent.trigger('tabcontent.switch',[tab,api()]);} +function switchTab(tab,api){if(!tab.toString().match(/^#/)){tab='#'+getTab(tab).tab.attr('id');} +if(!tabExists(tab)){return false;} +options.links.attr('aria-selected','false').parent().removeClass(options.currentClass);options.links.filter(function(){return filterTab.apply(this,[tab]);}).attr('aria-selected','true').parent().addClass(options.currentClass);children.hide();if(options.history&&api){if(history!==undefined&&('pushState'in history)){history.pushState(null,'',tab);}else{window.location.hash=tab;}} +children.attr('aria-hidden','true').filter(tab).show(options.speed,function(){if(options.speed){onSwitch(tab);}}).attr('aria-hidden','false');if(!options.speed){onSwitch(tab);} +return true;} +function apiSwitch(tab){return switchTab(tab,true);} +function hashSwitch(e){switchTab(loc.hash);} +function init(){if(tabExists(loc.hash)){switchTab(loc.hash);} +else if(options.links.parent().filter('.'+options.currentClass).length){switchTab(options.links.parent().filter('.'+options.currentClass).index());} +else if(options.errorSelector&&children.find(options.errorSelector).length){children.each(function(){if($(this).find(options.errorSelector).length){switchTab("#"+$(this).attr("id"));return false;}});} +else{switchTab("#"+children.filter(":first-child").attr("id"));} +if(options.errorSelector){children.find(options.errorSelector).each(function(){var tab=getTab($(this).parent());tab.link.parent().addClass(options.tabErrorClass);});} +if('onhashchange'in window){$(window).bind('hashchange',hashSwitch);}else{var current_href=loc.href;window.setInterval(function(){if(current_href!==loc.href){hashSwitch.call(window.event);current_href=loc.href;}},100);} +$(options.links).on('click',function(e){switchTab($(this).attr('href').replace(/^[^#]+/,''),options.history);e.preventDefault();});if(options.onInit&&typeof options.onInit==='function'){options.onInit(api());} +tabcontent.trigger('tabcontent.init',[api()]);} +function api(){return{'switch':apiSwitch,'switchTab':apiSwitch,'getCurrent':getCurrent,'getTab':getTab,'next':next,'prev':prev,'isFirst':isFirst,'isLast':isLast};} init();return api();};$.fn.tabbedContent=function(options){return this.each(function(){var tabs=new Tabbedcontent($(this),options);$(this).data('api',tabs);});};})(window.jQuery||window.Zepto||window.$,document,window); \ No newline at end of file diff --git a/src/dataControlsJS.h b/src/dataControlsJS.h index aa9df50..ce8e985 100644 --- a/src/dataControlsJS.h +++ b/src/dataControlsJS.h @@ -1,17 +1,16 @@ const char JS_CONTROLS[] PROGMEM = R"=====( const UI_INITIAL_GUI=200;const UI_RELOAD=201;const UPDATE_OFFSET=100;const UI_EXTEND_GUI=210;const UI_TITEL=0;const UI_PAD=1;const UPDATE_PAD=101;const UI_CPAD=2;const UPDATE_CPAD=102;const UI_BUTTON=3;const UPDATE_BUTTON=103;const UI_LABEL=4;const UPDATE_LABEL=104;const UI_SWITCHER=5;const UPDATE_SWITCHER=105;const UI_SLIDER=6;const UPDATE_SLIDER=106;const UI_NUMBER=7;const UPDATE_NUMBER=107;const UI_TEXT_INPUT=8;const UPDATE_TEXT_INPUT=108;const UI_GRAPH=9;const ADD_GRAPH_POINT=10;const CLEAR_GRAPH=109;const UI_TAB=11;const UPDATE_TAB=111;const UI_SELECT=12;const UPDATE_SELECT=112;const UI_OPTION=13;const UPDATE_OPTION=113;const UI_MIN=14;const UPDATE_MIN=114;const UI_MAX=15;const UPDATE_MAX=115;const UI_STEP=16;const UPDATE_STEP=116;const UI_GAUGE=17;const UPDATE_GAUGE=117;const UI_ACCEL=18;const UPDATE_ACCEL=118;const UI_SEPARATOR=19;const UPDATE_SEPARATOR=119;const UI_TIME=20;const UPDATE_TIME=120;const UP=0;const DOWN=1;const LEFT=2;const RIGHT=3;const CENTER=4;const C_TURQUOISE=0;const C_EMERALD=1;const C_PETERRIVER=2;const C_WETASPHALT=3;const C_SUNFLOWER=4;const C_CARROT=5;const C_ALIZARIN=6;const C_DARK=7;const C_NONE=255;var graphData=new Array();var hasAccel=false;var sliderContinuous=false;function colorClass(colorId){colorId=Number(colorId);switch(colorId){case C_TURQUOISE:return"turquoise";case C_EMERALD:return"emerald";case C_PETERRIVER:return"peterriver";case C_WETASPHALT:return"wetasphalt";case C_SUNFLOWER:return"sunflower";case C_CARROT:return"carrot";case C_ALIZARIN:return"alizarin";case C_DARK:case C_NONE:return"dark";default:return"";}} -var websock;var websockConnected=false;function requestOrientationPermission(){} +var websock;var websockConnected=false;var WebSocketTimer=null;function requestOrientationPermission(){} function saveGraphData(){localStorage.setItem("espuigraphs",JSON.stringify(graphData));} function restoreGraphData(id){var savedData=localStorage.getItem("espuigraphs",graphData);if(savedData!=null){savedData=JSON.parse(savedData);return savedData[id];} return[];} -function restart(){$(document).add("*").off();$("#row").html("");websock.close();start();} -function conStatusError(){websockConnected=false;$("#conStatus").removeClass("color-green");$("#conStatus").addClass("color-red");$("#conStatus").html("Error / No Connection ↻");$("#conStatus").off();$("#conStatus").on({click:restart,});} +function restart(){$(document).add("*").off();$("#row").html("");conStatusError();start();} +function conStatusError(){if(true===websockConnected){websockConnected=false;websock.close();$("#conStatus").removeClass("color-green");$("#conStatus").addClass("color-red");$("#conStatus").html("Error / No Connection ↻");$("#conStatus").off();$("#conStatus").on({click:restart,});}} function handleVisibilityChange(){if(!websockConnected&&!document.hidden){restart();}} function start(){document.addEventListener("visibilitychange",handleVisibilityChange,false);if(window.location.port!=""||window.location.port!=80||window.location.port!=443){websock=new WebSocket("ws://"+window.location.hostname+":"+window.location.port+"/ws");}else{websock=new WebSocket("ws://"+window.location.hostname+"/ws");} -websock.onopen=function(evt){console.log("websock open");$("#conStatus").addClass("color-green");$("#conStatus").text("Connected");websockConnected=true;};websock.onclose=function(evt){console.log("websock close");conStatusError();};websock.onerror=function(evt){console.log("websock Error");console.log(evt);conStatusError();};var handleEvent=function(evt){console.log(evt);try -{var data=JSON.parse(evt.data);} -catch(Event) -{console.error(Event);websock.send("uiok:"+0);return;} +if(null===WebSocketTimer){WebSocketTimer=setInterval(function(){if(websock.readyState===3){restart();}},5000);} +websock.onopen=function(evt){console.log("websock open");$("#conStatus").addClass("color-green");$("#conStatus").text("Connected");websockConnected=true;};websock.onclose=function(evt){console.log("websock close");conStatusError();};websock.onerror=function(evt){console.log("websock Error");console.log(evt);restart();};var handleEvent=function(evt){console.log(evt);try{var data=JSON.parse(evt.data);} +catch(Event){console.error(Event);websock.send("uiok:"+0);return;} var e=document.body;var center="";switch(data.type){case UI_INITIAL_GUI:$("#row").html("");$("#tabsnav").html("");$("#tabscontent").html("");if(data.sliderContinuous){sliderContinuous=data.sliderContinuous;} data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});if(data.totalcontrols>(data.controls.length-1)){websock.send("uiok:"+(data.controls.length-1));} break;case UI_EXTEND_GUI:data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});if(data.totalcontrols>data.startindex+(data.controls.length-1)){websock.send("uiok:"+(data.startindex+(data.controls.length-1)));} @@ -109,4 +108,4 @@ break;case UI_SLIDER:case UPDATE_SLIDER:$("#sl"+data.id).prop("disabled",!data.e break;}} )====="; -const uint8_t JS_CONTROLS_GZIP[4250] PROGMEM = { 31,139,8,0,206,101,43,99,2,255,197,27,105,119,218,72,242,187,127,133,172,228,5,177,198,28,185,38,3,150,243,8,38,9,59,190,214,198,147,121,155,201,250,9,104,140,158,133,164,145,132,137,199,225,191,111,117,245,161,110,33,1,198,51,187,95,98,84,93,93,93,93,85,221,117,117,134,129,31,39,198,85,239,186,119,218,235,247,218,199,215,159,174,122,246,203,122,189,53,20,3,23,221,227,179,246,17,192,26,2,118,126,212,238,119,175,207,62,126,188,236,246,237,134,138,219,253,173,223,61,61,98,52,26,10,188,223,235,119,143,109,5,112,14,20,51,244,16,148,46,210,187,238,80,200,75,29,169,195,176,94,166,88,31,174,250,253,179,83,251,149,142,199,161,141,250,171,20,243,184,253,1,152,120,173,35,50,96,163,254,58,197,187,252,210,235,119,62,119,47,236,55,58,170,132,55,234,111,20,236,227,222,17,192,222,102,112,25,180,81,127,155,98,158,94,157,124,0,216,79,58,38,135,54,234,63,41,226,2,57,130,66,206,175,250,246,59,29,91,25,105,212,223,165,51,62,93,180,207,63,219,63,115,64,251,232,136,65,174,207,207,122,167,20,149,15,116,142,187,237,11,142,220,168,255,172,172,216,254,96,55,50,10,97,48,69,33,151,221,227,110,7,168,101,116,34,192,13,69,43,103,231,253,30,149,127,70,45,2,220,80,212,114,210,3,64,70,43,8,107,40,58,57,105,255,102,55,50,250,64,88,67,85,69,191,123,110,55,178,154,64,96,67,209,195,167,246,213,167,174,221,200,232,129,67,27,138,26,218,157,14,181,141,140,10,56,180,241,78,21,204,121,251,162,221,63,3,53,254,156,149,141,28,105,168,226,238,157,116,225,68,101,228,77,129,13,5,42,15,204,209,217,151,83,121,92,142,187,31,251,242,88,92,244,62,125,238,75,227,239,116,79,251,96,75,66,110,157,235,254,213,197,191,174,206,122,151,93,73,170,115,221,61,233,94,180,143,211,227,215,185,62,239,194,172,139,222,175,48,245,165,4,126,233,246,219,151,231,159,219,199,10,249,235,203,171,211,143,199,103,95,180,53,58,237,139,139,179,190,60,44,157,235,246,113,239,223,237,11,208,224,91,9,58,106,95,252,34,13,191,115,125,122,118,10,219,127,243,166,117,231,68,198,77,228,132,147,35,39,113,108,159,204,141,118,20,57,247,86,25,71,38,78,220,30,14,137,103,143,29,47,38,8,138,61,119,68,162,78,224,39,174,63,11,102,49,31,26,207,252,97,226,6,190,49,12,188,32,234,120,78,28,91,248,179,55,42,63,240,31,246,233,108,58,32,145,132,183,226,185,155,12,39,10,158,19,19,85,102,205,136,36,179,200,55,225,159,63,102,129,27,19,179,197,81,184,8,5,2,153,146,200,241,70,114,56,149,167,192,8,73,66,162,200,189,35,145,68,74,229,43,144,230,36,113,226,112,226,120,137,68,146,242,22,56,241,204,31,123,193,92,161,195,196,47,198,135,78,20,5,233,124,161,10,49,236,120,238,159,78,228,250,18,129,42,166,201,127,83,173,8,196,145,19,221,154,173,17,25,59,51,47,17,64,179,181,88,236,80,45,204,201,32,14,134,183,45,229,55,168,196,39,195,132,140,178,26,137,200,31,51,18,39,103,145,75,252,196,161,160,115,18,77,221,56,134,95,86,249,97,177,35,49,99,231,142,124,18,198,0,67,94,48,116,188,203,36,136,156,27,82,141,73,210,75,200,212,50,73,28,206,92,180,153,216,172,252,243,242,236,180,26,39,176,163,27,119,124,111,73,83,42,151,91,10,225,8,214,15,34,133,182,11,218,70,107,130,21,71,104,122,218,90,55,185,107,165,196,91,238,216,146,83,119,109,127,230,121,229,135,148,22,50,21,58,81,76,82,172,114,139,201,48,93,242,171,59,250,6,76,50,240,215,111,89,126,157,40,1,17,60,183,70,193,112,54,5,201,149,171,206,104,100,153,255,48,203,213,96,60,134,3,242,220,50,159,69,193,28,190,39,201,212,179,76,179,220,226,170,168,14,189,0,214,6,3,103,84,84,210,112,2,47,65,11,179,184,11,118,18,193,10,5,234,163,212,37,46,172,17,145,105,112,71,216,193,50,241,196,236,223,68,132,248,102,121,9,21,248,212,240,34,50,202,193,98,76,35,23,70,205,56,13,12,206,1,101,242,197,179,119,111,95,189,105,229,204,74,183,174,65,125,235,97,232,185,195,219,38,151,92,101,161,109,122,226,248,35,143,252,234,198,238,192,245,220,228,190,3,128,27,16,208,3,232,113,55,43,128,23,47,118,133,204,171,19,119,52,34,126,249,65,42,132,30,128,212,94,185,146,36,58,236,188,123,7,63,142,221,56,33,62,92,53,230,157,92,115,136,107,154,149,124,94,42,40,117,52,172,185,235,143,130,121,149,26,36,93,165,26,6,81,178,107,155,230,143,31,249,35,239,234,69,35,175,95,191,146,250,197,187,245,11,25,92,194,111,146,88,230,60,110,214,106,230,94,118,226,36,136,19,223,153,146,61,179,185,60,72,169,238,153,181,57,136,188,181,32,192,239,214,196,57,141,29,97,176,129,31,132,196,183,133,100,45,114,151,208,107,219,143,3,143,192,252,27,32,201,48,13,138,183,129,205,21,217,102,66,190,3,127,82,215,233,153,73,237,63,137,102,164,181,104,165,172,225,105,218,132,55,68,4,146,217,51,166,81,35,20,182,9,53,156,204,168,201,65,138,157,71,158,57,75,106,88,104,127,43,200,35,133,36,186,223,193,251,111,148,185,174,96,180,58,194,219,106,177,3,74,3,231,136,244,202,59,146,6,178,207,161,114,87,49,241,225,106,154,185,193,45,88,77,93,92,117,45,230,43,136,45,207,199,32,24,221,35,175,67,248,34,17,24,181,240,193,116,209,106,114,31,18,238,133,245,124,164,153,115,215,81,80,226,12,98,223,185,203,3,3,191,112,4,19,117,8,206,22,46,147,13,33,224,234,206,6,21,185,120,176,31,132,83,210,81,224,197,213,113,16,117,29,96,158,120,132,110,207,62,68,153,130,199,252,206,180,240,64,209,155,25,23,197,145,203,149,69,75,209,152,37,103,129,232,83,86,147,32,113,60,177,222,161,165,47,239,17,255,38,153,236,55,202,242,144,235,138,40,68,135,141,12,34,226,220,182,132,168,211,172,173,249,255,221,33,147,59,189,86,225,234,32,223,247,182,218,241,38,243,151,101,192,178,220,102,246,206,138,136,23,56,35,56,100,58,54,230,179,77,105,216,137,155,120,132,89,141,231,12,136,135,102,56,117,92,255,51,113,192,134,132,21,166,8,89,122,152,133,54,197,23,75,9,229,103,154,243,73,16,75,185,228,39,230,46,202,32,207,57,154,66,202,232,134,60,82,134,107,178,31,124,238,159,28,91,236,148,235,76,176,156,121,105,210,67,118,22,221,220,32,241,205,61,68,131,88,10,29,112,18,204,134,19,148,125,51,189,126,202,15,164,26,70,132,170,253,136,197,146,84,148,179,36,161,215,42,56,108,139,147,168,208,91,23,148,82,65,42,160,211,109,104,112,31,186,96,222,95,223,155,200,221,215,239,142,221,72,224,188,5,89,134,238,120,200,96,134,44,45,71,72,185,211,223,27,9,47,28,111,45,187,208,25,177,77,95,157,87,182,149,93,30,13,85,118,200,162,247,116,22,105,162,250,116,38,53,42,75,108,70,79,103,19,83,232,167,243,169,147,89,98,116,240,116,70,105,21,224,233,124,106,84,150,216,28,62,157,77,86,132,120,58,163,25,58,43,79,55,86,219,214,31,190,136,198,218,151,232,215,173,221,165,56,96,137,108,191,253,97,153,166,30,120,56,97,136,30,232,192,115,15,15,28,35,240,167,64,137,204,66,187,4,56,108,31,82,162,123,102,185,100,76,34,50,182,75,148,130,2,47,29,242,15,188,102,246,204,131,154,115,120,80,3,146,185,17,141,92,115,228,222,25,238,8,151,210,136,29,212,96,132,206,165,243,108,32,80,213,9,192,215,128,140,58,236,219,130,60,59,8,155,84,77,139,50,70,127,150,233,132,46,91,217,1,236,177,235,65,176,102,73,181,209,116,8,83,217,231,86,50,113,99,224,39,73,32,213,161,27,51,203,182,109,67,196,77,247,189,159,4,251,236,46,53,193,225,83,99,50,17,110,86,84,3,160,241,4,176,99,135,81,48,13,33,52,239,59,3,35,9,12,54,145,254,178,124,172,218,24,144,38,130,77,190,103,113,220,46,221,79,149,33,193,12,11,62,33,38,112,60,18,81,18,19,39,161,52,141,81,64,98,195,15,18,131,124,135,132,204,104,254,254,59,38,29,57,54,151,99,82,172,82,41,213,15,241,49,204,232,176,72,130,177,205,64,84,188,207,98,136,121,134,9,215,129,142,218,98,159,169,210,130,16,147,71,170,55,246,211,220,219,17,186,219,49,75,6,154,128,93,18,80,102,17,116,64,64,216,98,132,98,31,10,24,6,21,0,56,168,49,154,135,230,242,142,78,122,133,219,1,240,115,171,244,44,246,74,121,91,224,113,19,53,253,98,28,102,4,83,215,55,117,135,73,243,68,131,211,7,85,174,95,160,16,169,104,133,165,125,182,127,251,251,247,233,124,95,177,79,154,101,174,95,161,24,75,174,193,208,255,110,137,46,237,101,233,122,237,119,207,55,60,9,238,40,239,20,236,153,134,235,135,179,132,157,94,126,34,98,247,79,98,193,177,21,7,4,153,137,19,18,174,225,6,187,23,235,239,122,89,174,251,202,79,215,55,123,169,14,40,92,29,100,172,144,47,68,56,112,121,119,99,45,207,173,152,8,75,189,163,126,188,50,13,151,38,94,107,177,125,226,36,147,106,20,204,224,224,211,18,9,80,132,29,211,242,98,223,157,194,175,90,163,94,175,231,113,90,13,103,241,196,122,248,222,76,226,202,125,51,149,6,220,83,153,34,233,54,156,43,124,43,253,160,102,142,192,190,126,251,139,215,19,77,21,170,62,81,221,47,179,113,89,236,199,2,204,122,87,190,178,172,156,185,252,148,86,31,214,18,212,224,54,205,204,184,193,137,165,129,161,179,185,127,30,5,33,184,149,123,171,196,243,218,203,228,222,35,165,50,11,4,84,66,194,128,97,152,91,176,58,35,159,37,153,150,172,200,58,192,163,214,205,247,245,102,227,113,172,197,79,230,141,5,85,5,180,144,53,237,164,238,176,128,234,154,22,138,173,165,89,236,148,91,233,15,101,106,197,132,131,96,42,53,208,255,221,38,121,170,77,105,193,53,169,16,3,198,182,182,10,157,210,54,108,41,41,63,198,127,224,42,254,34,222,50,164,214,51,87,68,28,47,244,254,125,184,154,50,173,233,113,194,114,66,129,185,177,146,198,82,56,245,212,13,47,17,219,70,31,188,52,178,92,249,200,114,182,140,129,37,231,109,153,215,73,109,195,121,90,160,72,31,80,52,151,209,88,5,137,46,121,227,204,110,200,95,36,251,44,173,109,54,192,252,69,206,17,233,157,116,209,207,70,119,182,226,92,147,160,119,121,118,137,197,72,43,91,161,78,192,235,54,205,189,232,14,219,27,25,255,36,122,157,122,165,219,188,242,111,253,96,238,27,212,144,105,18,130,153,131,41,38,165,199,131,142,31,218,162,52,248,226,133,4,30,104,207,101,32,220,137,130,33,137,227,174,239,128,95,27,89,162,220,158,161,163,206,209,136,105,133,113,22,126,137,234,172,22,127,209,141,21,169,42,116,124,226,105,138,82,167,229,104,41,157,176,234,70,224,190,154,210,228,40,95,37,236,91,121,103,105,157,120,18,204,65,71,52,158,93,30,156,128,47,177,178,130,177,109,205,55,149,31,248,214,245,246,36,243,67,251,178,109,207,31,13,236,243,54,189,248,76,123,242,2,146,54,224,5,68,182,219,5,128,245,215,197,151,108,167,211,93,16,209,3,212,217,48,247,148,55,9,188,30,13,223,101,209,67,203,221,66,202,187,96,90,225,86,101,83,242,199,25,91,197,81,33,31,59,5,54,73,43,7,88,50,217,231,174,253,26,191,204,114,149,208,174,128,82,17,224,165,128,175,245,111,60,102,209,107,3,44,88,160,183,35,131,250,244,78,228,161,87,46,38,75,201,149,182,217,20,216,115,110,136,173,116,20,212,14,47,227,143,245,88,121,197,128,157,13,160,103,139,64,129,195,241,70,203,94,13,177,135,43,195,181,0,127,241,122,224,216,173,71,11,65,15,144,178,146,225,197,6,201,57,91,102,5,231,24,76,172,98,221,47,226,92,89,133,58,161,21,107,48,215,189,106,145,100,147,69,68,197,43,119,9,90,163,90,185,130,51,216,96,13,230,205,87,41,154,187,251,149,202,222,96,33,181,193,192,134,43,110,60,2,79,128,151,27,255,169,147,29,80,152,66,13,19,245,12,202,44,204,95,78,86,61,233,53,87,89,94,80,220,143,108,4,242,105,222,247,116,98,126,99,140,220,24,15,47,156,157,7,217,127,229,221,85,165,177,202,138,170,205,162,45,132,195,245,123,8,135,218,38,52,207,92,76,120,188,1,225,113,17,97,90,179,46,38,189,129,220,195,65,17,105,218,94,40,38,237,109,64,218,43,34,141,29,129,98,218,209,6,180,163,28,218,218,19,20,145,54,114,139,137,33,21,38,104,48,248,203,230,111,147,104,201,52,123,11,166,166,3,4,134,183,204,114,50,231,196,129,85,238,136,126,25,106,68,148,119,23,130,136,254,52,68,80,114,253,181,180,244,39,70,41,57,89,240,226,91,106,164,169,223,42,54,178,56,224,227,194,116,92,180,37,50,180,235,203,180,11,216,90,67,94,116,43,216,27,8,165,239,144,190,205,112,227,35,55,30,194,89,229,101,112,68,178,11,221,141,242,252,113,56,176,21,183,163,249,62,221,7,193,141,65,55,16,122,206,144,88,181,255,252,126,180,87,187,169,152,232,94,89,47,4,123,60,152,152,53,115,28,153,234,166,41,132,123,176,197,130,119,82,10,61,96,193,196,22,94,100,42,131,67,199,243,6,206,240,246,146,64,76,189,107,155,84,43,38,179,87,85,60,98,82,202,173,16,196,66,216,155,138,194,100,161,225,236,20,175,91,225,171,182,22,11,241,150,70,22,155,82,57,99,76,244,144,6,194,246,218,200,250,189,105,96,12,77,107,249,153,40,122,143,150,243,155,166,217,66,208,28,216,204,39,71,71,40,33,250,23,241,169,96,10,22,86,202,173,165,242,143,31,210,231,22,87,135,15,235,90,249,118,19,186,239,87,145,77,159,233,176,7,73,160,253,213,79,124,244,87,15,60,199,94,234,216,23,246,218,51,221,191,237,95,79,96,249,51,255,45,5,203,62,217,86,100,191,77,73,84,80,147,123,170,102,141,33,189,42,236,82,50,15,232,107,228,217,212,143,5,6,85,35,69,112,162,145,145,176,55,80,180,171,147,31,151,99,35,111,242,70,116,6,89,135,199,60,168,1,232,96,18,213,104,235,135,71,248,105,85,20,59,64,216,251,203,20,93,211,39,33,219,108,37,102,239,50,145,164,216,19,109,89,194,106,43,24,204,231,4,211,118,145,60,235,189,49,202,154,56,206,27,181,21,178,205,181,37,121,200,11,88,25,201,30,105,58,12,146,224,66,80,177,87,156,115,189,216,177,116,210,213,97,121,214,113,33,81,3,179,215,213,212,128,38,102,188,130,164,28,146,244,214,157,43,254,104,251,32,6,149,162,174,193,91,9,45,107,12,238,72,69,163,14,13,252,119,127,30,57,225,114,95,154,18,59,52,179,79,134,196,82,44,104,198,197,176,114,85,180,28,111,147,211,0,8,48,149,72,155,77,169,24,232,157,105,15,212,84,91,234,121,152,204,209,150,14,245,126,41,112,202,144,21,94,229,133,34,184,101,187,165,204,198,235,69,195,59,210,226,145,153,168,204,55,204,247,210,233,131,82,224,4,22,212,70,224,143,11,94,7,21,75,63,246,69,232,102,240,121,38,63,81,244,100,242,53,93,159,195,80,249,220,30,112,181,65,240,189,196,56,23,140,7,126,135,202,69,48,74,31,31,51,9,97,4,136,221,227,53,156,155,226,200,30,212,80,50,138,232,150,174,94,33,66,200,66,4,179,252,149,29,92,90,51,143,113,173,61,137,96,186,86,159,30,25,186,178,41,135,166,162,236,92,84,174,109,220,58,125,69,197,222,59,188,120,246,243,219,55,245,86,250,106,98,221,234,236,173,206,166,12,100,176,53,30,162,173,121,192,119,77,155,178,160,35,107,28,120,91,115,128,47,129,54,229,64,71,214,56,24,172,228,160,198,204,65,43,226,49,139,122,111,2,107,169,245,140,221,104,90,42,96,149,191,5,218,144,87,142,157,207,237,80,112,123,246,11,101,84,156,190,131,26,216,178,122,91,176,160,66,24,186,114,42,213,232,60,61,86,27,28,120,62,67,63,238,236,104,235,151,16,59,232,184,78,201,152,186,32,136,58,252,117,190,219,165,70,189,174,188,16,81,47,60,148,134,238,119,242,24,230,233,4,156,82,116,11,185,24,72,49,231,70,197,187,95,120,245,76,180,37,228,196,182,195,189,33,6,50,205,1,100,31,183,45,163,192,53,210,157,99,137,139,63,127,97,123,103,89,85,225,86,193,9,96,136,47,16,121,242,195,228,7,138,174,41,12,42,241,159,206,36,96,167,62,245,145,28,179,130,89,246,197,78,17,147,74,245,45,151,69,30,143,74,135,141,37,172,199,10,81,20,190,56,83,233,234,90,201,44,119,125,22,0,139,229,199,238,205,44,34,72,147,119,242,249,171,50,24,24,58,252,121,81,38,230,83,134,240,3,8,168,244,49,164,230,244,191,244,142,143,141,15,93,163,109,32,216,40,54,25,182,47,222,67,250,187,204,131,5,248,156,55,252,48,106,244,255,35,193,153,156,134,76,204,100,100,140,193,137,222,239,170,183,128,67,223,42,144,40,152,210,186,60,227,20,65,146,211,67,21,123,0,249,166,148,35,115,178,33,200,56,143,86,48,75,232,75,25,137,28,162,40,139,254,39,158,94,185,207,198,182,197,33,98,38,187,202,188,70,16,61,23,194,200,230,244,218,213,170,72,73,212,30,75,188,44,162,182,253,177,44,34,139,147,178,46,194,115,246,108,7,95,212,113,30,67,146,87,114,242,159,132,110,242,160,33,75,112,87,219,123,38,127,209,178,203,53,111,8,30,69,120,41,79,221,228,37,192,163,86,208,210,222,245,77,247,71,209,214,146,247,53,61,243,71,17,86,35,207,78,182,153,157,219,220,206,53,94,45,207,229,197,243,34,27,78,141,51,111,86,174,141,10,235,91,44,254,11,247,155,148,223,80,65,0,0 }; +const uint8_t JS_CONTROLS_GZIP[4312] PROGMEM = { 31,139,8,0,210,8,51,99,2,255,197,27,105,119,219,56,238,123,126,133,162,246,213,242,198,241,209,107,58,118,148,62,215,113,91,239,228,218,196,153,206,219,78,55,79,182,233,88,47,178,164,145,228,164,153,212,255,125,65,240,16,169,195,118,146,153,221,47,141,5,130,32,136,131,0,1,118,28,248,113,98,92,12,46,7,199,131,225,160,123,120,249,233,98,96,191,108,54,59,99,49,112,214,63,60,233,30,0,172,37,96,167,7,221,97,255,242,228,227,199,243,254,208,110,169,184,253,223,134,253,227,3,70,163,165,192,135,131,97,255,208,86,0,167,64,49,67,15,65,233,34,131,203,30,133,188,212,145,122,12,235,101,138,245,225,98,56,60,57,182,95,233,120,28,218,106,190,74,49,15,187,31,128,137,215,58,34,3,182,154,175,83,188,243,47,131,97,239,115,255,204,126,163,163,74,120,171,249,70,193,62,28,28,0,236,109,6,151,65,91,205,183,41,230,241,197,209,7,128,253,164,99,114,104,171,249,147,34,46,144,35,40,228,244,98,104,191,211,177,149,145,86,243,93,58,227,211,89,247,244,179,253,51,7,116,15,14,24,228,242,244,100,112,76,81,249,64,239,176,223,61,227,200,173,230,207,202,138,221,15,118,43,163,16,6,83,20,114,222,63,236,247,128,90,70,39,2,220,82,180,114,114,58,28,80,249,103,212,34,192,45,69,45,71,3,0,100,180,130,176,150,162,147,163,238,111,118,43,163,15,132,181,84,85,12,251,167,118,43,171,9,4,182,20,61,124,234,94,124,234,219,173,140,30,56,180,165,168,161,219,235,81,219,200,168,128,67,91,239,84,193,156,118,207,186,195,19,80,227,207,89,217,200,145,150,42,238,193,81,31,60,42,35,111,10,108,41,80,233,48,7,39,95,142,165,187,28,246,63,14,165,91,156,13,62,125,30,74,227,239,245,143,135,96,75,66,110,189,203,225,197,217,191,46,78,6,231,125,73,170,119,217,63,234,159,117,15,83,247,235,93,158,246,97,214,217,224,87,152,250,82,2,191,244,135,221,243,211,207,221,67,133,252,229,249,197,241,199,195,147,47,218,26,189,238,217,217,201,80,58,75,239,178,123,56,248,119,247,12,52,248,86,130,14,186,103,191,72,195,239,93,30,159,28,195,246,223,188,233,220,56,145,113,21,57,225,236,192,73,28,219,39,183,70,55,138,156,59,171,138,35,51,39,238,142,199,196,179,167,142,23,19,4,197,158,59,33,81,47,240,19,215,95,4,139,152,15,77,23,254,56,113,3,223,24,7,94,16,245,60,39,142,45,252,57,152,84,239,249,15,251,120,49,31,145,72,194,59,241,173,155,140,103,10,158,19,19,85,102,237,136,36,139,200,55,225,159,63,22,129,27,19,179,195,81,184,8,5,2,153,147,200,241,38,114,56,149,167,192,8,73,66,162,200,189,33,145,68,74,229,43,144,110,73,226,196,225,204,241,18,137,36,229,45,112,226,133,63,245,130,91,133,14,19,191,24,31,59,81,20,164,243,133,42,196,176,227,185,127,58,145,235,75,4,170,152,54,255,77,181,34,16,39,78,116,109,118,38,100,234,44,188,68,0,205,206,114,185,69,181,112,75,70,113,48,190,238,40,191,65,37,62,25,39,100,162,40,235,11,25,157,195,16,73,134,46,72,200,246,23,158,151,106,42,34,127,44,72,156,156,68,46,241,19,135,130,78,73,52,119,227,24,126,89,213,251,229,150,196,140,157,27,242,73,24,9,12,121,193,216,241,206,147,32,114,174,72,61,38,201,32,33,115,203,36,113,184,112,209,150,98,179,246,207,243,147,227,122,156,192,78,175,220,233,157,37,77,172,90,237,40,132,35,88,63,136,20,218,46,88,1,90,25,172,56,65,147,212,214,186,42,92,43,37,222,113,167,150,156,186,141,251,173,222,167,180,144,169,208,137,98,146,98,85,59,76,182,233,146,95,221,201,55,96,146,129,191,126,203,242,235,68,9,136,224,185,53,9,198,139,57,72,174,90,119,38,19,203,252,135,89,173,7,211,41,56,206,115,203,124,22,5,183,240,61,75,230,158,101,154,85,234,118,231,32,226,69,220,7,227,136,0,135,147,81,105,103,113,238,97,47,73,180,32,182,109,103,53,92,189,47,209,57,7,215,199,94,0,123,100,172,72,186,192,80,68,230,193,13,97,222,105,162,219,237,94,69,132,248,102,30,21,54,165,225,69,100,82,128,197,118,136,28,27,13,227,56,48,56,71,116,67,47,158,189,123,251,234,77,167,96,86,42,39,13,234,91,247,99,207,29,95,183,185,152,107,203,42,181,119,41,161,153,227,79,60,242,171,27,187,35,215,115,147,187,30,0,174,8,147,212,118,86,34,47,94,108,11,13,213,103,238,100,66,252,234,189,84,159,70,86,168,84,162,195,214,251,55,240,227,208,141,19,226,195,129,101,222,200,53,199,184,166,89,43,230,165,134,106,64,51,188,117,253,73,112,91,167,230,75,87,169,135,65,148,108,219,166,249,227,71,241,200,187,102,217,200,235,215,175,164,194,241,132,150,94,109,153,183,113,187,209,48,119,178,19,103,65,156,248,206,156,236,152,237,252,32,165,186,99,54,110,65,230,157,37,1,126,31,77,156,211,216,130,237,82,87,3,75,213,15,156,234,125,230,0,162,103,133,15,7,241,141,227,89,66,254,76,127,194,114,35,226,76,238,168,73,80,187,127,165,171,172,246,166,217,108,210,245,4,114,224,7,33,241,109,73,137,220,36,52,216,248,113,224,17,224,247,10,182,192,48,13,138,183,129,145,151,57,67,66,190,131,60,164,109,1,70,206,1,169,171,118,150,157,148,53,244,193,77,120,67,196,162,67,66,165,70,40,108,19,106,56,153,81,147,131,20,187,163,72,146,199,118,106,193,104,232,43,232,226,212,36,186,195,83,121,146,57,68,97,176,62,193,51,116,185,5,198,1,161,28,201,165,20,144,107,14,148,155,137,137,15,231,229,194,13,174,193,56,155,226,252,237,176,192,70,108,233,134,163,96,114,135,156,142,9,181,25,240,29,145,48,208,53,235,201,93,72,120,202,160,95,158,218,5,7,48,5,37,206,40,246,157,155,34,48,240,11,158,158,168,67,96,147,184,76,54,223,129,120,146,205,128,10,241,96,63,8,167,164,163,192,139,235,211,32,234,59,192,60,241,8,221,158,189,143,34,133,240,254,157,233,224,158,162,183,51,113,147,35,87,107,203,142,162,47,75,206,2,201,167,172,38,65,226,120,98,189,125,75,95,222,35,254,85,50,219,109,85,229,89,162,43,162,20,29,54,50,2,175,188,238,8,81,167,87,204,246,255,119,135,76,238,212,168,225,132,34,223,119,30,181,227,77,230,231,101,192,174,228,237,236,209,24,17,47,112,38,224,98,58,54,94,190,219,210,176,19,55,241,8,179,26,207,25,17,15,205,112,238,184,254,103,56,252,32,177,228,86,152,34,100,233,225,149,185,45,190,216,253,85,126,166,23,84,9,98,247,67,249,137,23,45,101,144,95,144,218,66,202,24,237,60,82,133,211,113,24,124,30,30,29,90,204,201,117,38,216,5,63,55,233,62,59,139,110,110,148,248,230,14,162,65,130,135,129,62,9,22,227,25,202,190,157,30,62,213,123,82,15,35,66,213,126,192,18,95,42,202,69,146,208,211,20,18,3,139,147,168,209,195,22,148,82,67,42,160,211,199,208,224,161,122,137,89,70,70,189,162,208,176,126,119,236,68,130,28,65,144,101,232,142,135,12,102,200,210,218,137,148,59,253,189,145,240,194,233,163,101,23,58,19,182,233,139,211,218,99,101,87,68,67,149,29,178,232,61,157,69,122,171,126,58,147,26,149,28,155,209,211,217,196,251,254,211,249,212,201,228,24,29,61,157,81,90,178,120,58,159,26,149,28,155,227,167,179,201,42,38,79,103,52,67,103,165,119,99,105,112,189,243,69,52,165,63,199,184,110,109,231,242,128,28,217,97,247,67,158,166,158,120,56,97,136,17,104,207,115,247,247,28,35,240,231,64,137,44,66,187,2,56,108,31,82,162,59,102,181,98,204,34,50,181,43,148,130,2,175,236,243,15,60,102,118,204,189,134,179,191,215,0,146,133,25,141,92,115,226,222,24,238,4,151,210,136,237,53,96,132,206,165,243,108,32,80,215,9,192,215,136,76,122,236,219,130,203,127,16,182,169,154,150,85,76,254,44,211,9,93,182,178,3,216,83,215,131,100,77,205,238,249,253,250,185,149,204,220,24,248,73,18,184,81,209,141,153,85,200,241,33,209,166,251,222,77,130,93,118,150,154,16,240,169,49,153,8,55,107,170,1,208,124,2,216,177,195,40,152,135,144,145,15,157,145,145,4,6,155,72,127,193,61,132,150,152,12,184,142,130,77,190,103,121,220,54,221,79,157,33,193,12,11,62,33,39,112,60,18,81,18,51,39,161,52,141,73,64,98,195,15,18,131,124,135,123,159,209,254,253,119,188,219,20,216,92,129,73,177,178,170,84,63,164,199,48,163,199,50,9,198,54,3,81,241,62,139,33,231,25,39,92,7,58,106,135,125,166,74,11,66,188,163,82,189,177,159,230,206,150,208,221,150,89,49,208,4,236,138,128,50,139,160,3,2,194,22,35,20,123,95,192,48,169,0,192,94,131,209,220,55,243,59,58,26,148,110,7,192,207,173,202,179,216,171,20,109,129,231,77,212,244,203,113,152,17,204,93,223,212,3,38,189,142,26,156,62,168,114,253,2,165,72,101,43,228,246,217,253,237,239,223,167,243,125,197,62,233,229,114,253,10,229,88,114,13,134,254,119,75,52,183,151,220,241,58,236,159,110,232,9,238,164,200,11,118,76,195,245,195,69,194,188,151,123,68,236,254,73,44,112,91,225,32,200,76,156,144,112,13,55,216,106,89,127,214,203,26,226,87,238,93,223,236,92,113,82,132,58,184,177,194,125,33,194,129,243,155,43,43,63,183,102,34,44,141,142,186,123,101,186,67,109,60,214,98,251,200,73,102,245,40,88,128,227,211,74,12,80,132,29,211,154,39,45,158,88,213,70,11,203,31,249,213,234,225,34,158,89,247,223,219,73,92,187,107,167,210,128,115,42,83,185,125,12,231,10,223,74,243,170,93,32,176,175,223,254,226,245,68,7,136,170,79,180,34,170,108,92,118,38,176,238,178,62,148,175,172,117,103,14,63,165,47,137,181,4,53,185,77,111,102,220,224,196,210,192,208,201,173,127,26,5,33,132,149,59,171,194,239,181,231,201,157,71,42,85,150,8,168,132,132,1,195,48,183,96,117,70,49,75,242,90,178,226,214,1,17,181,105,190,111,182,91,15,99,45,126,50,111,44,169,42,161,133,172,105,158,186,197,18,170,75,90,144,182,114,179,152,151,91,233,15,101,106,205,4,71,48,149,82,235,255,110,147,252,170,77,105,193,49,169,16,163,5,205,199,90,133,78,233,49,108,41,87,126,204,255,32,84,252,69,188,101,72,173,103,174,140,56,30,232,195,187,112,53,101,90,211,227,132,229,132,18,115,99,37,141,92,58,245,212,13,231,136,61,70,31,188,52,146,175,124,100,57,203,99,96,165,249,177,204,235,164,30,195,121,90,160,72,95,123,180,243,104,172,130,68,151,188,114,22,87,228,47,146,125,150,214,99,54,192,226,69,129,139,12,142,250,24,103,163,27,91,9,174,73,48,56,63,57,199,98,164,149,173,80,39,16,117,219,230,78,116,131,93,148,76,124,18,141,89,189,210,109,94,248,215,126,112,235,27,212,144,233,37,4,111,14,166,152,148,186,7,29,223,183,69,105,240,197,11,9,220,211,222,246,64,186,19,5,99,18,199,125,223,129,184,54,177,68,181,61,67,71,157,163,17,211,10,227,44,253,18,213,89,45,255,162,27,43,83,85,232,248,196,211,20,165,78,43,208,82,58,97,213,137,192,99,53,165,201,81,190,74,216,183,234,86,110,157,120,22,220,130,142,104,62,155,31,156,65,44,177,178,130,177,109,45,54,85,239,249,214,245,54,40,139,67,187,242,141,1,127,225,176,203,223,20,136,207,244,1,129,128,164,175,5,4,68,190,13,16,0,246,24,64,124,201,222,63,221,5,17,173,70,157,13,115,71,121,64,193,235,209,240,93,21,173,186,194,45,164,188,11,166,21,110,85,54,37,127,156,177,85,28,149,242,177,85,98,147,180,114,128,37,147,93,30,218,47,241,203,172,214,9,237,10,40,21,1,94,10,248,218,252,198,115,22,189,54,192,146,5,122,58,50,168,79,207,68,158,122,21,98,178,43,185,210,45,155,3,123,206,21,177,149,142,130,218,106,103,252,177,86,46,175,24,48,223,0,122,182,72,20,56,28,79,180,236,209,16,123,184,50,28,11,240,23,143,7,142,221,121,176,16,244,4,41,43,25,94,108,144,156,179,101,86,112,142,201,196,42,214,253,50,206,149,85,104,16,90,177,6,11,221,171,22,73,54,89,68,84,188,10,151,160,53,170,149,43,56,163,13,214,96,209,124,149,162,121,184,95,169,236,13,22,82,27,12,108,184,230,198,19,136,4,120,184,241,159,58,217,17,133,41,212,240,162,158,65,89,132,197,203,201,170,39,61,230,106,249,5,197,249,200,70,224,62,205,251,158,78,204,79,140,137,27,163,243,130,239,220,203,254,43,239,174,42,141,85,86,84,109,151,109,33,28,175,223,67,56,214,54,161,69,230,114,194,211,13,8,79,203,8,211,154,117,57,233,13,228,30,142,202,72,211,246,66,57,105,111,3,210,94,25,105,236,8,148,211,142,54,160,29,21,208,214,94,186,136,107,35,183,152,152,190,179,64,131,137,217,139,11,246,96,138,150,76,179,167,96,106,58,64,96,124,205,44,39,227,39,14,172,114,67,244,195,80,35,162,60,183,16,68,244,23,40,130,146,235,175,165,165,63,101,74,201,201,130,23,223,82,43,189,250,173,98,35,139,3,49,46,76,199,69,91,34,67,187,153,167,93,194,214,26,242,162,91,193,222,64,40,125,135,244,101,134,27,31,184,241,24,124,149,151,193,17,201,46,13,55,202,91,205,241,200,86,194,142,22,251,244,24,4,39,6,221,64,232,57,99,98,53,254,243,251,193,78,227,170,102,98,120,101,189,16,236,241,224,197,172,93,16,200,212,48,77,33,60,130,45,151,188,147,82,26,1,75,38,118,240,32,83,25,28,59,158,55,114,198,215,231,4,114,234,109,219,164,90,49,153,189,170,226,17,147,82,110,133,32,150,194,222,84,20,38,11,13,103,171,124,221,26,95,181,179,92,138,151,52,178,216,148,202,25,115,162,251,52,17,182,215,102,214,239,77,3,115,104,90,203,207,100,209,59,180,156,223,54,205,14,130,110,129,205,98,114,116,132,18,162,127,17,159,10,166,100,97,165,220,90,169,254,248,33,99,110,121,117,120,191,169,149,111,55,161,251,126,21,217,244,153,14,123,142,4,218,95,253,196,71,127,245,192,239,216,185,142,125,105,175,61,211,253,123,252,235,9,44,127,22,191,165,96,183,79,182,21,217,111,83,46,42,168,201,29,85,179,198,152,30,21,118,37,185,13,232,211,233,197,220,143,5,6,85,35,69,112,162,137,145,176,55,80,180,171,83,156,151,99,35,111,246,70,116,6,89,135,199,220,107,0,104,111,22,53,104,235,135,103,248,105,85,20,59,64,216,251,203,20,93,211,39,33,143,217,74,204,222,127,34,73,177,39,218,178,132,213,86,48,88,204,9,94,219,197,229,89,239,141,81,214,132,59,111,212,86,200,54,215,114,242,144,7,176,50,146,117,105,58,12,146,224,66,80,177,87,248,185,94,236,200,121,186,58,44,125,29,23,18,53,48,123,93,77,13,104,226,141,87,144,148,67,146,222,58,191,226,47,204,247,98,80,41,234,26,162,149,208,178,198,224,150,84,52,234,208,192,127,119,111,35,39,204,247,165,41,177,125,51,251,100,72,44,197,146,102,92,12,43,87,101,203,241,54,57,77,128,0,83,201,180,217,148,154,129,209,153,246,64,77,181,165,94,132,201,2,109,101,95,239,151,2,167,12,89,225,85,30,40,130,91,182,91,202,108,188,94,52,188,35,45,30,153,137,202,124,203,124,47,131,62,40,5,60,176,164,54,2,127,92,136,58,168,88,250,177,43,82,55,131,207,51,185,71,81,207,228,107,186,62,135,161,242,185,61,224,106,163,224,123,133,113,46,24,15,252,30,149,139,96,148,190,113,102,18,194,12,16,187,199,107,56,55,133,203,238,53,80,50,138,232,114,71,175,16,33,220,66,4,179,252,149,29,28,90,11,143,113,173,61,137,96,186,86,159,30,25,186,178,41,135,166,162,236,66,84,174,109,220,58,125,69,197,222,59,188,120,246,243,219,55,205,78,250,106,98,221,234,236,173,206,166,12,100,176,53,30,162,71,243,128,239,154,54,101,65,71,214,56,240,30,205,1,190,4,218,148,3,29,89,227,96,180,146,131,6,51,7,173,136,199,44,234,189,9,172,165,214,51,117,163,121,165,132,85,254,22,104,67,94,57,118,49,183,99,193,237,201,47,148,81,225,125,123,13,176,101,245,180,96,73,133,48,116,197,43,213,236,60,117,171,13,28,158,207,208,221,157,185,182,126,8,49,71,199,117,42,198,220,5,65,52,225,175,243,221,174,180,154,77,229,133,136,122,224,161,52,244,184,83,196,48,191,78,128,151,98,88,40,196,64,138,5,39,42,158,253,34,170,103,178,45,33,39,182,29,30,13,49,145,105,143,224,246,113,221,49,74,66,35,221,57,150,184,248,243,23,182,119,118,171,42,221,42,4,1,76,241,5,34,191,252,48,249,129,162,27,10,131,74,254,167,51,9,216,105,76,125,32,199,172,96,150,125,177,83,198,164,82,125,43,100,145,231,163,50,96,99,9,235,161,66,20,133,47,206,84,186,186,86,50,43,92,159,37,192,98,249,169,123,181,136,8,210,228,157,124,254,170,12,6,198,14,127,94,148,201,249,148,33,252,0,2,42,125,76,169,57,253,47,131,195,67,227,67,223,232,26,8,54,202,77,134,237,139,247,144,254,46,243,96,9,62,231,13,63,140,6,253,127,79,224,147,243,144,137,153,76,140,41,4,209,187,109,245,20,112,232,91,5,18,5,115,90,151,103,156,34,72,114,186,175,98,143,224,190,41,229,200,130,108,8,50,46,162,21,44,18,250,82,70,34,135,40,202,178,255,54,168,87,238,179,185,109,121,138,152,185,93,101,94,35,136,158,11,97,100,11,122,237,106,85,164,34,106,143,21,94,22,81,219,254,88,22,145,197,73,89,23,225,119,246,108,7,95,212,113,30,66,146,87,114,138,159,132,110,242,160,33,75,112,91,219,123,230,254,162,221,46,215,188,33,120,16,225,220,61,117,147,151,0,15,90,65,187,246,174,111,186,63,136,182,118,121,95,211,51,127,16,97,53,243,236,101,155,217,133,205,237,66,227,213,238,185,188,120,94,102,195,169,113,22,205,42,180,81,97,125,203,229,127,1,88,119,76,11,253,65,0,0 }; diff --git a/src/dataGraphJS.h b/src/dataGraphJS.h index 72ca374..1ebe259 100644 --- a/src/dataGraphJS.h +++ b/src/dataGraphJS.h @@ -16,4 +16,4 @@ function renderGraphSvg(dataArray,renderId){var figure=document.getElementById(r var svg=document.createElementNS("http://www.w3.org/2000/svg","svg");svg.setAttribute("viewBox","0 0 640 440");svg.setAttribute("preserveAspectRatio","xMidYMid meet");lineGraph(svg,(function(data,min,max){var i=0;return{hasNext:function(){return i Control

    Control
    Offline


    )====="; -const uint8_t HTML_INDEX_GZIP[916] PROGMEM = { 31,139,8,0,206,101,43,99,2,255,133,148,235,115,162,58,20,192,255,21,174,159,238,157,221,22,95,181,237,174,56,19,20,108,85,68,64,240,241,45,64,42,193,240,40,9,162,254,245,155,128,157,238,157,189,211,235,12,201,201,57,191,243,200,17,206,240,175,137,57,94,239,86,154,20,177,132,140,134,245,42,13,35,4,195,209,48,65,12,74,65,4,11,138,152,82,178,183,187,167,209,144,97,70,208,104,156,165,172,200,200,80,110,142,13,153,194,4,41,39,140,170,60,43,152,20,112,4,165,76,105,85,56,100,145,18,162,19,14,208,93,125,248,46,225,20,51,12,201,29,13,32,65,74,167,53,26,18,156,30,165,2,17,165,69,35,238,30,148,76,194,60,68,75,138,10,244,166,132,144,193,31,56,129,7,36,231,233,225,167,15,41,26,244,191,99,79,53,237,170,61,159,30,50,192,127,75,199,141,52,247,192,37,85,28,129,53,6,134,216,179,133,245,188,22,130,58,13,213,181,171,1,176,152,174,198,242,57,82,45,174,28,171,177,163,207,150,220,58,152,113,223,195,43,87,174,68,188,49,24,240,53,20,158,102,46,162,14,18,190,232,189,113,80,18,237,73,196,91,233,170,225,105,110,205,118,188,141,221,237,188,91,93,130,237,158,254,46,30,167,231,149,118,207,227,114,179,155,221,78,226,116,59,165,83,219,248,195,229,89,119,58,183,184,31,231,57,163,139,188,170,220,155,150,143,34,190,150,218,206,154,24,64,205,64,239,184,82,171,235,19,126,152,95,113,118,62,244,151,94,224,246,74,109,246,82,223,116,51,91,216,109,11,96,224,134,78,173,32,149,163,147,171,232,73,167,2,96,18,6,170,133,177,143,106,91,216,118,220,142,174,126,211,116,45,10,52,227,219,75,190,171,68,35,212,157,227,218,170,167,198,235,104,39,207,38,20,28,198,154,195,250,36,223,202,167,231,120,97,237,103,131,119,253,153,245,142,17,184,196,157,243,214,157,251,86,95,245,178,106,82,189,155,187,131,118,62,30,55,125,188,27,144,21,212,219,3,251,221,120,218,189,50,179,180,125,3,94,7,231,216,167,37,157,128,141,28,22,57,81,15,253,199,120,53,120,30,4,91,237,201,95,129,14,114,39,104,222,21,213,205,182,182,190,121,177,143,187,173,77,204,100,121,217,111,244,246,222,2,23,99,162,245,22,107,208,89,172,181,190,55,121,189,154,49,104,155,177,123,158,95,193,133,203,213,89,123,120,70,149,248,43,188,182,237,69,237,253,148,251,173,115,230,119,237,124,159,30,129,17,131,243,242,210,174,150,78,251,108,234,214,197,184,102,213,114,146,117,12,135,86,70,156,85,198,194,93,159,131,64,148,176,15,53,111,23,234,203,211,62,181,123,187,237,140,128,151,176,23,94,30,114,63,97,215,93,87,175,246,206,195,41,72,144,255,24,87,176,110,169,70,244,245,209,41,173,100,60,254,237,77,166,236,66,16,141,16,98,205,75,44,7,148,202,105,86,36,144,224,43,186,231,167,255,131,107,101,3,210,160,192,57,147,104,17,40,114,76,229,43,202,89,118,159,224,244,62,230,70,185,177,254,65,81,130,67,84,124,137,28,10,152,71,95,18,65,243,173,211,47,33,6,125,31,133,183,111,254,223,164,92,15,19,105,232,103,225,69,202,82,146,193,80,137,225,9,54,246,31,148,193,130,253,253,207,79,78,132,248,36,102,79,191,17,37,28,42,9,196,233,11,119,71,197,231,200,105,40,154,195,84,16,60,165,195,32,43,169,20,16,72,169,66,160,143,200,200,124,123,227,157,69,188,8,142,113,90,174,131,222,92,163,226,150,160,241,16,69,243,52,168,248,76,91,100,213,205,216,18,98,121,247,86,18,210,204,46,62,170,110,97,74,34,80,126,113,154,194,143,88,45,46,226,3,100,56,75,165,79,241,78,64,127,68,41,201,103,66,1,220,154,247,17,233,119,213,127,23,240,177,137,198,214,119,172,103,247,47,103,53,186,226,210,5,0,0 }; +const uint8_t HTML_INDEX_GZIP[916] PROGMEM = { 31,139,8,0,210,8,51,99,2,255,133,148,235,115,162,58,20,192,255,21,174,159,238,157,221,22,95,181,237,174,56,19,20,108,85,68,64,240,241,45,64,42,193,240,40,9,162,254,245,155,128,157,238,157,189,211,235,12,201,201,57,191,243,200,17,206,240,175,137,57,94,239,86,154,20,177,132,140,134,245,42,13,35,4,195,209,48,65,12,74,65,4,11,138,152,82,178,183,187,167,209,144,97,70,208,104,156,165,172,200,200,80,110,142,13,153,194,4,41,39,140,170,60,43,152,20,112,4,165,76,105,85,56,100,145,18,162,19,14,208,93,125,248,46,225,20,51,12,201,29,13,32,65,74,167,53,26,18,156,30,165,2,17,165,69,35,238,30,148,76,194,60,68,75,138,10,244,166,132,144,193,31,56,129,7,36,231,233,225,167,15,41,26,244,191,99,79,53,237,170,61,159,30,50,192,127,75,199,141,52,247,192,37,85,28,129,53,6,134,216,179,133,245,188,22,130,58,13,213,181,171,1,176,152,174,198,242,57,82,45,174,28,171,177,163,207,150,220,58,152,113,223,195,43,87,174,68,188,49,24,240,53,20,158,102,46,162,14,18,190,232,189,113,80,18,237,73,196,91,233,170,225,105,110,205,118,188,141,221,237,188,91,93,130,237,158,254,46,30,167,231,149,118,207,227,114,179,155,221,78,226,116,59,165,83,219,248,195,229,89,119,58,183,184,31,231,57,163,139,188,170,220,155,150,143,34,190,150,218,206,154,24,64,205,64,239,184,82,171,235,19,126,152,95,113,118,62,244,151,94,224,246,74,109,246,82,223,116,51,91,216,109,11,96,224,134,78,173,32,149,163,147,171,232,73,167,2,96,18,6,170,133,177,143,106,91,216,118,220,142,174,126,211,116,45,10,52,227,219,75,190,171,68,35,212,157,227,218,170,167,198,235,104,39,207,38,20,28,198,154,195,250,36,223,202,167,231,120,97,237,103,131,119,253,153,245,142,17,184,196,157,243,214,157,251,86,95,245,178,106,82,189,155,187,131,118,62,30,55,125,188,27,144,21,212,219,3,251,221,120,218,189,50,179,180,125,3,94,7,231,216,167,37,157,128,141,28,22,57,81,15,253,199,120,53,120,30,4,91,237,201,95,129,14,114,39,104,222,21,213,205,182,182,190,121,177,143,187,173,77,204,100,121,217,111,244,246,222,2,23,99,162,245,22,107,208,89,172,181,190,55,121,189,154,49,104,155,177,123,158,95,193,133,203,213,89,123,120,70,149,248,43,188,182,237,69,237,253,148,251,173,115,230,119,237,124,159,30,129,17,131,243,242,210,174,150,78,251,108,234,214,197,184,102,213,114,146,117,12,135,86,70,156,85,198,194,93,159,131,64,148,176,15,53,111,23,234,203,211,62,181,123,187,237,140,128,151,176,23,94,30,114,63,97,215,93,87,175,246,206,195,41,72,144,255,24,87,176,110,169,70,244,245,209,41,173,100,60,254,237,77,166,236,66,16,141,16,98,205,75,44,7,148,202,105,86,36,144,224,43,186,231,167,255,131,107,101,3,210,160,192,57,147,104,17,40,114,76,229,43,202,89,118,159,224,244,62,230,70,185,177,254,65,81,130,67,84,124,137,28,10,152,71,95,18,65,243,173,211,47,33,6,125,31,133,183,111,254,223,164,92,15,19,105,232,103,225,69,202,82,146,193,80,137,225,9,54,246,31,148,193,130,253,253,207,79,78,132,248,36,102,79,191,17,37,28,42,9,196,233,11,119,71,197,231,200,105,40,154,195,84,16,60,165,195,32,43,169,20,16,72,169,66,160,143,200,200,124,123,227,157,69,188,8,142,113,90,174,131,222,92,163,226,150,160,241,16,69,243,52,168,248,76,91,100,213,205,216,18,98,121,247,86,18,210,204,46,62,170,110,97,74,34,80,126,113,154,194,143,88,45,46,226,3,100,56,75,165,79,241,78,64,127,68,41,201,103,66,1,220,154,247,17,233,119,213,127,23,240,177,137,198,214,119,172,103,247,47,103,53,186,226,210,5,0,0 }; diff --git a/src/dataNormalizeCSS.h b/src/dataNormalizeCSS.h index 7a6156a..5dbfb34 100644 --- a/src/dataNormalizeCSS.h +++ b/src/dataNormalizeCSS.h @@ -2,4 +2,4 @@ const char CSS_NORMALIZE[] PROGMEM = R"=====( html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} )====="; -const uint8_t CSS_NORMALIZE_GZIP[861] PROGMEM = { 31,139,8,0,206,101,43,99,2,255,149,84,237,142,155,58,16,125,149,104,171,74,183,146,137,216,237,199,94,25,221,39,137,242,99,176,7,112,227,47,217,38,155,20,241,238,119,12,132,36,219,108,165,254,2,6,123,230,204,57,103,166,75,70,15,141,179,169,104,192,40,125,230,17,108,44,34,6,213,84,133,137,69,194,83,42,162,250,133,5,200,159,125,76,252,185,44,63,87,197,27,214,7,149,30,255,29,107,39,207,131,129,208,42,203,203,17,66,82,66,35,131,168,36,50,137,9,148,142,172,81,173,0,159,148,179,249,181,15,200,26,231,18,6,214,33,200,252,104,131,235,61,51,160,44,51,104,123,102,225,200,34,138,233,70,236,13,165,63,15,82,69,175,225,204,107,237,196,97,132,94,42,199,4,216,35,68,230,131,107,3,198,200,142,84,213,173,39,149,213,202,98,49,93,168,142,152,161,129,46,64,171,214,242,26,34,230,191,115,34,110,93,250,103,39,136,153,224,116,220,127,89,83,88,103,177,234,80,181,93,162,238,118,157,146,18,237,158,37,52,244,59,225,221,185,17,134,26,196,33,247,98,101,33,156,118,129,167,64,12,123,8,104,211,8,28,168,163,35,145,195,59,71,112,6,215,167,12,33,211,86,215,97,151,84,210,184,31,106,23,136,147,162,118,41,57,195,159,253,105,35,233,21,229,88,179,72,240,108,59,43,248,54,131,170,157,150,163,108,236,28,140,233,172,145,171,68,61,138,177,123,94,130,36,25,127,65,83,45,42,109,127,188,162,217,148,35,125,30,110,16,243,79,77,83,86,51,236,79,101,89,142,209,128,214,55,41,254,37,181,99,79,40,122,127,19,125,253,254,185,154,104,190,176,84,121,23,85,86,142,7,36,142,168,225,15,185,207,153,146,243,188,216,126,71,147,115,15,75,215,197,246,37,71,148,105,23,58,136,163,120,108,39,153,120,32,239,124,25,50,131,141,118,111,124,214,100,156,141,117,113,226,51,117,248,173,244,167,177,11,67,97,220,47,162,243,148,241,42,219,242,44,51,233,145,67,213,7,225,85,113,79,41,215,74,208,39,55,10,71,198,62,212,146,76,135,44,130,241,119,3,101,156,117,164,183,64,182,190,85,87,174,8,213,88,247,212,161,101,202,250,62,49,231,211,108,125,34,132,236,206,242,136,145,89,96,152,101,80,182,163,217,76,83,134,245,99,157,181,57,211,21,222,81,69,85,107,188,84,152,83,14,211,212,78,54,108,92,48,179,81,151,19,29,173,131,205,4,100,151,206,30,255,123,154,227,79,123,118,27,164,193,194,244,46,70,82,25,69,193,225,178,27,192,123,4,42,34,144,207,73,42,209,135,72,45,120,167,136,214,176,148,220,209,188,0,97,148,251,219,226,107,112,88,46,73,108,160,215,105,185,196,249,164,96,227,68,31,11,101,45,45,140,233,222,239,241,213,44,149,7,41,179,168,229,56,29,29,110,29,106,137,7,208,227,109,63,162,67,113,32,225,223,183,14,180,27,158,242,72,174,46,89,167,243,244,190,198,114,199,246,166,198,240,180,39,116,11,55,19,180,34,122,101,139,91,241,63,60,79,107,225,254,252,176,0,159,252,119,39,3,113,46,186,199,50,100,221,27,133,90,86,127,242,255,229,226,95,141,199,67,12,87,252,115,164,16,25,134,126,212,242,135,87,36,10,23,32,239,142,71,29,77,214,157,90,34,67,94,164,206,251,49,58,173,228,38,42,77,147,176,142,199,230,197,95,37,218,126,165,117,178,217,254,120,153,30,175,121,183,104,108,209,202,71,142,89,135,240,126,240,47,179,250,251,250,77,217,189,151,189,77,147,171,193,71,228,151,151,106,249,145,151,193,82,64,178,212,13,215,130,255,3,4,241,118,208,151,7,0,0 }; +const uint8_t CSS_NORMALIZE_GZIP[861] PROGMEM = { 31,139,8,0,210,8,51,99,2,255,149,84,237,142,155,58,16,125,149,104,171,74,183,146,137,216,237,199,94,25,221,39,137,242,99,176,7,112,227,47,217,38,155,20,241,238,119,12,132,36,219,108,165,254,2,6,123,230,204,57,103,166,75,70,15,141,179,169,104,192,40,125,230,17,108,44,34,6,213,84,133,137,69,194,83,42,162,250,133,5,200,159,125,76,252,185,44,63,87,197,27,214,7,149,30,255,29,107,39,207,131,129,208,42,203,203,17,66,82,66,35,131,168,36,50,137,9,148,142,172,81,173,0,159,148,179,249,181,15,200,26,231,18,6,214,33,200,252,104,131,235,61,51,160,44,51,104,123,102,225,200,34,138,233,70,236,13,165,63,15,82,69,175,225,204,107,237,196,97,132,94,42,199,4,216,35,68,230,131,107,3,198,200,142,84,213,173,39,149,213,202,98,49,93,168,142,152,161,129,46,64,171,214,242,26,34,230,191,115,34,110,93,250,103,39,136,153,224,116,220,127,89,83,88,103,177,234,80,181,93,162,238,118,157,146,18,237,158,37,52,244,59,225,221,185,17,134,26,196,33,247,98,101,33,156,118,129,167,64,12,123,8,104,211,8,28,168,163,35,145,195,59,71,112,6,215,167,12,33,211,86,215,97,151,84,210,184,31,106,23,136,147,162,118,41,57,195,159,253,105,35,233,21,229,88,179,72,240,108,59,43,248,54,131,170,157,150,163,108,236,28,140,233,172,145,171,68,61,138,177,123,94,130,36,25,127,65,83,45,42,109,127,188,162,217,148,35,125,30,110,16,243,79,77,83,86,51,236,79,101,89,142,209,128,214,55,41,254,37,181,99,79,40,122,127,19,125,253,254,185,154,104,190,176,84,121,23,85,86,142,7,36,142,168,225,15,185,207,153,146,243,188,216,126,71,147,115,15,75,215,197,246,37,71,148,105,23,58,136,163,120,108,39,153,120,32,239,124,25,50,131,141,118,111,124,214,100,156,141,117,113,226,51,117,248,173,244,167,177,11,67,97,220,47,162,243,148,241,42,219,242,44,51,233,145,67,213,7,225,85,113,79,41,215,74,208,39,55,10,71,198,62,212,146,76,135,44,130,241,119,3,101,156,117,164,183,64,182,190,85,87,174,8,213,88,247,212,161,101,202,250,62,49,231,211,108,125,34,132,236,206,242,136,145,89,96,152,101,80,182,163,217,76,83,134,245,99,157,181,57,211,21,222,81,69,85,107,188,84,152,83,14,211,212,78,54,108,92,48,179,81,151,19,29,173,131,205,4,100,151,206,30,255,123,154,227,79,123,118,27,164,193,194,244,46,70,82,25,69,193,225,178,27,192,123,4,42,34,144,207,73,42,209,135,72,45,120,167,136,214,176,148,220,209,188,0,97,148,251,219,226,107,112,88,46,73,108,160,215,105,185,196,249,164,96,227,68,31,11,101,45,45,140,233,222,239,241,213,44,149,7,41,179,168,229,56,29,29,110,29,106,137,7,208,227,109,63,162,67,113,32,225,223,183,14,180,27,158,242,72,174,46,89,167,243,244,190,198,114,199,246,166,198,240,180,39,116,11,55,19,180,34,122,101,139,91,241,63,60,79,107,225,254,252,176,0,159,252,119,39,3,113,46,186,199,50,100,221,27,133,90,86,127,242,255,229,226,95,141,199,67,12,87,252,115,164,16,25,134,126,212,242,135,87,36,10,23,32,239,142,71,29,77,214,157,90,34,67,94,164,206,251,49,58,173,228,38,42,77,147,176,142,199,230,197,95,37,218,126,165,117,178,217,254,120,153,30,175,121,183,104,108,209,202,71,142,89,135,240,126,240,47,179,250,251,250,77,217,189,151,189,77,147,171,193,71,228,151,151,106,249,145,151,193,82,64,178,212,13,215,130,255,3,4,241,118,208,151,7,0,0 }; diff --git a/src/dataSliderJS.h b/src/dataSliderJS.h index 89b3f16..83c9b4c 100644 --- a/src/dataSliderJS.h +++ b/src/dataSliderJS.h @@ -12,4 +12,4 @@ function sliderDiscrete_tmplt(){var tmplt='
    '+ function slider_move(parents,newW,sliderW,send){var slider_new_val=parseInt(Math.round((newW/sliderW)*100));var slider_fill=parents.find(".slider-fill");var slider_handle=parents.find(".slider-handle");var range=parents.find('input[type="range"]');range.next().html(newW);slider_fill.css("width",slider_new_val+"%");slider_handle.css({left:slider_new_val+"%",transition:"none","-webkit-transition":"none","-moz-transition":"none",});range.val(slider_new_val);if(parents.find(".slider-handle span").text()!=slider_new_val){parents.find(".slider-handle span").text(slider_new_val);var number=parents.attr("id").substring(2);if(send)websock.send("slvalue:"+slider_new_val+":"+number);}} )====="; -const uint8_t JS_SLIDER_GZIP[881] PROGMEM = { 31,139,8,0,206,101,43,99,2,255,237,86,77,143,218,48,16,189,243,43,88,107,187,196,93,240,210,61,18,204,165,85,165,30,122,106,165,86,90,173,144,73,156,141,69,112,162,216,129,182,44,255,189,227,143,132,36,192,106,219,83,15,61,37,246,60,143,223,204,60,123,156,84,50,210,34,151,195,114,189,137,151,37,147,79,252,75,38,98,94,6,138,103,60,210,121,137,247,91,86,14,97,148,140,149,181,44,119,34,214,105,61,200,147,68,113,61,142,170,82,106,63,247,65,168,168,228,154,143,173,59,63,25,26,15,244,250,232,54,108,123,163,198,74,236,111,208,88,156,107,103,114,255,1,38,25,79,116,216,221,199,34,122,115,132,179,40,13,18,31,93,32,198,91,188,183,28,129,130,78,133,194,161,29,17,86,20,92,198,65,119,241,82,111,138,12,54,195,161,141,128,58,104,34,0,56,18,178,168,244,131,254,89,112,138,172,21,61,142,106,198,109,32,34,110,14,53,225,36,34,203,168,251,239,66,38,198,114,196,165,76,198,25,63,143,116,182,35,54,99,43,126,193,169,53,1,210,84,207,18,93,110,89,70,11,86,42,254,73,234,192,78,17,152,50,97,182,24,146,72,169,0,217,74,160,113,179,238,22,189,233,19,116,64,83,142,75,56,203,192,179,82,5,147,8,19,205,127,248,173,13,26,135,7,28,186,242,202,0,109,242,74,241,56,223,201,161,206,171,40,85,154,149,224,186,31,250,184,169,41,199,123,145,4,156,172,42,173,115,73,41,189,199,123,168,30,148,96,152,176,76,241,240,48,48,177,67,196,92,106,85,215,157,248,49,36,202,72,126,210,84,201,170,188,45,73,15,108,84,217,2,120,101,214,136,174,56,13,46,74,121,180,118,199,169,65,189,160,31,34,128,207,44,22,138,173,50,30,3,25,8,172,237,130,82,93,86,252,36,188,58,36,22,199,239,51,102,202,33,212,132,65,118,182,220,7,180,201,183,252,99,69,219,57,115,57,121,226,223,41,39,246,251,252,12,181,76,205,62,241,87,147,120,174,30,166,143,206,212,142,89,242,93,147,24,48,77,58,169,48,132,251,184,57,109,167,243,230,230,234,20,129,166,8,227,189,159,54,92,3,159,172,113,31,218,189,123,108,54,194,195,193,242,171,138,94,132,117,90,128,90,224,84,83,194,121,239,148,1,145,86,166,72,201,205,222,103,82,232,54,168,125,208,189,149,168,193,206,92,98,199,86,169,237,9,139,168,138,153,33,229,172,112,189,184,209,33,188,14,226,60,170,54,64,3,27,197,31,185,189,254,24,252,215,127,47,188,19,117,122,85,255,11,250,28,252,129,60,207,74,237,111,132,116,24,212,155,13,207,119,53,123,3,216,127,58,154,199,98,59,140,140,240,41,242,74,88,140,110,7,103,230,93,147,90,204,239,192,114,9,226,175,232,197,25,147,235,70,139,185,233,3,139,233,252,206,126,157,179,198,37,114,127,40,244,101,182,28,79,227,233,22,2,42,240,205,39,31,190,144,35,255,94,57,214,167,211,246,62,51,157,146,50,175,64,138,129,89,122,231,151,226,183,239,166,83,220,17,185,237,215,189,91,163,219,176,91,96,223,180,207,195,155,174,221,244,226,215,28,10,247,248,32,210,180,76,76,82,189,201,44,227,203,221,186,27,243,165,150,189,55,135,116,118,138,5,209,50,169,132,73,244,12,201,92,66,171,69,147,29,95,173,133,158,28,77,232,104,219,228,191,206,25,14,53,113,243,182,232,110,99,207,245,75,41,26,182,159,9,248,138,246,150,239,95,189,182,191,175,73,188,172,54,43,120,163,213,62,152,214,37,220,246,112,219,16,85,173,148,46,133,124,10,238,45,69,43,35,8,93,229,209,154,152,1,188,95,50,240,83,241,25,186,237,103,14,166,156,103,211,144,126,3,128,124,107,46,79,11,0,0 }; +const uint8_t JS_SLIDER_GZIP[881] PROGMEM = { 31,139,8,0,210,8,51,99,2,255,237,86,77,143,218,48,16,189,243,43,88,107,187,196,93,240,210,61,18,204,165,85,165,30,122,106,165,86,90,173,144,73,156,141,69,112,162,216,129,182,44,255,189,227,143,132,36,192,106,219,83,15,61,37,246,60,143,223,204,60,123,156,84,50,210,34,151,195,114,189,137,151,37,147,79,252,75,38,98,94,6,138,103,60,210,121,137,247,91,86,14,97,148,140,149,181,44,119,34,214,105,61,200,147,68,113,61,142,170,82,106,63,247,65,168,168,228,154,143,173,59,63,25,26,15,244,250,232,54,108,123,163,198,74,236,111,208,88,156,107,103,114,255,1,38,25,79,116,216,221,199,34,122,115,132,179,40,13,18,31,93,32,198,91,188,183,28,129,130,78,133,194,161,29,17,86,20,92,198,65,119,241,82,111,138,12,54,195,161,141,128,58,104,34,0,56,18,178,168,244,131,254,89,112,138,172,21,61,142,106,198,109,32,34,110,14,53,225,36,34,203,168,251,239,66,38,198,114,196,165,76,198,25,63,143,116,182,35,54,99,43,126,193,169,53,1,210,84,207,18,93,110,89,70,11,86,42,254,73,234,192,78,17,152,50,97,182,24,146,72,169,0,217,74,160,113,179,238,22,189,233,19,116,64,83,142,75,56,203,192,179,82,5,147,8,19,205,127,248,173,13,26,135,7,28,186,242,202,0,109,242,74,241,56,223,201,161,206,171,40,85,154,149,224,186,31,250,184,169,41,199,123,145,4,156,172,42,173,115,73,41,189,199,123,168,30,148,96,152,176,76,241,240,48,48,177,67,196,92,106,85,215,157,248,49,36,202,72,126,210,84,201,170,188,45,73,15,108,84,217,2,120,101,214,136,174,56,13,46,74,121,180,118,199,169,65,189,160,31,34,128,207,44,22,138,173,50,30,3,25,8,172,237,130,82,93,86,252,36,188,58,36,22,199,239,51,102,202,33,212,132,65,118,182,220,7,180,201,183,252,99,69,219,57,115,57,121,226,223,41,39,246,251,252,12,181,76,205,62,241,87,147,120,174,30,166,143,206,212,142,89,242,93,147,24,48,77,58,169,48,132,251,184,57,109,167,243,230,230,234,20,129,166,8,227,189,159,54,92,3,159,172,113,31,218,189,123,108,54,194,195,193,242,171,138,94,132,117,90,128,90,224,84,83,194,121,239,148,1,145,86,166,72,201,205,222,103,82,232,54,168,125,208,189,149,168,193,206,92,98,199,86,169,237,9,139,168,138,153,33,229,172,112,189,184,209,33,188,14,226,60,170,54,64,3,27,197,31,185,189,254,24,252,215,127,47,188,19,117,122,85,255,11,250,28,252,129,60,207,74,237,111,132,116,24,212,155,13,207,119,53,123,3,216,127,58,154,199,98,59,140,140,240,41,242,74,88,140,110,7,103,230,93,147,90,204,239,192,114,9,226,175,232,197,25,147,235,70,139,185,233,3,139,233,252,206,126,157,179,198,37,114,127,40,244,101,182,28,79,227,233,22,2,42,240,205,39,31,190,144,35,255,94,57,214,167,211,246,62,51,157,146,50,175,64,138,129,89,122,231,151,226,183,239,166,83,220,17,185,237,215,189,91,163,219,176,91,96,223,180,207,195,155,174,221,244,226,215,28,10,247,248,32,210,180,76,76,82,189,201,44,227,203,221,186,27,243,165,150,189,55,135,116,118,138,5,209,50,169,132,73,244,12,201,92,66,171,69,147,29,95,173,133,158,28,77,232,104,219,228,191,206,25,14,53,113,243,182,232,110,99,207,245,75,41,26,182,159,9,248,138,246,150,239,95,189,182,191,175,73,188,172,54,43,120,163,213,62,152,214,37,220,246,112,219,16,85,173,148,46,133,124,10,238,45,69,43,35,8,93,229,209,154,152,1,188,95,50,240,83,241,25,186,237,103,14,166,156,103,211,144,126,3,128,124,107,46,79,11,0,0 }; diff --git a/src/dataStyleCSS.h b/src/dataStyleCSS.h index 0d46497..494b24c 100644 --- a/src/dataStyleCSS.h +++ b/src/dataStyleCSS.h @@ -2,4 +2,4 @@ const char CSS_STYLE[] PROGMEM = R"=====( .container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.turquoise{background:#1abc9c;border-bottom:#16a085 3px solid}.emerald{background:#2ecc71;border-bottom:#27ae60 3px solid}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.dark{background:#444857;border-bottom:#444857 3px solid}.label{box-sizing:border-box;white-space:nowrap;border-radius:.2em;padding:.12em .4em .14em;text-align:center;color:#fff;font-weight:700;line-height:1.3;margin-bottom:5px;display:inline-block;white-space:nowrap;vertical-align:baseline;position:relative;top:-.15em;background-color:#999;margin-bottom:10px}.label-wrap{width:90%;white-space:pre-wrap;word-wrap:break-word}.label.color-blue{background-color:#6f9ad1}.label.color-red{background-color:#d37c7c}.label.color-green{background-color:#9bc268}.label.color-orange{background-color:#dea154}.label.color-yellow{background-color:#e9d641}.label.color-purple{background-color:#9f83d1}@media(min-width:400px){.container{width:84%}}@media(min-width:630px){.container{width:98%}.column,.columns{margin-right:35px}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{margin:0;font-size:1.5em;line-height:1;font-weight:400;font-family:"Open Sans",sans-serif;color:#222;background-color:#ecf0f1}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:630px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}button{display:inline-block;padding:10px;border-radius:3px;color:#fff;background-color:#999}button:enabled:active{background-color:#666;transform:translateX(4px) translateY(4px)}#mainHeader{display:inline-block}#conStatus{position:inherit;font-size:.75em}button,.button{margin-bottom:1rem;margin-left:.3rem;margin-right:.3rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}.tcenter{text-align:center}hr{margin-top:.5rem;margin-bottom:1.2rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.control{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.1),hsla(0,0%,100%,0.1));border-radius:50%;box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.75),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.75);height:9em;margin:3em auto;position:relative;width:9em}.control ul{height:100%;padding:0;transform:rotate(45deg)}.control li{border-radius:100% 0 0 0;box-shadow:inset -1px -1px 1px hsla(0,0%,100%,0.5),0 0 1px hsla(0,0%,0%,0.75);display:inline-block;height:50%;overflow:hidden;width:50%}.control ul li:nth-child(2){transform:rotate(90deg)}.control ul li:nth-child(3){transform:rotate(-90deg)}.control ul li:nth-child(4){transform:rotate(180deg)}.control ul a{height:200%;position:relative;transform:rotate(-45deg);width:200%}.control a:hover,.control a:focus{background-color:hsla(0,0%,100%,0.25)}.control a{border-radius:50%;color:#333;display:block;font:bold 1em/3 sans-serif;text-align:center;text-decoration:none;text-shadow:0 1px 1px hsla(0,0%,100%,0.4);transition:.15s}.control .confirm{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.15),hsla(0,0%,100%,0.25));box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.25),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.85);left:50%;line-height:3;margin:-1.5em;position:absolute;top:50%;width:3em}.control .confirm:hover,.control .confirm:focus{background-color:#eee}.control:not(.disabled) a.confirm:active{background-color:#777}.control:not(.disabled) li:active{background-color:#777}.switch{display:inline-block !important;background-color:#bebebe;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);color:#fff;cursor:pointer;display:block;font-size:14px;height:26px;margin-left:.3rem;margin-right:.3rem;position:relative;width:60px;-webkit-transition:background-color .2s ease-in-out;-moz-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.switch.checked{background-color:#76d21d}.switch input[type="checkbox"]{display:none;cursor:pointer;height:10px;left:12px;position:absolute;top:8px;width:10px}.in{position:absolute;top:8px;left:12px;-webkit-transition:left .08s ease-in-out;-moz-transition:left .08s ease-in-out;-o-transition:left .08s ease-in-out;-ms-transition:left .08s ease-in-out;transition:left .08s ease-in-out}.switch.checked div{left:38px}.switch .in:before{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f0f0f0));background:-webkit-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-o-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-ms-linear-gradient(top,#fff 0,#f0f0f0 100%);background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%);border:1px solid #fff;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,0.3);content:"";height:18px;position:absolute;top:-5px;left:-9px;width:26px}.switch .in:after{background:#f0f0f0;background:-moz-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f0f0f0),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-o-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-ms-linear-gradient(top,#f0f0f0 0,#fff 100%);background:linear-gradient(to bottom,#f0f0f0 0,#fff 100%);border-radius:10px;content:"";height:12px;margin:-1px 0 0 -1px;position:absolute;width:12px}.rkmd-slider{display:block;position:relative;font-size:16px;font-family:"Roboto",sans-serif}.rkmd-slider input[type="range"]{overflow:hidden;position:absolute;width:1px;height:1px;opacity:0}.rkmd-slider input[type="range"]+.slider{display:block;position:relative;width:100%;height:27px;border-radius:13px;background-color:#bebebe}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider{height:4px;border-radius:0}}.rkmd-slider input[type="range"]+.slider .slider-fill{display:block;position:absolute;width:0;height:100%;user-select:none;z-index:1}.rkmd-slider input[type="range"]+.slider .slider-handle{cursor:pointer;position:absolute;top:12px;left:0;width:15px;height:15px;margin-left:-8px;border-radius:50%;transition:all .2s ease;user-select:none;z-index:2}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider .slider-handle{top:-5.5px}}.rkmd-slider input[type="range"]:disabled+.slider{background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle{cursor:default !important;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle .slider-label{display:none;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active{top:-5.5px;width:15px;height:15px;margin-left:-8px}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active .slider-label{display:none;border-radius:50%;transform:none}.rkmd-slider input[type="range"]:disabled+.slider .slider-handle:active{box-shadow:none !important;transform:scale(1) !important}.rkmd-slider.slider-discrete .slider .slider-handle{position:relative;z-index:1}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{position:absolute;top:-17.5px;left:4px;width:30px;height:30px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;border-radius:50%;-webkit-transform:scale(1) rotate(-45deg);transform:scale(1) rotate(-45deg);-webkit-transition:all .2s ease;transition:all .2s ease}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{left:-2px;-webkit-transform:scale(0.5) rotate(-45deg);transform:scale(0.5) rotate(-45deg)}}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{position:absolute;top:7px;left:0;width:100%;color:#fff;font-size:16px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{font-size:12px}}.rkmd-slider.slider-discrete .slider .slider-handle.is-active{top:0;margin-left:-2px;width:4px;height:4px}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label{top:-15px;left:-2px;border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) translate(23px,-25px);transform:rotate(-45deg) translate(23px,-25px)}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label span{opacity:1}.rkmd-slider.slider-discrete.slider-turquoise .slider-label{background-color:#16a085}.rkmd-slider.slider-discrete.slider-emerald .slider-label{background-color:#27ae60}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.rkmd-slider.slider-discrete.slider-peterriver .slider-label{background-color:#2980b9}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.rkmd-slider.slider-discrete.slider-wetasphalt .slider-label{background-color:#2c3e50}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.rkmd-slider.slider-discrete.slider-sunflower .slider-label{background-color:#e6bb0f}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.rkmd-slider.slider-discrete.slider-carrot .slider-label{background-color:#d35400}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.rkmd-slider.slider-discrete.slider-alizarin .slider-label{background-color:#c0392b}input{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}select{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}input[id^="num"]{max-width:6em;width:auto;text-align:right;font-weight:bold;font-size:115%}body div>ul.navigation{margin:0;margin-bottom:30px;padding:0;border-bottom:3px solid #666;overflow:hidden}ul.navigation li{list-style:none;float:left;margin-right:4px}ul.navigation li.controls{float:right}ul.navigation li a{font-weight:bold;display:inline-block;padding:6px 12px;color:#888;outline:0;text-decoration:none;background:#f3f3f3;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#e4e4e4));background:-moz-linear-gradient(#eee,#e4e4e4);background:linear-gradient(#eee,#e4e4e4);-pie-background:linear-gradient(#eee,#e4e4e4)}ul.navigation li.active a{pointer-events:none;color:white;background:#666;background:-webkit-gradient(linear,0 0,0 bottom,from(#888),to(#666));background:-moz-linear-gradient(#888,#666);background:linear-gradient(#888,#666);-pie-background:linear-gradient(#888,#666)}div.tabscontent>div{padding:0 15px}#tabsnav:empty{display:none}.range-slider{margin:0}.range-slider{width:100%}.range-slider__range{-webkit-appearance:none;width:calc(100% - (45px));height:10px;border-radius:5px;outline:0;padding:0;margin:0}.range-slider__value{display:inline-block;position:relative;width:30px;color:#fff;line-height:20px;text-align:center;border-radius:3px;padding:5px 5px;margin-left:2px}.range-slider__value:after{position:absolute;top:8px;left:-7px;width:0;height:0;content:""}::-moz-range-track{border:0}input::-moz-focus-inner,input::-moz-focus-outer{border:0}svg{display:block;width:100%;height:100%}.y-axis path,.x-axis path{stroke:gray;stroke-width:1;fill:none}.series{stroke:steelblue;stroke-width:3;fill:none}.data-points circle{stroke:steelblue;stroke-width:2;fill:white}.data-points text{display:none}.data-points circle:hover{fill:steelblue;stroke-width:6}.data-points circle:hover+text{display:inline-block}text{text-anchor:end}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -42px 70px -42px}.vert-slider span{transform:rotate(90deg)}button:disabled{color:#333;background-color:#999}select:disabled{color:#333;background-color:#999}input:disabled{color:#333;background-color:#999}.range-slider__range:disabled{background-color:#999}.range-slider__range:disabled::-webkit-slider-thumb{background-color:#aaa}.range-slider__range:disabled::-moz-range-thumb{background-color:#aaa}.switch.disabled .in::before{background:#bbb;border:1px solid #ddd}.switch.disabled .in::after{background:#bbb}.switch.checked.disabled{background:#b1d092} )====="; -const uint8_t CSS_STYLE_GZIP[3597] PROGMEM = { 31,139,8,0,206,101,43,99,2,255,213,27,219,110,235,184,241,87,212,4,1,98,172,164,234,110,91,198,46,250,216,183,2,221,151,22,197,246,128,146,168,72,136,44,185,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,124,120,41,179,190,136,183,251,135,195,17,181,79,101,29,123,206,233,245,144,52,175,86,87,254,94,214,79,113,210,180,25,110,45,24,25,236,180,169,206,199,218,28,255,118,23,134,236,58,206,195,33,175,26,212,199,21,206,123,0,67,109,118,57,150,181,85,224,242,169,232,9,0,165,73,9,181,40,43,207,93,28,77,179,20,40,107,94,98,199,8,78,175,244,167,125,74,208,163,231,4,166,187,223,154,238,46,52,29,59,220,28,78,40,203,128,27,139,76,192,88,156,70,90,58,5,29,98,18,0,171,125,223,28,227,128,14,193,103,198,101,72,153,0,206,155,54,190,207,243,124,248,203,17,103,37,122,92,32,92,207,9,79,175,155,139,13,31,241,34,196,36,228,22,30,14,26,172,237,222,89,199,138,66,135,199,66,175,227,131,200,103,72,18,252,126,247,48,12,118,135,83,98,164,164,197,232,121,214,53,227,60,169,80,250,172,135,48,138,246,194,116,28,59,135,81,243,30,209,50,96,60,181,205,185,206,172,81,250,40,138,6,187,63,183,255,57,55,101,135,47,11,64,124,239,162,36,221,167,135,217,232,84,147,247,110,132,156,93,104,248,96,158,174,169,202,108,176,241,17,183,168,202,4,92,15,167,233,214,149,113,189,45,194,145,195,227,158,112,143,219,22,156,175,21,208,253,96,191,203,18,5,125,191,115,146,61,143,254,130,123,212,157,10,84,245,18,122,176,15,177,130,158,250,56,20,102,239,206,53,248,234,139,52,121,238,166,129,147,203,216,56,74,18,39,231,177,193,94,109,35,78,140,163,45,246,60,25,53,243,195,192,17,38,70,85,249,59,106,203,90,68,222,6,169,175,232,59,117,252,189,151,240,200,25,106,159,5,196,32,8,118,225,86,70,100,163,60,98,133,18,92,93,180,241,124,120,41,202,30,91,221,9,165,56,174,155,151,22,157,164,32,181,61,124,156,2,45,182,93,248,100,216,1,249,229,194,239,67,143,95,123,11,164,122,170,227,20,215,96,83,46,186,14,57,228,28,235,133,121,225,214,113,14,21,228,159,57,31,216,190,20,171,16,90,135,172,236,78,21,122,139,203,154,194,38,85,147,62,235,88,4,191,233,203,20,85,227,212,9,234,48,65,56,168,185,173,111,78,177,101,187,33,240,170,6,193,126,191,151,152,112,73,168,50,133,89,100,166,49,189,237,33,187,241,108,156,90,76,31,31,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,147,212,139,118,34,108,211,162,250,73,199,66,134,145,27,6,34,240,27,174,32,48,52,192,120,159,69,129,196,239,233,220,158,42,29,229,125,190,243,65,56,37,79,6,206,152,241,230,197,136,141,239,130,7,77,86,157,243,163,4,77,18,164,178,12,141,102,100,43,129,79,210,244,248,40,206,203,182,235,173,180,40,171,108,6,231,7,39,84,186,172,56,131,221,212,120,166,190,188,159,22,186,192,142,230,127,91,224,163,127,105,228,165,208,183,253,249,31,129,40,192,88,18,140,231,193,131,188,57,183,210,184,239,216,2,245,28,92,88,6,217,139,228,187,242,85,102,145,232,167,195,223,113,45,61,8,35,145,58,141,68,9,38,10,69,242,117,169,168,96,27,16,169,20,234,59,79,162,94,105,88,216,187,146,114,94,112,165,136,72,139,9,213,42,86,95,148,109,54,194,174,40,12,204,193,192,58,17,78,22,139,144,131,229,35,23,161,168,230,154,60,239,112,111,37,111,150,224,9,154,209,78,112,157,157,228,25,11,198,226,35,166,118,84,164,227,110,37,86,23,12,206,147,204,149,113,145,150,23,9,4,56,143,51,245,195,34,186,31,216,43,34,113,142,105,234,135,69,74,129,191,38,212,226,191,166,118,84,164,19,122,34,50,231,98,230,202,184,72,32,114,214,68,226,163,193,92,25,151,104,237,215,132,226,162,198,212,15,139,148,182,162,227,245,90,161,250,21,145,118,209,170,72,213,138,126,164,216,228,169,237,195,53,161,228,16,52,223,121,118,171,31,41,241,106,190,247,240,86,245,75,209,109,174,63,82,189,107,40,250,99,117,161,165,11,84,75,56,142,60,59,124,24,146,38,123,27,65,161,178,94,158,186,54,169,44,132,194,70,40,123,96,197,99,159,115,116,44,171,183,248,238,111,39,92,27,191,162,186,187,51,59,248,13,158,218,150,249,84,52,121,164,134,84,151,222,52,119,114,119,40,92,179,240,204,194,55,139,192,44,66,179,136,38,214,73,137,227,72,117,140,29,182,192,23,207,137,239,56,64,130,19,44,104,101,206,109,239,80,225,30,138,56,90,229,144,122,15,42,39,128,26,10,143,195,243,237,72,131,25,174,161,250,60,170,138,232,175,225,5,28,158,103,107,152,245,53,83,58,59,138,27,94,120,11,237,84,92,29,106,72,81,35,1,53,84,81,35,25,213,89,173,92,4,117,135,138,34,3,219,83,53,68,149,43,74,239,43,50,121,43,172,14,195,73,112,138,1,141,91,198,123,23,35,156,37,3,138,139,134,236,185,198,81,39,71,78,138,135,228,12,62,83,95,180,197,247,84,249,187,234,246,221,23,246,210,250,242,122,164,29,227,26,37,21,206,98,148,146,170,252,162,221,143,30,122,168,84,187,188,105,143,49,125,7,21,60,254,199,99,0,154,52,230,207,255,164,159,135,251,35,20,132,127,197,8,184,209,178,61,220,67,209,248,107,143,250,115,183,244,59,202,186,128,96,235,185,232,181,183,16,189,35,139,166,61,170,65,218,16,16,15,224,115,132,237,115,35,172,220,164,67,131,125,182,242,115,85,49,23,224,43,153,149,70,202,217,34,173,0,14,101,233,12,188,143,118,34,40,116,230,11,235,184,208,247,243,19,194,229,133,111,197,244,108,103,118,81,246,106,67,209,242,238,194,188,93,18,159,250,232,100,120,198,157,51,125,36,72,238,180,205,52,238,177,75,94,195,82,175,199,40,135,89,76,187,109,94,166,183,103,43,205,47,4,0,24,136,239,238,230,13,95,79,220,227,144,86,24,181,32,109,95,48,42,109,83,233,246,45,89,198,59,91,121,68,79,56,38,182,71,100,99,4,190,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,30,29,78,106,103,13,169,178,134,69,195,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,94,208,126,54,112,236,195,30,30,157,251,230,176,214,15,220,19,159,30,173,96,156,171,203,210,200,123,152,179,130,195,197,108,219,64,188,225,199,32,204,240,211,102,193,172,202,139,168,100,66,192,32,236,58,170,174,45,34,130,117,139,174,53,50,106,243,215,200,53,177,44,201,124,164,237,19,23,101,150,225,250,48,245,4,31,120,49,129,223,184,238,11,182,53,124,244,54,23,69,192,189,35,10,40,227,248,26,28,235,26,82,160,65,114,119,42,18,154,204,224,81,51,168,237,14,101,102,102,143,81,88,130,181,208,27,87,3,147,27,200,155,20,82,166,18,115,58,151,227,232,92,212,48,26,99,21,42,179,217,46,204,32,36,251,66,136,87,153,225,226,227,159,125,131,171,130,212,102,18,29,201,112,218,180,136,202,89,67,249,198,6,231,158,241,170,179,4,27,166,13,166,33,219,13,187,133,99,242,38,47,219,227,143,202,46,161,38,189,128,138,54,63,60,155,120,255,243,108,178,131,72,99,197,50,88,153,47,141,166,126,94,108,177,162,120,118,78,148,192,2,113,238,89,47,142,96,141,91,119,62,191,76,6,145,61,114,30,95,113,204,123,140,241,76,5,220,163,127,180,193,221,104,173,177,49,208,140,189,90,118,108,183,219,85,116,8,208,247,241,186,151,178,79,11,109,1,98,252,169,60,158,154,182,71,117,175,41,140,18,76,94,210,226,19,136,167,33,147,187,56,212,8,244,68,4,140,64,94,182,191,225,235,174,244,220,118,240,254,212,148,52,100,212,104,27,43,68,66,127,74,30,209,114,82,242,110,81,179,186,56,68,164,28,132,173,69,242,92,246,22,23,102,178,172,134,237,117,6,70,29,182,128,112,115,238,15,214,177,249,253,99,8,205,7,233,119,31,130,255,0,236,100,112,59,45,112,250,172,237,213,110,163,204,115,179,9,208,40,235,211,185,255,87,255,118,194,63,223,81,36,176,239,221,111,179,195,208,108,38,153,111,94,101,65,191,172,29,68,206,111,244,177,180,131,39,83,193,72,26,158,101,125,89,7,92,136,105,204,70,30,26,176,123,122,223,86,43,80,205,45,148,186,235,64,215,0,100,253,27,89,249,253,194,250,11,59,34,254,168,116,80,67,156,96,88,3,197,83,45,113,139,18,83,217,228,180,14,186,50,9,160,225,192,31,135,188,12,146,20,55,2,226,168,189,25,137,17,49,41,203,132,0,125,195,202,103,147,245,201,59,24,126,116,40,229,13,63,68,19,238,56,209,70,59,201,167,24,108,62,135,6,38,250,12,158,138,51,9,175,199,100,167,147,220,182,129,26,70,200,132,158,124,46,236,44,167,194,66,14,156,183,17,83,212,236,86,99,197,10,167,24,176,246,115,216,144,60,40,248,13,221,165,136,110,67,153,191,209,115,152,160,204,210,63,214,115,152,143,104,156,7,92,234,3,158,115,133,193,230,115,104,171,158,243,62,222,123,158,163,195,148,118,17,180,251,160,120,128,55,175,108,49,221,71,16,231,33,111,52,110,49,157,248,19,31,104,159,143,153,213,129,63,114,13,133,177,1,162,172,128,220,154,74,214,81,161,189,247,247,6,68,104,248,222,158,64,91,88,17,232,185,28,44,7,242,190,100,149,211,101,1,39,111,27,210,127,234,223,200,225,200,149,25,126,178,111,148,140,235,62,76,149,194,86,105,251,184,190,246,66,1,171,105,166,94,216,184,156,197,57,216,120,115,185,153,193,113,214,64,153,212,25,110,150,210,24,255,90,121,89,85,107,34,75,170,117,14,252,238,246,220,145,246,30,174,112,218,179,53,250,119,88,129,50,252,26,187,31,103,162,64,117,86,225,139,180,202,235,115,20,117,94,118,224,53,153,34,228,108,30,74,69,155,181,83,212,68,170,107,110,25,69,85,53,23,49,235,82,121,95,51,154,44,42,203,182,54,189,41,115,141,70,60,85,219,179,7,104,28,203,33,47,174,160,254,56,85,193,37,204,207,163,139,198,204,112,142,206,85,127,165,212,255,193,220,207,31,232,65,252,151,101,17,201,137,149,233,31,47,140,93,118,22,219,98,125,89,144,133,20,231,128,183,70,209,15,19,227,7,91,103,141,176,100,39,125,10,160,93,32,2,48,124,149,141,121,27,188,212,100,132,46,239,248,203,140,93,138,42,252,232,110,214,188,100,34,13,115,166,45,238,103,201,228,32,83,87,39,125,22,190,145,158,164,192,149,34,209,221,218,115,157,24,204,254,67,78,115,38,255,241,149,141,47,145,218,106,96,211,12,37,7,40,159,86,43,135,245,39,170,181,20,106,139,14,165,38,222,117,8,205,222,78,88,4,86,198,175,175,0,159,83,51,139,48,79,167,178,81,4,210,242,186,38,166,6,102,248,186,15,24,221,9,173,109,152,183,202,66,236,44,61,205,249,106,219,82,3,170,157,75,85,94,161,63,190,214,55,95,170,186,153,130,178,110,211,13,136,102,180,83,7,229,129,63,200,206,76,149,156,78,60,121,241,191,145,172,148,197,29,49,83,123,115,68,114,189,172,64,74,223,31,158,73,114,89,150,7,150,221,162,167,22,192,33,233,206,206,191,156,117,91,143,206,186,28,95,62,122,80,60,155,150,71,238,24,31,62,6,254,35,133,100,246,154,92,237,253,124,58,125,158,239,10,75,250,82,171,4,118,83,248,38,162,227,21,226,171,36,217,5,226,47,95,27,190,129,163,101,134,235,76,81,250,95,190,140,124,3,83,203,12,215,153,162,244,191,122,197,249,6,158,230,9,174,178,196,200,127,233,222,244,13,252,48,234,87,153,97,180,191,120,19,251,6,118,38,250,87,25,98,212,7,90,150,205,55,140,232,201,172,193,14,223,199,83,218,241,196,149,28,250,112,149,237,234,69,129,195,252,53,128,47,156,50,112,186,97,95,201,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,87,47,34,124,28,153,164,252,115,11,59,61,22,17,174,84,145,83,76,190,18,112,199,139,98,164,49,253,203,185,178,107,244,189,124,162,7,151,203,213,49,241,122,133,207,125,139,101,145,121,122,184,244,72,201,237,24,169,77,52,8,19,144,99,246,170,236,128,147,254,173,194,108,241,95,238,128,136,39,59,100,197,148,145,167,51,176,78,184,82,34,67,25,232,162,200,255,238,173,33,98,29,218,213,24,157,125,183,219,29,154,115,79,32,201,221,1,221,233,174,144,174,124,242,186,165,135,74,122,133,206,212,62,204,219,230,248,72,78,6,55,102,223,192,155,128,188,164,54,169,174,137,75,80,204,9,252,189,78,165,8,104,157,74,144,251,70,104,85,243,227,2,141,46,99,81,102,145,171,153,125,55,158,14,81,189,209,175,30,8,154,33,14,241,57,181,128,9,152,90,128,196,45,58,1,120,147,194,190,171,144,5,234,170,54,102,208,1,194,196,238,161,238,30,219,184,191,144,243,156,57,24,104,113,53,220,147,231,160,175,24,31,79,253,155,176,239,133,52,76,182,175,83,215,118,138,48,105,120,73,56,226,131,111,223,216,215,34,38,205,161,211,9,216,68,117,58,6,15,195,131,237,71,74,59,237,134,101,64,133,14,101,216,70,56,161,147,54,115,164,43,59,123,247,18,214,122,214,190,125,251,142,200,119,67,244,1,180,210,155,245,197,47,176,9,7,240,244,251,111,234,78,68,189,180,55,113,22,142,73,89,184,49,78,203,105,149,205,241,104,228,202,249,162,181,157,115,252,220,82,117,184,54,253,16,51,47,99,19,64,157,155,62,207,223,87,99,89,121,4,160,199,253,176,223,175,113,107,170,227,160,100,188,124,209,109,232,190,63,73,125,94,181,145,205,60,224,205,66,175,101,103,156,80,95,152,246,235,242,225,210,65,242,123,198,49,120,233,219,129,189,159,174,226,29,72,135,103,116,56,210,208,199,221,4,220,245,24,87,228,235,61,34,134,207,99,100,168,71,22,13,236,206,72,203,54,173,240,21,108,143,97,211,136,23,209,137,101,165,0,80,169,143,247,59,41,141,149,25,162,117,188,159,132,57,132,11,149,244,9,115,174,58,45,192,253,112,13,133,16,249,30,150,197,206,207,200,5,67,121,67,227,109,233,13,166,3,119,201,144,239,191,141,235,156,71,191,173,195,72,9,65,27,82,135,94,35,170,141,155,49,212,8,166,97,5,164,234,216,206,111,133,57,216,22,104,237,114,215,120,107,117,234,139,93,184,219,76,250,107,174,227,30,251,118,4,230,212,183,195,235,146,215,130,254,9,156,120,94,52,166,13,94,113,62,38,26,74,8,161,171,148,184,152,126,143,202,120,126,63,33,210,35,87,221,89,125,146,36,154,131,226,44,203,86,72,168,199,182,64,65,190,46,96,107,180,5,128,110,230,236,189,225,191,54,182,22,18,32,61,0,0 }; +const uint8_t CSS_STYLE_GZIP[3597] PROGMEM = { 31,139,8,0,210,8,51,99,2,255,213,27,219,110,235,184,241,87,212,4,1,98,172,164,234,110,91,198,46,250,216,183,2,221,151,22,197,246,128,146,168,72,136,44,185,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,124,120,41,179,190,136,183,251,135,195,17,181,79,101,29,123,206,233,245,144,52,175,86,87,254,94,214,79,113,210,180,25,110,45,24,25,236,180,169,206,199,218,28,255,118,23,134,236,58,206,195,33,175,26,212,199,21,206,123,0,67,109,118,57,150,181,85,224,242,169,232,9,0,165,73,9,181,40,43,207,93,28,77,179,20,40,107,94,98,199,8,78,175,244,167,125,74,208,163,231,4,166,187,223,154,238,46,52,29,59,220,28,78,40,203,128,27,139,76,192,88,156,70,90,58,5,29,98,18,0,171,125,223,28,227,128,14,193,103,198,101,72,153,0,206,155,54,190,207,243,124,248,203,17,103,37,122,92,32,92,207,9,79,175,155,139,13,31,241,34,196,36,228,22,30,14,26,172,237,222,89,199,138,66,135,199,66,175,227,131,200,103,72,18,252,126,247,48,12,118,135,83,98,164,164,197,232,121,214,53,227,60,169,80,250,172,135,48,138,246,194,116,28,59,135,81,243,30,209,50,96,60,181,205,185,206,172,81,250,40,138,6,187,63,183,255,57,55,101,135,47,11,64,124,239,162,36,221,167,135,217,232,84,147,247,110,132,156,93,104,248,96,158,174,169,202,108,176,241,17,183,168,202,4,92,15,167,233,214,149,113,189,45,194,145,195,227,158,112,143,219,22,156,175,21,208,253,96,191,203,18,5,125,191,115,146,61,143,254,130,123,212,157,10,84,245,18,122,176,15,177,130,158,250,56,20,102,239,206,53,248,234,139,52,121,238,166,129,147,203,216,56,74,18,39,231,177,193,94,109,35,78,140,163,45,246,60,25,53,243,195,192,17,38,70,85,249,59,106,203,90,68,222,6,169,175,232,59,117,252,189,151,240,200,25,106,159,5,196,32,8,118,225,86,70,100,163,60,98,133,18,92,93,180,241,124,120,41,202,30,91,221,9,165,56,174,155,151,22,157,164,32,181,61,124,156,2,45,182,93,248,100,216,1,249,229,194,239,67,143,95,123,11,164,122,170,227,20,215,96,83,46,186,14,57,228,28,235,133,121,225,214,113,14,21,228,159,57,31,216,190,20,171,16,90,135,172,236,78,21,122,139,203,154,194,38,85,147,62,235,88,4,191,233,203,20,85,227,212,9,234,48,65,56,168,185,173,111,78,177,101,187,33,240,170,6,193,126,191,151,152,112,73,168,50,133,89,100,166,49,189,237,33,187,241,108,156,90,76,31,31,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,147,212,139,118,34,108,211,162,250,73,199,66,134,145,27,6,34,240,27,174,32,48,52,192,120,159,69,129,196,239,233,220,158,42,29,229,125,190,243,65,56,37,79,6,206,152,241,230,197,136,141,239,130,7,77,86,157,243,163,4,77,18,164,178,12,141,102,100,43,129,79,210,244,248,40,206,203,182,235,173,180,40,171,108,6,231,7,39,84,186,172,56,131,221,212,120,166,190,188,159,22,186,192,142,230,127,91,224,163,127,105,228,165,208,183,253,249,31,129,40,192,88,18,140,231,193,131,188,57,183,210,184,239,216,2,245,28,92,88,6,217,139,228,187,242,85,102,145,232,167,195,223,113,45,61,8,35,145,58,141,68,9,38,10,69,242,117,169,168,96,27,16,169,20,234,59,79,162,94,105,88,216,187,146,114,94,112,165,136,72,139,9,213,42,86,95,148,109,54,194,174,40,12,204,193,192,58,17,78,22,139,144,131,229,35,23,161,168,230,154,60,239,112,111,37,111,150,224,9,154,209,78,112,157,157,228,25,11,198,226,35,166,118,84,164,227,110,37,86,23,12,206,147,204,149,113,145,150,23,9,4,56,143,51,245,195,34,186,31,216,43,34,113,142,105,234,135,69,74,129,191,38,212,226,191,166,118,84,164,19,122,34,50,231,98,230,202,184,72,32,114,214,68,226,163,193,92,25,151,104,237,215,132,226,162,198,212,15,139,148,182,162,227,245,90,161,250,21,145,118,209,170,72,213,138,126,164,216,228,169,237,195,53,161,228,16,52,223,121,118,171,31,41,241,106,190,247,240,86,245,75,209,109,174,63,82,189,107,40,250,99,117,161,165,11,84,75,56,142,60,59,124,24,146,38,123,27,65,161,178,94,158,186,54,169,44,132,194,70,40,123,96,197,99,159,115,116,44,171,183,248,238,111,39,92,27,191,162,186,187,51,59,248,13,158,218,150,249,84,52,121,164,134,84,151,222,52,119,114,119,40,92,179,240,204,194,55,139,192,44,66,179,136,38,214,73,137,227,72,117,140,29,182,192,23,207,137,239,56,64,130,19,44,104,101,206,109,239,80,225,30,138,56,90,229,144,122,15,42,39,128,26,10,143,195,243,237,72,131,25,174,161,250,60,170,138,232,175,225,5,28,158,103,107,152,245,53,83,58,59,138,27,94,120,11,237,84,92,29,106,72,81,35,1,53,84,81,35,25,213,89,173,92,4,117,135,138,34,3,219,83,53,68,149,43,74,239,43,50,121,43,172,14,195,73,112,138,1,141,91,198,123,23,35,156,37,3,138,139,134,236,185,198,81,39,71,78,138,135,228,12,62,83,95,180,197,247,84,249,187,234,246,221,23,246,210,250,242,122,164,29,227,26,37,21,206,98,148,146,170,252,162,221,143,30,122,168,84,187,188,105,143,49,125,7,21,60,254,199,99,0,154,52,230,207,255,164,159,135,251,35,20,132,127,197,8,184,209,178,61,220,67,209,248,107,143,250,115,183,244,59,202,186,128,96,235,185,232,181,183,16,189,35,139,166,61,170,65,218,16,16,15,224,115,132,237,115,35,172,220,164,67,131,125,182,242,115,85,49,23,224,43,153,149,70,202,217,34,173,0,14,101,233,12,188,143,118,34,40,116,230,11,235,184,208,247,243,19,194,229,133,111,197,244,108,103,118,81,246,106,67,209,242,238,194,188,93,18,159,250,232,100,120,198,157,51,125,36,72,238,180,205,52,238,177,75,94,195,82,175,199,40,135,89,76,187,109,94,166,183,103,43,205,47,4,0,24,136,239,238,230,13,95,79,220,227,144,86,24,181,32,109,95,48,42,109,83,233,246,45,89,198,59,91,121,68,79,56,38,182,71,100,99,4,190,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,30,29,78,106,103,13,169,178,134,69,195,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,94,208,126,54,112,236,195,30,30,157,251,230,176,214,15,220,19,159,30,173,96,156,171,203,210,200,123,152,179,130,195,197,108,219,64,188,225,199,32,204,240,211,102,193,172,202,139,168,100,66,192,32,236,58,170,174,45,34,130,117,139,174,53,50,106,243,215,200,53,177,44,201,124,164,237,19,23,101,150,225,250,48,245,4,31,120,49,129,223,184,238,11,182,53,124,244,54,23,69,192,189,35,10,40,227,248,26,28,235,26,82,160,65,114,119,42,18,154,204,224,81,51,168,237,14,101,102,102,143,81,88,130,181,208,27,87,3,147,27,200,155,20,82,166,18,115,58,151,227,232,92,212,48,26,99,21,42,179,217,46,204,32,36,251,66,136,87,153,225,226,227,159,125,131,171,130,212,102,18,29,201,112,218,180,136,202,89,67,249,198,6,231,158,241,170,179,4,27,166,13,166,33,219,13,187,133,99,242,38,47,219,227,143,202,46,161,38,189,128,138,54,63,60,155,120,255,243,108,178,131,72,99,197,50,88,153,47,141,166,126,94,108,177,162,120,118,78,148,192,2,113,238,89,47,142,96,141,91,119,62,191,76,6,145,61,114,30,95,113,204,123,140,241,76,5,220,163,127,180,193,221,104,173,177,49,208,140,189,90,118,108,183,219,85,116,8,208,247,241,186,151,178,79,11,109,1,98,252,169,60,158,154,182,71,117,175,41,140,18,76,94,210,226,19,136,167,33,147,187,56,212,8,244,68,4,140,64,94,182,191,225,235,174,244,220,118,240,254,212,148,52,100,212,104,27,43,68,66,127,74,30,209,114,82,242,110,81,179,186,56,68,164,28,132,173,69,242,92,246,22,23,102,178,172,134,237,117,6,70,29,182,128,112,115,238,15,214,177,249,253,99,8,205,7,233,119,31,130,255,0,236,100,112,59,45,112,250,172,237,213,110,163,204,115,179,9,208,40,235,211,185,255,87,255,118,194,63,223,81,36,176,239,221,111,179,195,208,108,38,153,111,94,101,65,191,172,29,68,206,111,244,177,180,131,39,83,193,72,26,158,101,125,89,7,92,136,105,204,70,30,26,176,123,122,223,86,43,80,205,45,148,186,235,64,215,0,100,253,27,89,249,253,194,250,11,59,34,254,168,116,80,67,156,96,88,3,197,83,45,113,139,18,83,217,228,180,14,186,50,9,160,225,192,31,135,188,12,146,20,55,2,226,168,189,25,137,17,49,41,203,132,0,125,195,202,103,147,245,201,59,24,126,116,40,229,13,63,68,19,238,56,209,70,59,201,167,24,108,62,135,6,38,250,12,158,138,51,9,175,199,100,167,147,220,182,129,26,70,200,132,158,124,46,236,44,167,194,66,14,156,183,17,83,212,236,86,99,197,10,167,24,176,246,115,216,144,60,40,248,13,221,165,136,110,67,153,191,209,115,152,160,204,210,63,214,115,152,143,104,156,7,92,234,3,158,115,133,193,230,115,104,171,158,243,62,222,123,158,163,195,148,118,17,180,251,160,120,128,55,175,108,49,221,71,16,231,33,111,52,110,49,157,248,19,31,104,159,143,153,213,129,63,114,13,133,177,1,162,172,128,220,154,74,214,81,161,189,247,247,6,68,104,248,222,158,64,91,88,17,232,185,28,44,7,242,190,100,149,211,101,1,39,111,27,210,127,234,223,200,225,200,149,25,126,178,111,148,140,235,62,76,149,194,86,105,251,184,190,246,66,1,171,105,166,94,216,184,156,197,57,216,120,115,185,153,193,113,214,64,153,212,25,110,150,210,24,255,90,121,89,85,107,34,75,170,117,14,252,238,246,220,145,246,30,174,112,218,179,53,250,119,88,129,50,252,26,187,31,103,162,64,117,86,225,139,180,202,235,115,20,117,94,118,224,53,153,34,228,108,30,74,69,155,181,83,212,68,170,107,110,25,69,85,53,23,49,235,82,121,95,51,154,44,42,203,182,54,189,41,115,141,70,60,85,219,179,7,104,28,203,33,47,174,160,254,56,85,193,37,204,207,163,139,198,204,112,142,206,85,127,165,212,255,193,220,207,31,232,65,252,151,101,17,201,137,149,233,31,47,140,93,118,22,219,98,125,89,144,133,20,231,128,183,70,209,15,19,227,7,91,103,141,176,100,39,125,10,160,93,32,2,48,124,149,141,121,27,188,212,100,132,46,239,248,203,140,93,138,42,252,232,110,214,188,100,34,13,115,166,45,238,103,201,228,32,83,87,39,125,22,190,145,158,164,192,149,34,209,221,218,115,157,24,204,254,67,78,115,38,255,241,149,141,47,145,218,106,96,211,12,37,7,40,159,86,43,135,245,39,170,181,20,106,139,14,165,38,222,117,8,205,222,78,88,4,86,198,175,175,0,159,83,51,139,48,79,167,178,81,4,210,242,186,38,166,6,102,248,186,15,24,221,9,173,109,152,183,202,66,236,44,61,205,249,106,219,82,3,170,157,75,85,94,161,63,190,214,55,95,170,186,153,130,178,110,211,13,136,102,180,83,7,229,129,63,200,206,76,149,156,78,60,121,241,191,145,172,148,197,29,49,83,123,115,68,114,189,172,64,74,223,31,158,73,114,89,150,7,150,221,162,167,22,192,33,233,206,206,191,156,117,91,143,206,186,28,95,62,122,80,60,155,150,71,238,24,31,62,6,254,35,133,100,246,154,92,237,253,124,58,125,158,239,10,75,250,82,171,4,118,83,248,38,162,227,21,226,171,36,217,5,226,47,95,27,190,129,163,101,134,235,76,81,250,95,190,140,124,3,83,203,12,215,153,162,244,191,122,197,249,6,158,230,9,174,178,196,200,127,233,222,244,13,252,48,234,87,153,97,180,191,120,19,251,6,118,38,250,87,25,98,212,7,90,150,205,55,140,232,201,172,193,14,223,199,83,218,241,196,149,28,250,112,149,237,234,69,129,195,252,53,128,47,156,50,112,186,97,95,201,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,87,47,34,124,28,153,164,252,115,11,59,61,22,17,174,84,145,83,76,190,18,112,199,139,98,164,49,253,203,185,178,107,244,189,124,162,7,151,203,213,49,241,122,133,207,125,139,101,145,121,122,184,244,72,201,237,24,169,77,52,8,19,144,99,246,170,236,128,147,254,173,194,108,241,95,238,128,136,39,59,100,197,148,145,167,51,176,78,184,82,34,67,25,232,162,200,255,238,173,33,98,29,218,213,24,157,125,183,219,29,154,115,79,32,201,221,1,221,233,174,144,174,124,242,186,165,135,74,122,133,206,212,62,204,219,230,248,72,78,6,55,102,223,192,155,128,188,164,54,169,174,137,75,80,204,9,252,189,78,165,8,104,157,74,144,251,70,104,85,243,227,2,141,46,99,81,102,145,171,153,125,55,158,14,81,189,209,175,30,8,154,33,14,241,57,181,128,9,152,90,128,196,45,58,1,120,147,194,190,171,144,5,234,170,54,102,208,1,194,196,238,161,238,30,219,184,191,144,243,156,57,24,104,113,53,220,147,231,160,175,24,31,79,253,155,176,239,133,52,76,182,175,83,215,118,138,48,105,120,73,56,226,131,111,223,216,215,34,38,205,161,211,9,216,68,117,58,6,15,195,131,237,71,74,59,237,134,101,64,133,14,101,216,70,56,161,147,54,115,164,43,59,123,247,18,214,122,214,190,125,251,142,200,119,67,244,1,180,210,155,245,197,47,176,9,7,240,244,251,111,234,78,68,189,180,55,113,22,142,73,89,184,49,78,203,105,149,205,241,104,228,202,249,162,181,157,115,252,220,82,117,184,54,253,16,51,47,99,19,64,157,155,62,207,223,87,99,89,121,4,160,199,253,176,223,175,113,107,170,227,160,100,188,124,209,109,232,190,63,73,125,94,181,145,205,60,224,205,66,175,101,103,156,80,95,152,246,235,242,225,210,65,242,123,198,49,120,233,219,129,189,159,174,226,29,72,135,103,116,56,210,208,199,221,4,220,245,24,87,228,235,61,34,134,207,99,100,168,71,22,13,236,206,72,203,54,173,240,21,108,143,97,211,136,23,209,137,101,165,0,80,169,143,247,59,41,141,149,25,162,117,188,159,132,57,132,11,149,244,9,115,174,58,45,192,253,112,13,133,16,249,30,150,197,206,207,200,5,67,121,67,227,109,233,13,166,3,119,201,144,239,191,141,235,156,71,191,173,195,72,9,65,27,82,135,94,35,170,141,155,49,212,8,166,97,5,164,234,216,206,111,133,57,216,22,104,237,114,215,120,107,117,234,139,93,184,219,76,250,107,174,227,30,251,118,4,230,212,183,195,235,146,215,130,254,9,156,120,94,52,166,13,94,113,62,38,26,74,8,161,171,148,184,152,126,143,202,120,126,63,33,210,35,87,221,89,125,146,36,154,131,226,44,203,86,72,168,199,182,64,65,190,46,96,107,180,5,128,110,230,236,189,225,191,54,182,22,18,32,61,0,0 }; diff --git a/src/dataTabbedcontentJS.h b/src/dataTabbedcontentJS.h index 6589afb..dd580c7 100644 --- a/src/dataTabbedcontentJS.h +++ b/src/dataTabbedcontentJS.h @@ -36,4 +36,4 @@ function api(){return{'switch':apiSwitch,'switchTab':apiSwitch,'getCurrent':getC init();return api();};$.fn.tabbedContent=function(options){return this.each(function(){var tabs=new Tabbedcontent($(this),options);$(this).data('api',tabs);});};})(window.jQuery||window.Zepto||window.$,document,window); )====="; -const uint8_t JS_TABBEDCONTENT_GZIP[1412] PROGMEM = { 31,139,8,0,206,101,43,99,2,255,173,88,221,111,219,54,16,127,239,95,225,56,158,73,193,178,146,188,90,85,7,44,235,128,2,3,134,45,125,90,145,14,140,68,219,90,21,74,19,169,124,192,245,255,190,59,138,164,72,197,113,179,172,47,182,73,30,239,251,126,119,116,74,215,157,200,85,89,11,58,139,139,58,239,110,185,80,241,125,41,138,250,62,238,68,193,215,165,224,69,180,155,118,146,79,164,106,203,92,77,211,59,214,78,62,178,155,27,94,228,181,80,112,33,115,76,20,187,49,123,113,221,224,142,140,118,72,14,140,88,87,41,153,237,170,82,124,145,171,129,46,105,90,126,71,163,4,4,21,148,48,18,37,21,23,27,181,253,241,8,201,138,36,112,42,39,140,196,188,109,235,246,138,87,60,87,117,11,251,122,189,188,229,82,178,13,39,177,108,56,47,86,107,86,73,30,215,226,234,190,84,249,214,45,63,136,82,153,69,222,181,45,72,186,172,152,148,43,194,192,152,59,184,13,66,222,35,63,179,189,101,114,169,249,75,18,111,75,9,2,31,87,170,237,184,93,252,214,115,212,91,85,93,55,61,239,125,188,46,91,169,62,150,183,60,51,194,182,101,85,128,184,204,51,209,238,209,200,114,203,250,40,36,102,9,28,243,204,70,40,129,5,67,247,90,197,51,209,85,85,106,92,158,205,18,254,0,92,11,106,221,238,130,145,150,107,122,66,205,42,209,177,152,148,66,42,38,114,94,175,39,179,40,218,5,135,217,44,36,142,210,253,27,27,236,9,186,231,1,180,147,24,246,104,215,114,213,181,98,242,83,93,87,156,9,106,45,130,176,85,138,183,154,198,196,54,224,82,202,95,208,63,212,49,176,38,101,217,121,72,247,65,40,42,186,91,71,8,191,127,184,120,74,246,43,59,204,205,41,212,43,177,188,240,175,245,74,66,86,7,182,204,168,2,247,71,9,83,170,165,100,219,242,53,228,231,45,131,36,162,130,223,79,254,224,155,247,15,13,222,88,144,25,137,2,179,54,92,57,110,224,116,248,14,29,109,68,236,224,0,171,33,70,247,174,2,95,39,252,31,188,150,64,26,240,7,26,69,123,96,15,156,122,63,32,223,128,135,179,174,191,21,61,207,208,50,58,22,160,131,156,61,186,67,220,205,177,195,2,231,69,231,219,132,53,77,245,168,125,26,127,2,54,215,224,49,173,205,17,105,228,148,44,190,147,68,195,202,73,245,99,117,217,167,201,192,34,148,212,176,254,212,105,149,144,133,165,240,177,35,178,209,242,217,11,168,70,138,128,16,237,22,11,67,141,133,136,91,144,151,3,204,234,13,39,24,22,72,101,46,188,29,165,175,83,84,106,80,195,92,51,148,49,2,16,40,192,1,107,38,70,204,124,110,14,223,101,223,230,115,110,57,188,177,238,68,216,242,45,210,128,220,91,180,92,190,214,162,119,217,249,43,141,120,123,240,226,184,188,191,105,133,109,8,174,72,173,162,6,114,231,243,209,70,15,240,243,185,3,244,249,220,156,156,120,70,207,231,148,52,157,220,94,41,166,56,41,197,196,208,64,189,142,58,65,106,32,94,114,189,89,119,202,207,101,115,45,105,121,83,177,156,107,118,20,113,62,38,186,53,129,105,241,197,249,57,90,104,65,206,79,228,212,51,200,90,58,159,171,199,6,241,103,124,0,65,35,86,52,25,122,128,239,161,152,53,37,213,24,231,181,45,152,8,54,27,172,7,111,175,15,9,209,21,222,95,186,14,202,97,8,153,33,208,190,63,65,168,83,245,21,112,20,27,106,81,246,236,243,233,25,248,13,206,50,172,94,15,84,113,2,48,184,92,22,36,234,33,237,36,108,73,3,30,152,208,135,69,221,223,102,109,201,150,82,79,16,188,32,49,209,180,0,243,174,228,91,126,91,223,113,93,222,244,96,205,167,223,5,7,159,81,7,147,216,215,134,21,197,49,85,92,21,108,203,130,135,73,224,178,218,186,252,191,229,174,77,71,119,60,202,69,172,212,157,73,104,59,158,36,48,50,109,113,204,73,247,144,164,86,53,207,80,208,178,224,98,48,211,111,69,114,91,223,59,229,245,32,23,123,62,245,12,211,103,144,180,126,57,131,192,232,160,32,19,94,61,8,29,103,96,113,3,85,243,243,23,220,231,227,198,19,32,194,172,182,208,227,46,161,35,204,45,30,237,6,98,240,148,118,82,56,18,1,202,80,59,54,152,124,118,132,207,221,182,72,249,218,198,101,219,193,192,253,127,182,192,67,74,5,227,58,224,249,208,236,97,90,61,72,52,40,54,76,56,12,188,24,166,130,29,212,94,194,103,48,112,122,58,93,4,35,222,180,44,166,160,119,136,26,123,107,200,232,230,120,82,153,174,52,188,47,245,254,52,228,168,209,233,176,94,187,23,57,97,108,51,62,170,16,21,13,34,90,43,108,144,162,20,225,17,3,119,4,57,130,231,13,66,80,175,38,169,5,230,84,190,101,98,163,49,160,47,234,104,55,163,230,87,114,163,95,98,30,85,60,228,183,133,2,212,208,228,197,95,56,57,103,58,89,225,135,215,245,96,146,229,237,29,171,70,209,244,175,1,58,217,139,128,65,78,74,146,179,170,50,250,36,252,14,168,1,251,14,74,219,187,46,57,126,203,64,123,163,36,175,202,252,11,25,144,37,168,206,131,243,191,233,199,208,155,62,125,62,189,94,156,1,4,70,241,8,100,163,148,235,87,43,168,243,115,255,6,163,218,193,65,79,238,135,137,39,29,25,183,159,237,199,120,72,95,218,137,17,71,160,15,31,232,193,122,203,14,249,196,116,236,149,67,182,152,56,31,4,187,195,124,65,86,195,111,189,175,73,251,239,152,224,196,75,86,248,25,19,116,3,89,225,103,76,204,91,143,172,204,15,220,193,231,26,110,224,183,126,153,104,240,179,53,168,21,77,247,233,44,89,11,76,216,27,94,92,142,255,116,112,255,52,88,192,134,32,60,87,48,50,195,135,91,240,239,133,141,242,240,72,182,97,47,152,98,208,63,154,82,247,56,83,34,240,97,243,238,239,223,59,222,62,126,253,106,150,127,242,70,213,110,245,228,255,148,40,253,23,8,208,63,203,110,17,0,0 }; +const uint8_t JS_TABBEDCONTENT_GZIP[1412] PROGMEM = { 31,139,8,0,210,8,51,99,2,255,173,88,221,111,219,54,16,127,239,95,225,56,158,73,193,178,146,188,90,85,7,44,235,128,2,3,134,45,125,90,145,14,140,68,219,90,21,74,19,169,124,192,245,255,190,59,138,164,72,197,113,179,172,47,182,73,30,239,251,126,119,116,74,215,157,200,85,89,11,58,139,139,58,239,110,185,80,241,125,41,138,250,62,238,68,193,215,165,224,69,180,155,118,146,79,164,106,203,92,77,211,59,214,78,62,178,155,27,94,228,181,80,112,33,115,76,20,187,49,123,113,221,224,142,140,118,72,14,140,88,87,41,153,237,170,82,124,145,171,129,46,105,90,126,71,163,4,4,21,148,48,18,37,21,23,27,181,253,241,8,201,138,36,112,42,39,140,196,188,109,235,246,138,87,60,87,117,11,251,122,189,188,229,82,178,13,39,177,108,56,47,86,107,86,73,30,215,226,234,190,84,249,214,45,63,136,82,153,69,222,181,45,72,186,172,152,148,43,194,192,152,59,184,13,66,222,35,63,179,189,101,114,169,249,75,18,111,75,9,2,31,87,170,237,184,93,252,214,115,212,91,85,93,55,61,239,125,188,46,91,169,62,150,183,60,51,194,182,101,85,128,184,204,51,209,238,209,200,114,203,250,40,36,102,9,28,243,204,70,40,129,5,67,247,90,197,51,209,85,85,106,92,158,205,18,254,0,92,11,106,221,238,130,145,150,107,122,66,205,42,209,177,152,148,66,42,38,114,94,175,39,179,40,218,5,135,217,44,36,142,210,253,27,27,236,9,186,231,1,180,147,24,246,104,215,114,213,181,98,242,83,93,87,156,9,106,45,130,176,85,138,183,154,198,196,54,224,82,202,95,208,63,212,49,176,38,101,217,121,72,247,65,40,42,186,91,71,8,191,127,184,120,74,246,43,59,204,205,41,212,43,177,188,240,175,245,74,66,86,7,182,204,168,2,247,71,9,83,170,165,100,219,242,53,228,231,45,131,36,162,130,223,79,254,224,155,247,15,13,222,88,144,25,137,2,179,54,92,57,110,224,116,248,14,29,109,68,236,224,0,171,33,70,247,174,2,95,39,252,31,188,150,64,26,240,7,26,69,123,96,15,156,122,63,32,223,128,135,179,174,191,21,61,207,208,50,58,22,160,131,156,61,186,67,220,205,177,195,2,231,69,231,219,132,53,77,245,168,125,26,127,2,54,215,224,49,173,205,17,105,228,148,44,190,147,68,195,202,73,245,99,117,217,167,201,192,34,148,212,176,254,212,105,149,144,133,165,240,177,35,178,209,242,217,11,168,70,138,128,16,237,22,11,67,141,133,136,91,144,151,3,204,234,13,39,24,22,72,101,46,188,29,165,175,83,84,106,80,195,92,51,148,49,2,16,40,192,1,107,38,70,204,124,110,14,223,101,223,230,115,110,57,188,177,238,68,216,242,45,210,128,220,91,180,92,190,214,162,119,217,249,43,141,120,123,240,226,184,188,191,105,133,109,8,174,72,173,162,6,114,231,243,209,70,15,240,243,185,3,244,249,220,156,156,120,70,207,231,148,52,157,220,94,41,166,56,41,197,196,208,64,189,142,58,65,106,32,94,114,189,89,119,202,207,101,115,45,105,121,83,177,156,107,118,20,113,62,38,186,53,129,105,241,197,249,57,90,104,65,206,79,228,212,51,200,90,58,159,171,199,6,241,103,124,0,65,35,86,52,25,122,128,239,161,152,53,37,213,24,231,181,45,152,8,54,27,172,7,111,175,15,9,209,21,222,95,186,14,202,97,8,153,33,208,190,63,65,168,83,245,21,112,20,27,106,81,246,236,243,233,25,248,13,206,50,172,94,15,84,113,2,48,184,92,22,36,234,33,237,36,108,73,3,30,152,208,135,69,221,223,102,109,201,150,82,79,16,188,32,49,209,180,0,243,174,228,91,126,91,223,113,93,222,244,96,205,167,223,5,7,159,81,7,147,216,215,134,21,197,49,85,92,21,108,203,130,135,73,224,178,218,186,252,191,229,174,77,71,119,60,202,69,172,212,157,73,104,59,158,36,48,50,109,113,204,73,247,144,164,86,53,207,80,208,178,224,98,48,211,111,69,114,91,223,59,229,245,32,23,123,62,245,12,211,103,144,180,126,57,131,192,232,160,32,19,94,61,8,29,103,96,113,3,85,243,243,23,220,231,227,198,19,32,194,172,182,208,227,46,161,35,204,45,30,237,6,98,240,148,118,82,56,18,1,202,80,59,54,152,124,118,132,207,221,182,72,249,218,198,101,219,193,192,253,127,182,192,67,74,5,227,58,224,249,208,236,97,90,61,72,52,40,54,76,56,12,188,24,166,130,29,212,94,194,103,48,112,122,58,93,4,35,222,180,44,166,160,119,136,26,123,107,200,232,230,120,82,153,174,52,188,47,245,254,52,228,168,209,233,176,94,187,23,57,97,108,51,62,170,16,21,13,34,90,43,108,144,162,20,225,17,3,119,4,57,130,231,13,66,80,175,38,169,5,230,84,190,101,98,163,49,160,47,234,104,55,163,230,87,114,163,95,98,30,85,60,228,183,133,2,212,208,228,197,95,56,57,103,58,89,225,135,215,245,96,146,229,237,29,171,70,209,244,175,1,58,217,139,128,65,78,74,146,179,170,50,250,36,252,14,168,1,251,14,74,219,187,46,57,126,203,64,123,163,36,175,202,252,11,25,144,37,168,206,131,243,191,233,199,208,155,62,125,62,189,94,156,1,4,70,241,8,100,163,148,235,87,43,168,243,115,255,6,163,218,193,65,79,238,135,137,39,29,25,183,159,237,199,120,72,95,218,137,17,71,160,15,31,232,193,122,203,14,249,196,116,236,149,67,182,152,56,31,4,187,195,124,65,86,195,111,189,175,73,251,239,152,224,196,75,86,248,25,19,116,3,89,225,103,76,204,91,143,172,204,15,220,193,231,26,110,224,183,126,153,104,240,179,53,168,21,77,247,233,44,89,11,76,216,27,94,92,142,255,116,112,255,52,88,192,134,32,60,87,48,50,195,135,91,240,239,133,141,242,240,72,182,97,47,152,98,208,63,154,82,247,56,83,34,240,97,243,238,239,223,59,222,62,126,253,106,150,127,242,70,213,110,245,228,255,148,40,253,23,8,208,63,203,110,17,0,0 }; diff --git a/src/dataZeptoJS.h b/src/dataZeptoJS.h index d9edc11..392c02d 100644 --- a/src/dataZeptoJS.h +++ b/src/dataZeptoJS.h @@ -2,4 +2,4 @@ const char JS_ZEPTO[] PROGMEM = R"=====( !function(t,e){"function"==typeof define&&define.amd?define(function(){return e(t)}):e(t)}(this,function(t){var e=function(){function $(t){return null==t?String(t):S[C.call(t)]||"object"}function F(t){return"function"==$(t)}function k(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function R(t){return"object"==$(t)}function Z(t){return R(t)&&!k(t)&&Object.getPrototypeOf(t)==Object.prototype}function z(t){var e=!!t&&"length"in t&&t.length,n=r.type(t);return"function"!=n&&!k(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function q(t){return a.call(t,function(t){return null!=t})}function H(t){return t.length>0?r.fn.concat.apply([],t):t}function I(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function V(t){return t in l?l[t]:l[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function _(t,e){return"number"!=typeof e||h[I(t)]?e:e+"px"}function B(t){var e,n;return c[t]||(e=f.createElement(t),f.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),c[t]=n),c[t]}function U(t){return"children"in t?u.call(t.children):r.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function X(t,e){var n,r=t?t.length:0;for(n=0;r>n;n++)this[n]=t[n];this.length=r,this.selector=e||""}function J(t,r,i){for(n in r)i&&(Z(r[n])||L(r[n]))?(Z(r[n])&&!Z(t[n])&&(t[n]={}),L(r[n])&&!L(t[n])&&(t[n]=[]),J(t[n],r[n],i)):r[n]!==e&&(t[n]=r[n])}function W(t,e){return null==e?r(t):r(t).filter(e)}function Y(t,e,n,r){return F(e)?e.call(t,n,r):e}function G(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function K(t,n){var r=t.className||"",i=r&&r.baseVal!==e;return n===e?i?r.baseVal:r:void(i?r.baseVal=n:t.className=n)}function Q(t){try{return t?"true"==t||("false"==t?!1:"null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?r.parseJSON(t):t):t}catch(e){return t}}function tt(t,e){e(t);for(var n=0,r=t.childNodes.length;r>n;n++)tt(t.childNodes[n],e)}var e,n,r,i,O,P,o=[],s=o.concat,a=o.filter,u=o.slice,f=t.document,c={},l={},h={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},p=/^\s*<(\w+|!)[^>]*>/,d=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,m=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,g=/^(?:body|html)$/i,v=/([A-Z])/g,y=["val","css","html","text","data","width","height","offset"],x=["after","prepend","before","append"],b=f.createElement("table"),E=f.createElement("tr"),j={tr:f.createElement("tbody"),tbody:b,thead:b,tfoot:b,td:E,th:E,"*":f.createElement("div")},w=/complete|loaded|interactive/,T=/^[\w-]*$/,S={},C=S.toString,N={},A=f.createElement("div"),D={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},L=Array.isArray||function(t){return t instanceof Array};return N.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=A).appendChild(t),r=~N.qsa(i,e).indexOf(t),o&&A.removeChild(t),r},O=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},P=function(t){return a.call(t,function(e,n){return t.indexOf(e)==n})},N.fragment=function(t,n,i){var o,s,a;return d.test(t)&&(o=r(f.createElement(RegExp.$1))),o||(t.replace&&(t=t.replace(m,"<$1>")),n===e&&(n=p.test(t)&&RegExp.$1),n in j||(n="*"),a=j[n],a.innerHTML=""+t,o=r.each(u.call(a.childNodes),function(){a.removeChild(this)})),Z(i)&&(s=r(o),r.each(i,function(t,e){y.indexOf(t)>-1?s[t](e):s.attr(t,e)})),o},N.Z=function(t,e){return new X(t,e)},N.isZ=function(t){return t instanceof N.Z},N.init=function(t,n){var i;if(!t)return N.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&p.test(t))i=N.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}else{if(F(t))return r(f).ready(t);if(N.isZ(t))return t;if(L(t))i=q(t);else if(R(t))i=[t],t=null;else if(p.test(t))i=N.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}}return N.Z(i,t)},r=function(t,e){return N.init(t,e)},r.extend=function(t){var e,n=u.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){J(t,n,e)}),t},N.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,s=T.test(o);return t.getElementById&&s&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:u.call(s&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},r.contains=f.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},r.type=$,r.isFunction=F,r.isWindow=k,r.isArray=L,r.isPlainObject=Z,r.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},r.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},r.inArray=function(t,e,n){return o.indexOf.call(e,t,n)},r.camelCase=O,r.trim=function(t){return null==t?"":String.prototype.trim.call(t)},r.uuid=0,r.support={},r.expr={},r.noop=function(){},r.map=function(t,e){var n,i,o,r=[];if(z(t))for(i=0;i=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return o.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return F(t)?this.not(this.not(t)):r(a.call(this,function(e){return N.matches(e,t)}))},add:function(t,e){return r(P(this.concat(r(t,e))))},is:function(t){return this.length>0&&N.matches(this[0],t)},not:function(t){var n=[];if(F(t)&&t.call!==e)this.each(function(e){t.call(this,e)||n.push(this)});else{var i="string"==typeof t?this.filter(t):z(t)&&F(t.item)?u.call(t):r(t);this.forEach(function(t){i.indexOf(t)<0&&n.push(t)})}return r(n)},has:function(t){return this.filter(function(){return R(t)?r.contains(this,t):r(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!R(t)?t:r(t)},last:function(){var t=this[this.length-1];return t&&!R(t)?t:r(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?r(t).filter(function(){var t=this;return o.some.call(n,function(e){return r.contains(e,t)})}):1==this.length?r(N.qsa(this[0],t)):this.map(function(){return N.qsa(this,t)}):r()},closest:function(t,e){var n=[],i="object"==typeof t&&r(t);return this.each(function(r,o){for(;o&&!(i?i.indexOf(o)>=0:N.matches(o,t));)o=o!==e&&!M(o)&&o.parentNode;o&&n.indexOf(o)<0&&n.push(o)}),r(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=r.map(n,function(t){return(t=t.parentNode)&&!M(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return W(e,t)},parent:function(t){return W(P(this.pluck("parentNode")),t)},children:function(t){return W(this.map(function(){return U(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||u.call(this.childNodes)})},siblings:function(t){return W(this.map(function(t,e){return a.call(U(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return r.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=B(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=F(t);if(this[0]&&!e)var n=r(t).get(0),i=n.parentNode||this.length>1;return this.each(function(o){r(this).wrapAll(e?t.call(this,o):i?n.cloneNode(!0):n)})},wrapAll:function(t){if(this[0]){r(this[0]).before(t=r(t));for(var e;(e=t.children()).length;)t=e.first();r(t).append(this)}return this},wrapInner:function(t){var e=F(t);return this.each(function(n){var i=r(this),o=i.contents(),s=e?t.call(this,n):t;o.length?o.wrapAll(s):i.append(s)})},unwrap:function(){return this.parent().each(function(){r(this).replaceWith(r(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var n=r(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()})},prev:function(t){return r(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return r(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;r(this).empty().append(Y(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=Y(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,r){var i;return"string"!=typeof t||1 in arguments?this.each(function(e){if(1===this.nodeType)if(R(t))for(n in t)G(this,n,t[n]);else G(this,t,Y(this,r,e,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(i=this[0].getAttribute(t))?i:e},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){G(this,t)},this)})},prop:function(t,e){return t=D[t]||t,1 in arguments?this.each(function(n){this[t]=Y(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=D[t]||t,this.each(function(){delete this[t]})},data:function(t,n){var r="data-"+t.replace(v,"-$1").toLowerCase(),i=1 in arguments?this.attr(r,n):this.attr(r);return null!==i?Q(i):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=Y(this,t,e,this.value)})):this[0]&&(this[0].multiple?r(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each(function(t){var n=r(this),i=Y(this,e,t,n.offset()),o=n.offsetParent().offset(),s={top:i.top-o.top,left:i.left-o.left};"static"==n.css("position")&&(s.position="relative"),n.css(s)});if(!this.length)return null;if(f.documentElement!==this[0]&&!r.contains(f.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var i=this[0];if("string"==typeof t){if(!i)return;return i.style[O(t)]||getComputedStyle(i,"").getPropertyValue(t)}if(L(t)){if(!i)return;var o={},s=getComputedStyle(i,"");return r.each(t,function(t,e){o[e]=i.style[O(e)]||s.getPropertyValue(e)}),o}}var a="";if("string"==$(t))e||0===e?a=I(t)+":"+_(t,e):this.each(function(){this.style.removeProperty(I(t))});else for(n in t)t[n]||0===t[n]?a+=I(n)+":"+_(n,t[n])+";":this.each(function(){this.style.removeProperty(I(n))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(r(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?o.some.call(this,function(t){return this.test(K(t))},V(t)):!1},addClass:function(t){return t?this.each(function(e){if("className"in this){i=[];var n=K(this),o=Y(this,t,e,n);o.split(/\s+/g).forEach(function(t){r(this).hasClass(t)||i.push(t)},this),i.length&&K(this,n+(n?" ":"")+i.join(" "))}}):this},removeClass:function(t){return this.each(function(n){if("className"in this){if(t===e)return K(this,"");i=K(this),Y(this,t,n,i).split(/\s+/g).forEach(function(t){i=i.replace(V(t)," ")}),K(this,i.trim())}})},toggleClass:function(t,n){return t?this.each(function(i){var o=r(this),s=Y(this,t,i,K(this));s.split(/\s+/g).forEach(function(t){(n===e?!o.hasClass(t):n)?o.addClass(t):o.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),i=g.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(r(t).css("margin-top"))||0,n.left-=parseFloat(r(t).css("margin-left"))||0,i.top+=parseFloat(r(e[0]).css("border-top-width"))||0,i.left+=parseFloat(r(e[0]).css("border-left-width"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||f.body;t&&!g.test(t.nodeName)&&"static"==r(t).css("position");)t=t.offsetParent;return t})}},r.fn.detach=r.fn.remove,["width","height"].forEach(function(t){var n=t.replace(/./,function(t){return t[0].toUpperCase()});r.fn[t]=function(i){var o,s=this[0];return i===e?k(s)?s["inner"+n]:M(s)?s.documentElement["scroll"+n]:(o=this.offset())&&o[t]:this.each(function(e){s=r(this),s.css(t,Y(this,i,e,s[t]()))})}}),x.forEach(function(n,i){var o=i%2;r.fn[n]=function(){var n,a,s=r.map(arguments,function(t){var i=[];return n=$(t),"array"==n?(t.forEach(function(t){return t.nodeType!==e?i.push(t):r.zepto.isZ(t)?i=i.concat(t.get()):void(i=i.concat(N.fragment(t)))}),i):"object"==n||null==t?t:N.fragment(t)}),u=this.length>1;return s.length<1?this:this.each(function(e,n){a=o?n:n.parentNode,n=0==i?n.nextSibling:1==i?n.firstChild:2==i?n:null;var c=r.contains(f.documentElement,a);s.forEach(function(e){if(u)e=e.cloneNode(!0);else if(!a)return r(e).remove();a.insertBefore(e,n),c&&tt(e,function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}})})})},r.fn[o?n+"To":"insert"+(i?"Before":"After")]=function(t){return r(t)[n](this),this}}),N.Z.prototype=X.prototype=r.fn,N.uniq=P,N.deserializeValue=Q,r.zepto=N,r}();return t.Zepto=e,void 0===t.$&&(t.$=e),function(e){function h(t){return t._zid||(t._zid=n++)}function p(t,e,n,r){if(e=d(e),e.ns)var i=m(e.ns);return(a[h(t)]||[]).filter(function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||i.test(t.ns))&&(!n||h(t.fn)===h(n))&&(!r||t.sel==r)})}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function m(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function g(t,e){return t.del&&!f&&t.e in c||!!e}function v(t){return l[t]||f&&c[t]||t}function y(t,n,i,o,s,u,f){var c=h(t),p=a[c]||(a[c]=[]);n.split(/\s/).forEach(function(n){if("ready"==n)return e(document).ready(i);var a=d(n);a.fn=i,a.sel=s,a.e in l&&(i=function(t){var n=t.relatedTarget;return!n||n!==this&&!e.contains(this,n)?a.fn.apply(this,arguments):void 0}),a.del=u;var c=u||i;a.proxy=function(e){if(e=T(e),!e.isImmediatePropagationStopped()){e.data=o;var n=c.apply(t,e._args==r?[e]:[e].concat(e._args));return n===!1&&(e.preventDefault(),e.stopPropagation()),n}},a.i=p.length,p.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,g(a,f))})}function x(t,e,n,r,i){var o=h(t);(e||"").split(/\s/).forEach(function(e){p(t,e,n,r).forEach(function(e){delete a[o][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,g(e,i))})})}function T(t,n){return(n||!t.isDefaultPrevented)&&(n||(n=t),e.each(w,function(e,r){var i=n[e];t[e]=function(){return this[r]=b,i&&i.apply(n,arguments)},t[r]=E}),t.timeStamp||(t.timeStamp=Date.now()),(n.defaultPrevented!==r?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(t.isDefaultPrevented=b)),t}function S(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===r||(n[e]=t[e]);return T(n,t)}var r,n=1,i=Array.prototype.slice,o=e.isFunction,s=function(t){return"string"==typeof t},a={},u={},f="onfocusin"in t,c={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:x},e.proxy=function(t,n){var r=2 in arguments&&i.call(arguments,2);if(o(t)){var a=function(){return t.apply(n,r?r.concat(i.call(arguments)):arguments)};return a._zid=h(t),a}if(s(n))return r?(r.unshift(t[n],t),e.proxy.apply(null,r)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var b=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,w={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,n,a,u,f){var c,l,h=this;return t&&!s(t)?(e.each(t,function(t,e){h.on(t,n,a,e,f)}),h):(s(n)||o(u)||u===!1||(u=a,a=n,n=r),(u===r||a===!1)&&(u=a,a=r),u===!1&&(u=E),h.each(function(r,o){f&&(c=function(t){return x(o,t.type,u),u.apply(this,arguments)}),n&&(l=function(t){var r,s=e(t.target).closest(n,o).get(0);return s&&s!==o?(r=e.extend(S(t),{currentTarget:s,liveFired:o}),(c||u).apply(s,[r].concat(i.call(arguments,1)))):void 0}),y(o,t,u,a,n,l||c)}))},e.fn.off=function(t,n,i){var a=this;return t&&!s(t)?(e.each(t,function(t,e){a.off(t,n,e)}),a):(s(n)||o(i)||i===!1||(i=n,n=r),i===!1&&(i=E),a.each(function(){x(this,t,i,n)}))},e.fn.trigger=function(t,n){return t=s(t)||e.isPlainObject(t)?e.Event(t):T(t),t._args=n,this.each(function(){t.type in c&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)})},e.fn.triggerHandler=function(t,n){var r,i;return this.each(function(o,a){r=S(s(t)?e.Event(t):t),r._args=n,r.target=a,e.each(p(a,t.type||t),function(t,e){return i=e.proxy(r),r.isImmediatePropagationStopped()?!1:void 0})}),i},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}}),e.Event=function(t,e){s(t)||(e=t,t=e.type);var n=document.createEvent(u[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),T(n)}}(e),function(e){function p(t,n,r){var i=e.Event(n);return e(t).trigger(i,r),!i.isDefaultPrevented()}function d(t,e,n,i){return t.global?p(e||r,n,i):void 0}function m(t){t.global&&0===e.active++&&d(t,null,"ajaxStart")}function g(t){t.global&&!--e.active&&d(t,null,"ajaxStop")}function v(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||d(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void d(e,n,"ajaxSend",[t,e])}function y(t,e,n,r){var i=n.context,o="success";n.success.call(i,t,o,e),r&&r.resolveWith(i,[t,o,e]),d(n,i,"ajaxSuccess",[e,n,t]),b(o,e,n)}function x(t,e,n,r,i){var o=r.context;r.error.call(o,n,e,t),i&&i.rejectWith(o,[n,e,t]),d(r,o,"ajaxError",[n,r,t||e]),b(e,n,r)}function b(t,e,n){var r=n.context;n.complete.call(r,e,t),d(n,r,"ajaxComplete",[e,n]),g(n)}function E(t,e,n){if(n.dataFilter==j)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function j(){}function w(t){return t&&(t=t.split(";",2)[0]),t&&(t==c?"html":t==f?"json":a.test(t)?"script":u.test(t)&&"xml")||"text"}function T(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function S(t){t.processData&&t.data&&"string"!=e.type(t.data)&&(t.data=e.param(t.data,t.traditional)),!t.data||t.type&&"GET"!=t.type.toUpperCase()&&"jsonp"!=t.dataType||(t.url=T(t.url,t.data),t.data=void 0)}function C(t,n,r,i){return e.isFunction(n)&&(i=r,r=n,n=void 0),e.isFunction(r)||(i=r,r=void 0),{url:t,data:n,success:r,dataType:i}}function O(t,n,r,i){var o,s=e.isArray(n),a=e.isPlainObject(n);e.each(n,function(n,u){o=e.type(u),i&&(n=r?i:i+"["+(a||"object"==o||"array"==o?n:"")+"]"),!i&&s?t.add(u.name,u.value):"array"==o||!r&&"object"==o?O(t,u,r,n):t.add(n,u)})}var i,o,n=+new Date,r=t.document,s=/)<[^<]*)*<\/script>/gi,a=/^(?:text|application)\/javascript/i,u=/^(?:text|application)\/xml/i,f="application/json",c="text/html",l=/^\s*$/,h=r.createElement("a");h.href=t.location.href,e.active=0,e.ajaxJSONP=function(i,o){if(!("type"in i))return e.ajax(i);var c,p,s=i.jsonpCallback,a=(e.isFunction(s)?s():s)||"Zepto"+n++,u=r.createElement("script"),f=t[a],l=function(t){e(u).triggerHandler("error",t||"abort")},h={abort:l};return o&&o.promise(h),e(u).on("load error",function(n,r){clearTimeout(p),e(u).off().remove(),"error"!=n.type&&c?y(c[0],h,i,o):x(null,r||"error",h,i,o),t[a]=f,c&&e.isFunction(f)&&f(c[0]),f=c=void 0}),v(h,i)===!1?(l("abort"),h):(t[a]=function(){c=arguments},u.src=i.url.replace(/\?(.+)=\?/,"?$1="+a),r.head.appendChild(u),i.timeout>0&&(p=setTimeout(function(){l("timeout")},i.timeout)),h)},e.ajaxSettings={type:"GET",beforeSend:j,success:j,error:j,complete:j,context:null,global:!0,xhr:function(){return new t.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:f,xml:"application/xml, text/xml",html:c,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:j},e.ajax=function(n){var u,f,s=e.extend({},n||{}),a=e.Deferred&&e.Deferred();for(i in e.ajaxSettings)void 0===s[i]&&(s[i]=e.ajaxSettings[i]);m(s),s.crossDomain||(u=r.createElement("a"),u.href=s.url,u.href=u.href,s.crossDomain=h.protocol+"//"+h.host!=u.protocol+"//"+u.host),s.url||(s.url=t.location.toString()),(f=s.url.indexOf("#"))>-1&&(s.url=s.url.slice(0,f)),S(s);var c=s.dataType,p=/\?.+=\?/.test(s.url);if(p&&(c="jsonp"),s.cache!==!1&&(n&&n.cache===!0||"script"!=c&&"jsonp"!=c)||(s.url=T(s.url,"_="+Date.now())),"jsonp"==c)return p||(s.url=T(s.url,s.jsonp?s.jsonp+"=?":s.jsonp===!1?"":"callback=?")),e.ajaxJSONP(s,a);var P,d=s.accepts[c],g={},b=function(t,e){g[t.toLowerCase()]=[t,e]},C=/^([\w-]+:)\/\//.test(s.url)?RegExp.$1:t.location.protocol,N=s.xhr(),O=N.setRequestHeader;if(a&&a.promise(N),s.crossDomain||b("X-Requested-With","XMLHttpRequest"),b("Accept",d||"*/*"),(d=s.mimeType||d)&&(d.indexOf(",")>-1&&(d=d.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(d)),(s.contentType||s.contentType!==!1&&s.data&&"GET"!=s.type.toUpperCase())&&b("Content-Type",s.contentType||"application/x-www-form-urlencoded"),s.headers)for(o in s.headers)b(o,s.headers[o]);if(N.setRequestHeader=b,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=j,clearTimeout(P);var t,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==C){if(c=c||w(s.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)t=N.response;else{t=N.responseText;try{t=E(t,c,s),"script"==c?(1,eval)(t):"xml"==c?t=N.responseXML:"json"==c&&(t=l.test(t)?null:e.parseJSON(t))}catch(r){n=r}if(n)return x(n,"parsererror",N,s,a)}y(t,N,s,a)}else x(N.statusText||null,N.status?"error":"abort",N,s,a)}},v(N,s)===!1)return N.abort(),x(null,"abort",N,s,a),N;var A="async"in s?s.async:!0;if(N.open(s.type,s.url,A,s.username,s.password),s.xhrFields)for(o in s.xhrFields)N[o]=s.xhrFields[o];for(o in g)O.apply(N,g[o]);return s.timeout>0&&(P=setTimeout(function(){N.onreadystatechange=j,N.abort(),x(null,"timeout",N,s,a)},s.timeout)),N.send(s.data?s.data:null),N},e.get=function(){return e.ajax(C.apply(null,arguments))},e.post=function(){var t=C.apply(null,arguments);return t.type="POST",e.ajax(t)},e.getJSON=function(){var t=C.apply(null,arguments);return t.dataType="json",e.ajax(t)},e.fn.load=function(t,n,r){if(!this.length)return this;var a,i=this,o=t.split(/\s/),u=C(t,n,r),f=u.success;return o.length>1&&(u.url=o[0],a=o[1]),u.success=function(t){i.html(a?e("
    ").html(t.replace(s,"")).find(a):t),f&&f.apply(i,arguments)},e.ajax(u),this};var N=encodeURIComponent;e.param=function(t,n){var r=[];return r.add=function(t,n){e.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(t)+"="+N(n))},O(r,t,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;t.getComputedStyle=function(t,e){try{return n(t,e)}catch(r){return null}}}}(),e}); )====="; -const uint8_t JS_ZEPTO_GZIP[9713] PROGMEM = { 31,139,8,0,206,101,43,99,2,255,173,125,107,119,219,182,150,246,95,145,56,25,45,178,130,101,59,243,126,121,169,32,92,105,154,180,61,77,156,156,218,61,109,35,171,93,148,4,217,76,40,82,37,41,95,98,105,126,251,60,123,3,32,65,137,78,115,102,205,89,61,22,9,226,142,125,121,246,198,6,210,95,110,178,121,149,228,153,95,9,21,60,120,246,213,147,178,186,95,171,124,217,91,168,101,146,169,193,64,255,142,226,213,34,210,143,126,93,52,120,40,84,181,41,178,158,242,171,96,23,132,252,227,87,215,73,41,154,234,131,135,155,184,232,41,233,148,178,143,189,39,244,217,212,145,109,210,20,141,71,231,85,145,100,87,248,16,158,79,94,142,230,113,154,226,121,186,221,122,249,236,163,154,87,222,174,46,253,186,41,237,246,159,42,109,50,125,218,107,162,47,171,193,160,66,67,163,219,36,91,228,183,77,206,183,157,57,71,89,190,80,23,152,18,42,242,221,187,151,191,188,125,117,118,241,231,217,187,239,94,53,37,127,118,58,98,122,185,223,141,15,78,229,148,125,48,232,127,226,159,119,156,127,116,165,170,247,69,94,229,52,249,239,150,248,34,165,249,178,182,201,77,101,159,155,89,237,247,209,73,47,85,217,85,117,237,37,89,143,187,172,95,69,38,139,17,21,68,238,241,254,52,245,101,86,119,193,247,226,162,136,239,209,231,108,187,61,145,82,42,204,118,182,89,205,84,209,144,3,40,65,61,63,193,159,163,211,30,181,227,140,237,47,103,108,177,89,177,22,1,180,39,117,231,20,253,193,249,108,251,253,252,36,42,70,203,108,52,207,179,121,92,141,226,245,58,189,247,39,83,1,138,168,154,146,63,182,74,22,106,157,198,115,229,31,135,225,241,149,240,142,189,160,73,242,39,47,142,62,76,135,129,254,157,196,71,159,167,1,101,122,114,250,231,147,167,237,140,248,118,185,152,154,156,221,153,254,164,212,35,164,84,249,155,252,86,21,47,227,82,249,206,136,254,229,246,139,102,42,141,210,73,53,13,233,143,204,212,109,239,103,117,245,234,110,237,123,254,31,219,203,203,50,240,134,213,208,243,241,180,125,18,120,78,61,127,106,198,52,235,102,86,163,95,175,198,118,123,61,161,41,152,70,42,84,67,111,125,231,240,197,183,53,121,136,204,44,124,111,142,230,183,91,31,108,56,154,23,42,174,212,171,84,173,84,86,33,171,88,142,102,249,226,158,38,90,101,139,151,215,73,186,240,85,0,234,1,77,190,204,87,235,77,165,22,231,213,125,170,124,37,60,12,92,147,234,90,21,213,253,191,226,116,163,124,111,145,148,152,157,123,47,16,106,180,142,11,84,123,6,166,193,156,173,242,27,85,87,232,101,121,166,136,200,64,113,153,244,102,105,62,255,132,34,115,158,24,253,219,140,225,23,135,165,230,84,3,106,101,250,142,54,134,194,70,54,57,8,139,209,42,94,219,20,106,186,236,34,191,83,226,96,203,205,81,21,222,228,201,162,119,226,82,227,111,122,206,105,234,50,81,64,22,89,146,12,79,198,203,188,64,175,79,198,197,243,108,156,13,135,1,73,185,73,54,149,21,254,140,233,197,100,149,133,224,183,82,165,224,222,188,96,102,114,22,231,31,104,163,16,9,132,32,85,72,4,82,4,9,102,228,131,95,160,166,96,187,125,163,31,130,200,38,129,79,33,61,244,19,255,202,135,93,32,222,212,31,223,180,63,78,166,129,248,7,63,10,202,129,166,48,65,120,232,131,175,109,30,46,218,244,233,87,151,214,140,32,86,81,65,50,152,254,140,150,73,90,169,2,107,216,20,249,157,138,8,204,82,93,236,53,190,71,202,178,63,125,9,29,145,245,189,206,31,60,232,218,179,168,50,228,241,162,130,188,159,129,198,80,60,172,48,109,149,147,130,2,77,21,63,81,181,122,117,176,54,163,121,26,151,229,89,188,226,249,21,137,44,6,131,98,52,3,55,130,40,105,172,150,242,51,18,104,81,18,213,31,195,130,151,222,119,146,100,22,58,21,74,183,213,127,18,5,85,197,125,205,211,145,87,21,27,162,227,10,252,228,45,227,180,228,151,168,127,26,122,52,56,126,161,135,144,56,155,223,134,85,120,252,199,228,114,114,249,48,61,30,85,170,36,174,67,227,96,149,82,253,227,252,221,25,77,52,75,55,200,187,249,181,223,44,69,181,107,58,82,85,122,149,88,156,19,241,48,153,202,19,193,147,81,83,190,33,195,134,78,171,22,99,16,69,96,29,141,116,32,74,20,239,196,123,145,131,108,68,41,115,35,116,69,140,71,189,234,98,131,199,50,77,230,74,44,209,208,34,159,111,72,110,136,57,168,80,164,244,231,90,62,120,243,60,221,172,178,163,121,190,201,42,47,60,21,250,189,196,147,183,204,179,234,232,86,37,87,215,252,197,75,1,33,142,174,235,247,124,29,207,147,234,158,190,124,62,130,70,86,119,148,250,57,207,87,225,233,78,172,229,241,31,151,229,55,207,252,203,219,225,182,31,76,254,120,62,253,230,249,177,88,32,153,211,2,124,188,60,142,158,251,81,248,236,242,248,242,244,249,54,120,114,44,86,242,248,153,31,245,33,137,226,237,172,216,162,51,91,5,249,185,216,94,23,219,100,117,181,77,50,8,181,45,58,242,105,187,82,85,188,197,66,196,171,192,247,39,151,183,33,20,5,183,18,92,30,63,63,190,74,196,21,154,66,237,36,33,183,215,213,42,69,253,137,184,145,199,141,142,184,151,19,239,38,78,61,225,205,203,18,127,41,23,126,42,117,87,225,103,17,87,49,126,110,147,5,20,52,62,234,129,11,47,95,46,65,235,222,84,220,161,120,188,196,76,35,113,13,53,3,25,140,167,153,194,18,43,60,104,169,140,124,179,3,209,237,85,241,44,85,16,161,175,58,62,21,72,255,40,65,185,225,225,55,26,12,62,243,111,56,131,188,82,241,130,126,151,121,94,209,239,34,124,133,68,252,241,190,241,14,139,47,146,27,40,42,113,43,143,231,208,14,169,170,212,54,205,227,5,166,55,201,48,140,24,228,122,163,142,197,133,36,154,191,61,154,126,131,21,57,39,66,121,41,207,161,53,53,190,19,103,148,242,66,118,215,46,190,67,207,227,25,147,67,72,195,252,145,9,67,32,235,34,207,210,251,208,163,167,119,120,242,136,192,10,47,228,89,127,157,211,36,50,31,35,165,230,103,79,172,226,59,35,200,61,60,190,209,104,73,204,85,154,150,68,126,217,21,114,227,229,92,191,232,47,235,120,177,168,191,188,215,47,232,65,126,139,34,25,58,144,223,34,123,230,17,169,235,20,60,232,148,77,169,160,143,66,15,191,111,227,181,39,150,160,46,53,203,139,133,42,66,143,95,190,229,23,42,139,25,195,127,139,132,151,146,234,224,132,87,38,193,219,137,55,242,5,129,179,81,82,242,239,118,219,161,217,8,103,148,85,156,205,9,26,112,182,157,149,126,103,80,141,144,41,170,148,109,192,159,44,253,62,36,103,31,66,236,180,239,42,198,64,23,236,159,142,181,124,169,108,5,219,45,32,179,154,125,74,170,183,58,225,220,104,56,250,176,202,63,119,164,230,93,57,219,73,99,116,36,11,172,168,182,218,67,5,220,58,164,19,218,111,16,5,196,84,63,177,35,203,161,204,18,249,34,104,225,22,160,153,66,254,247,217,232,175,50,246,19,84,51,98,18,98,64,45,80,224,69,11,147,80,230,157,120,39,187,102,180,1,124,71,67,127,20,68,224,243,246,4,90,203,7,42,175,202,127,65,23,12,18,12,161,236,193,29,239,187,106,61,4,199,172,18,235,54,109,103,21,208,127,70,181,156,141,64,46,87,196,24,238,242,101,4,31,104,126,114,81,138,216,206,199,194,106,22,204,75,46,11,127,159,179,52,238,28,61,57,13,2,204,5,116,87,61,70,66,5,178,25,241,74,120,207,158,156,62,127,118,252,228,233,115,47,32,32,168,145,67,38,215,77,19,77,109,130,65,204,71,84,8,80,247,13,120,55,150,31,73,203,196,24,78,166,138,31,46,222,190,145,30,80,46,22,175,24,169,24,250,205,32,184,216,81,75,129,112,204,195,184,189,74,64,83,48,46,3,241,193,79,104,108,37,198,150,99,229,116,93,201,222,178,220,59,43,254,252,232,52,42,129,42,9,89,148,163,24,176,130,243,80,93,57,205,237,7,217,185,164,4,210,53,18,164,76,73,249,65,254,29,203,161,42,206,154,37,237,117,210,171,148,16,141,247,171,160,230,200,15,126,64,73,94,201,146,176,49,177,170,0,169,180,18,72,95,249,0,204,207,232,219,228,100,58,24,212,51,31,36,178,33,10,180,81,175,3,90,19,149,36,220,49,86,128,36,196,224,25,193,32,219,44,192,38,1,185,140,200,126,76,149,16,139,44,97,84,237,108,118,50,167,155,220,75,178,121,226,197,61,103,95,250,60,17,78,134,138,18,223,232,14,145,253,199,141,246,144,246,179,78,195,180,187,221,161,47,143,141,193,14,247,255,96,40,59,103,142,19,74,128,52,232,92,99,189,88,102,145,65,74,119,144,186,11,121,224,180,0,237,91,98,45,174,24,247,148,226,180,54,166,103,121,158,170,216,113,153,192,248,134,133,85,81,231,71,229,117,178,172,124,98,159,17,20,212,43,162,213,186,122,16,198,63,152,143,137,24,69,69,180,131,33,236,245,212,90,33,222,127,160,1,5,42,128,48,236,3,228,122,35,251,14,134,218,110,19,8,32,134,103,254,41,0,55,48,220,133,158,230,220,118,179,199,206,5,35,5,190,189,255,113,49,24,148,128,202,145,79,178,189,253,5,133,130,8,188,27,78,166,97,91,43,12,6,255,127,239,253,180,157,33,66,17,51,85,168,157,250,233,86,94,126,123,255,210,106,99,64,241,199,62,161,253,112,239,219,69,124,197,95,216,56,248,107,163,138,123,171,57,94,160,41,21,240,242,145,214,140,193,143,64,19,22,159,154,26,234,79,81,39,25,84,218,40,106,178,145,141,19,182,179,18,212,30,43,94,89,215,186,13,198,196,173,10,178,209,114,118,255,100,108,117,39,117,138,104,66,62,193,67,82,190,54,21,202,215,252,250,43,59,158,228,39,126,97,117,45,223,240,243,251,20,125,208,110,31,249,129,83,94,173,214,213,189,73,57,160,78,182,2,148,246,198,212,90,219,246,101,199,229,207,48,25,69,50,63,44,43,207,216,163,64,58,48,171,201,119,188,239,253,170,73,156,221,69,181,196,234,147,163,200,218,198,100,130,162,161,248,12,115,55,24,96,176,196,89,180,96,64,23,60,17,73,166,199,232,78,171,163,246,114,43,177,53,245,40,65,130,147,87,21,235,158,146,82,149,239,104,58,33,36,228,35,78,37,178,177,60,47,212,200,178,113,152,113,25,235,65,164,26,55,155,100,65,6,211,168,220,172,215,121,81,17,4,37,230,95,23,250,41,203,243,181,235,167,164,52,32,185,78,198,76,68,14,230,156,76,73,14,146,63,46,160,197,72,228,201,56,121,102,103,102,156,192,254,202,36,12,182,73,66,118,184,208,243,154,145,161,186,222,148,215,144,3,90,56,82,209,92,175,163,206,158,131,185,59,179,155,65,255,224,23,90,110,65,172,116,139,141,186,91,15,214,113,145,53,253,34,187,144,136,215,204,13,105,235,76,176,19,1,228,220,63,173,101,252,174,238,93,161,123,231,22,42,166,176,30,233,103,175,80,45,118,168,131,87,0,21,221,18,56,110,176,222,78,84,35,50,131,65,97,142,81,44,233,143,126,173,181,189,247,173,166,199,158,166,222,158,94,241,158,229,47,141,125,123,223,1,245,24,55,91,79,243,78,239,85,81,192,54,24,149,235,20,82,223,235,121,193,30,108,56,159,120,19,237,185,237,121,67,53,244,166,222,84,170,61,23,31,245,98,153,201,7,200,10,240,193,134,100,80,8,69,35,172,139,72,24,57,31,230,86,226,195,94,89,108,230,10,9,250,65,208,50,226,141,126,68,9,2,196,51,253,8,234,23,231,211,15,194,112,68,88,243,134,208,118,121,232,16,39,45,52,115,18,17,33,173,81,133,69,174,158,213,138,202,46,118,133,197,86,178,78,38,197,156,145,203,77,107,116,246,217,84,57,79,28,192,107,237,53,41,141,223,213,232,125,194,96,17,251,181,154,188,236,231,39,86,37,99,167,131,51,65,53,218,47,215,218,15,104,35,94,195,242,90,19,162,42,214,100,225,225,6,67,1,208,168,59,196,181,213,163,97,249,79,48,165,171,3,183,90,19,46,53,144,57,175,64,22,144,80,218,219,25,85,96,33,216,182,176,235,94,221,160,166,55,73,9,8,0,129,232,125,247,238,237,75,109,133,189,97,171,214,115,161,105,197,140,7,106,103,39,223,78,64,87,117,181,92,177,207,201,122,42,105,242,120,182,38,213,115,121,18,85,97,53,116,28,134,83,144,191,158,211,142,113,115,62,52,226,211,220,36,159,213,99,89,116,85,52,23,4,156,31,203,165,90,40,68,251,226,32,231,233,83,163,216,160,14,219,9,93,104,124,39,168,174,174,161,231,35,117,3,45,221,12,253,43,150,190,79,2,100,103,231,84,251,157,186,234,38,132,170,169,48,203,43,191,121,32,15,167,31,119,54,233,32,62,99,121,146,134,209,196,134,181,15,59,101,83,225,191,215,181,107,174,243,181,221,16,80,153,164,236,92,239,102,13,104,143,164,105,139,87,253,100,202,80,20,93,13,247,245,112,102,52,200,107,54,170,244,164,48,212,237,88,47,244,175,114,198,72,10,54,211,138,193,44,138,70,203,108,114,200,67,227,66,79,156,113,229,86,65,248,153,155,68,195,35,168,235,85,80,83,171,246,249,106,151,246,1,114,69,183,19,199,194,122,134,193,218,62,16,85,56,0,125,39,174,227,199,231,202,116,227,144,78,127,214,174,209,26,143,241,80,117,159,104,144,22,246,143,136,25,124,77,136,127,117,180,114,116,74,192,76,15,89,163,227,74,179,160,125,19,195,106,120,26,16,177,21,229,161,88,149,102,221,106,93,6,140,195,61,171,120,114,118,2,136,245,177,82,14,45,28,157,62,94,3,13,36,236,50,56,168,188,45,165,8,216,212,59,138,245,74,186,78,249,206,78,212,62,18,168,151,149,209,216,89,23,87,56,51,173,217,98,23,132,180,79,210,140,1,141,105,3,171,33,101,51,147,36,219,15,23,176,201,204,245,97,180,24,236,60,205,75,229,206,88,3,85,200,241,12,114,61,24,36,80,79,179,111,217,37,190,10,64,36,13,206,115,204,173,159,68,13,97,230,1,228,108,216,112,97,78,157,30,7,185,204,53,222,239,191,69,150,193,32,119,132,28,85,146,57,21,56,148,157,179,234,103,146,214,249,219,100,109,93,241,138,70,98,150,47,171,133,193,56,160,93,88,154,170,172,99,79,138,173,125,199,166,224,174,17,91,170,22,147,69,64,93,134,201,136,23,236,198,149,157,156,95,245,218,153,222,117,241,220,175,86,160,173,211,205,252,147,239,53,77,146,131,135,202,218,205,180,238,210,95,88,239,95,172,244,209,213,104,205,89,62,166,129,186,235,176,178,150,138,126,103,12,184,237,214,81,159,174,167,104,199,170,112,150,66,186,149,95,219,219,14,224,249,139,223,178,230,186,54,12,217,58,220,217,161,41,50,197,190,86,179,114,162,235,255,162,94,243,228,119,34,165,46,156,212,184,24,105,99,148,6,125,157,223,126,109,251,118,175,85,139,60,218,188,29,153,77,90,114,246,29,36,162,131,205,254,236,193,182,47,119,236,111,118,126,187,171,253,214,42,233,133,34,43,62,224,197,51,126,198,95,147,234,250,81,253,160,183,63,72,204,105,240,65,66,228,182,216,195,153,154,235,94,27,15,149,145,79,96,33,21,104,201,194,98,146,192,211,73,0,17,147,57,203,13,235,213,209,216,167,95,144,50,144,49,86,245,80,251,236,116,136,92,53,156,7,97,18,101,35,72,184,76,81,213,126,255,36,8,51,30,168,41,208,234,115,211,81,91,49,61,214,227,229,62,55,219,123,106,76,254,164,122,167,219,15,2,139,234,131,10,246,9,43,47,31,114,128,6,170,221,224,134,27,157,1,233,126,252,72,180,248,216,236,61,62,124,235,194,148,102,18,68,46,19,203,169,165,31,136,82,182,103,35,131,110,24,231,86,117,228,245,156,1,0,39,182,135,154,133,55,89,123,61,219,235,175,151,202,15,14,8,219,46,134,67,68,190,77,115,166,169,6,147,188,46,255,27,105,228,174,39,245,247,58,89,60,90,207,188,44,27,86,48,124,68,86,109,126,117,149,170,71,105,124,127,104,53,209,210,96,198,190,182,33,234,160,137,118,35,180,95,28,145,147,49,191,133,37,150,141,168,119,26,14,173,11,117,211,109,141,181,20,0,114,37,249,166,52,110,178,115,45,79,161,12,106,128,184,221,146,51,31,168,85,221,85,127,95,31,229,250,251,186,104,143,174,171,174,19,242,46,212,54,93,212,141,125,205,118,84,75,176,142,237,210,179,112,246,107,38,248,221,0,16,118,52,17,10,225,22,40,45,50,44,215,212,17,146,21,132,197,122,100,156,255,70,223,156,86,181,169,140,42,141,41,105,240,180,147,34,109,32,132,231,133,158,55,204,14,58,105,167,214,41,3,17,252,49,79,50,31,178,216,244,154,54,53,92,84,85,216,45,7,227,162,174,29,118,22,86,109,183,167,95,51,32,136,41,70,208,86,122,243,206,160,245,238,215,145,43,85,240,189,97,123,237,61,210,222,172,239,237,52,152,249,40,236,124,92,185,177,29,85,208,94,152,193,192,224,78,90,156,198,205,172,77,84,63,169,63,237,87,18,37,161,178,118,239,139,246,108,124,153,221,14,198,71,246,87,227,32,234,180,125,190,175,129,173,168,13,225,53,52,98,183,25,89,201,239,56,234,170,18,127,63,231,153,198,12,228,152,49,211,70,166,177,73,162,137,170,213,155,121,32,80,96,134,253,190,221,131,142,246,59,39,96,161,104,239,190,103,218,160,161,80,172,66,120,184,129,85,72,142,98,56,242,134,205,38,225,141,240,142,158,156,238,135,193,65,205,118,13,149,183,222,10,86,14,205,107,208,246,54,203,36,250,167,159,80,204,144,184,137,191,70,74,248,198,243,203,187,151,132,95,30,49,153,41,245,134,208,202,1,127,114,42,185,2,154,201,181,26,121,180,218,164,85,178,78,57,10,202,42,105,182,61,189,124,205,1,148,193,227,54,172,19,255,165,22,187,192,50,50,55,231,213,141,217,230,133,142,4,9,247,216,175,222,237,234,24,86,181,167,44,48,237,53,209,96,213,70,186,70,218,124,202,165,125,123,111,53,170,253,8,221,253,80,129,112,18,44,225,250,40,167,191,34,85,203,10,9,244,115,148,243,207,110,12,25,18,87,201,188,209,65,235,188,76,244,20,208,110,236,200,190,74,175,80,105,76,177,31,30,109,122,81,86,118,74,240,230,103,131,182,2,103,213,233,219,193,150,77,191,22,3,180,143,212,216,167,7,25,133,93,24,83,37,143,230,68,143,225,100,55,110,244,133,17,27,223,230,155,140,130,56,94,166,9,74,255,140,213,241,45,13,62,112,161,140,71,60,36,139,236,74,253,246,142,231,73,80,165,25,77,142,73,255,221,164,115,64,79,248,54,174,174,71,5,85,236,103,35,78,10,132,14,241,105,127,210,105,193,14,128,164,44,195,131,80,140,125,167,237,179,167,22,119,89,71,68,247,126,49,135,113,36,102,252,150,159,18,13,194,39,239,116,220,244,1,156,79,186,177,60,122,103,183,116,219,213,114,164,1,109,144,148,178,187,174,113,109,198,48,153,86,123,190,245,124,162,166,178,233,148,162,78,149,135,237,243,94,104,190,227,208,180,24,12,221,30,50,69,83,7,202,132,39,71,177,164,216,215,33,52,231,80,199,201,134,143,91,97,218,34,105,36,37,181,232,83,113,235,49,235,57,250,140,212,152,110,132,158,162,120,136,134,50,219,144,209,114,67,111,236,253,251,237,49,14,25,255,173,205,168,75,131,72,46,160,246,135,18,77,13,99,18,205,58,20,170,75,200,71,6,18,105,119,1,153,2,196,19,97,27,70,55,208,184,113,44,24,238,97,71,29,111,193,118,87,239,250,144,14,66,251,221,241,176,179,253,39,158,88,241,47,118,202,210,254,95,188,88,124,161,242,71,209,135,19,189,101,0,2,146,201,89,170,217,250,167,218,28,105,65,189,113,110,52,248,241,101,57,60,190,234,86,226,22,51,218,97,35,109,187,77,106,47,166,48,34,213,176,226,96,240,147,193,56,67,31,96,173,71,104,45,24,38,6,136,1,40,128,169,245,108,91,117,252,248,112,59,213,254,99,131,93,106,11,192,202,203,159,106,51,124,156,212,195,175,7,79,33,65,95,49,244,4,124,104,53,56,45,145,160,1,128,237,76,229,137,9,197,160,33,89,243,101,127,52,174,15,191,107,249,108,104,82,173,155,202,102,137,18,211,16,44,220,242,43,122,235,235,208,221,126,238,46,21,108,107,144,164,165,42,74,200,71,206,188,251,198,137,169,23,164,156,23,121,154,94,236,193,35,99,131,91,133,100,116,169,87,103,182,139,224,58,128,185,39,89,109,61,52,21,219,20,71,55,56,194,33,139,14,24,220,150,148,213,46,124,236,163,239,188,253,166,253,178,118,48,111,72,83,125,245,104,40,247,87,15,135,171,118,199,243,219,87,143,135,138,126,121,64,194,121,255,93,15,200,34,7,183,84,215,104,106,119,188,80,26,177,183,17,141,113,186,54,192,38,145,87,90,24,41,107,75,176,243,41,106,3,132,80,213,37,106,36,202,80,72,242,158,243,235,52,215,59,63,129,70,61,43,232,232,36,59,66,6,176,60,84,132,208,104,225,203,185,41,135,201,206,48,107,216,206,173,24,86,114,1,29,30,74,213,31,233,80,97,91,138,33,201,223,21,227,158,184,229,30,106,216,114,148,52,200,206,116,89,87,186,219,89,232,249,126,207,111,252,69,39,137,117,77,85,135,75,177,221,234,189,213,49,109,118,152,37,168,154,249,31,12,26,40,217,204,84,131,38,201,167,85,181,42,108,66,9,136,92,248,80,208,66,85,20,243,192,207,154,237,197,100,63,184,122,218,41,77,108,56,107,29,216,57,58,238,84,101,68,51,173,136,78,82,219,104,142,76,179,3,41,7,233,182,199,90,9,179,214,39,96,223,168,156,120,236,101,128,117,63,13,223,114,202,62,134,157,24,62,229,44,126,222,38,100,218,162,160,163,67,221,74,178,108,36,44,207,100,109,111,39,80,133,28,246,200,22,54,68,185,184,235,8,65,171,99,72,101,242,159,79,245,0,179,169,220,119,71,137,24,35,212,238,233,38,2,110,127,86,89,47,215,167,45,158,176,94,169,79,148,69,32,129,78,45,108,247,129,173,249,221,231,99,26,86,13,135,197,232,179,90,87,185,9,59,140,18,237,119,164,221,216,74,111,136,7,230,20,71,243,193,13,42,228,177,99,140,97,179,179,148,109,183,54,88,168,10,91,121,145,115,35,59,61,194,53,32,63,101,89,217,185,20,164,17,99,153,71,89,232,186,152,33,149,78,200,168,205,70,228,27,51,78,49,218,91,163,36,118,220,242,134,122,248,148,83,216,157,195,216,102,46,191,104,243,196,164,58,15,230,83,99,166,77,64,33,106,45,207,101,29,124,217,143,155,232,73,213,120,213,199,20,165,91,2,162,126,171,29,208,52,24,49,31,12,42,8,79,177,87,125,223,88,220,170,102,233,237,214,59,127,249,243,143,239,47,188,190,155,220,102,159,237,86,113,44,28,216,159,92,89,199,31,227,155,24,68,159,172,43,93,138,190,81,158,178,152,7,150,75,33,154,111,193,56,118,47,40,218,123,135,20,88,198,48,208,255,149,168,219,176,26,103,35,5,91,218,238,114,170,198,181,199,56,70,239,57,16,125,99,137,134,222,69,14,4,167,199,236,13,253,36,242,244,200,145,248,130,15,97,4,83,217,237,237,12,192,31,134,225,24,92,128,104,206,70,31,154,104,51,249,155,243,76,237,225,243,38,75,254,146,239,241,176,80,104,48,137,211,228,179,98,107,71,254,83,24,2,151,103,162,216,249,78,176,230,7,78,85,66,239,242,145,37,50,122,66,142,137,209,19,233,110,83,41,231,24,237,117,139,161,254,252,156,44,56,188,155,30,36,197,122,53,135,136,214,205,177,45,142,94,228,131,121,88,185,50,208,140,188,242,249,197,244,198,143,39,215,218,136,156,76,15,253,29,78,155,232,95,95,141,104,91,101,164,104,77,73,216,83,74,86,18,178,182,138,160,12,56,25,124,120,77,66,33,163,192,49,138,106,227,84,62,28,80,42,208,87,17,184,103,242,22,205,94,133,79,97,228,22,230,122,163,218,240,124,80,33,199,195,102,101,216,196,194,114,96,149,31,52,56,221,57,74,181,114,227,7,221,35,153,81,248,199,182,23,184,126,46,148,4,72,30,125,211,139,128,250,41,67,111,239,156,230,85,219,229,135,149,78,161,253,150,228,76,228,208,204,249,118,219,239,59,7,225,110,156,182,83,118,207,33,175,62,157,233,156,110,189,215,97,254,130,34,252,55,98,169,103,96,46,121,7,120,45,227,201,156,14,115,210,15,29,247,3,3,212,96,250,56,232,12,55,38,35,131,163,160,72,14,6,245,169,109,43,93,108,172,119,162,207,93,196,160,139,140,100,195,50,147,137,136,121,89,74,252,242,128,82,62,119,209,173,89,211,184,82,139,11,104,10,101,117,55,173,118,102,92,58,180,53,183,23,217,1,48,79,173,116,199,118,213,27,221,104,26,211,42,55,70,64,110,64,84,232,28,184,237,206,137,42,53,110,51,121,65,36,141,134,146,242,199,213,74,45,18,116,137,204,240,248,42,166,108,231,0,67,107,181,128,250,120,80,35,242,106,202,220,152,148,115,219,9,240,195,159,232,68,9,74,140,38,106,26,226,255,86,195,152,47,65,224,30,46,236,159,82,112,240,136,182,84,104,255,90,139,38,159,216,170,68,99,78,219,28,13,14,32,3,153,43,215,246,144,246,90,107,188,152,116,230,94,44,90,125,158,251,32,72,237,198,199,98,208,180,240,28,136,43,63,6,141,180,216,230,206,50,122,163,231,137,120,198,62,31,151,12,190,76,48,152,202,70,80,116,126,54,190,227,120,146,79,39,152,234,169,240,180,70,233,238,127,199,55,12,129,196,4,29,24,54,67,80,116,82,117,215,26,196,133,107,110,250,25,29,87,194,178,154,25,126,175,231,91,45,72,124,100,124,252,164,162,250,88,59,223,186,81,103,118,83,68,102,88,202,113,69,238,168,110,172,59,41,166,114,38,146,193,32,49,180,144,57,212,184,227,96,87,249,138,182,22,71,85,178,82,231,85,188,90,179,160,173,223,36,133,158,66,15,222,210,82,251,153,213,83,117,87,251,68,83,135,201,116,156,141,58,193,170,129,102,45,139,8,221,214,73,76,100,64,23,236,51,115,169,140,98,84,14,18,25,56,250,93,51,37,103,20,237,209,204,239,185,27,119,244,144,23,9,108,150,56,229,117,10,171,157,27,94,254,209,24,84,208,230,60,127,146,142,30,248,52,159,146,222,107,126,184,32,39,153,62,94,90,160,206,83,216,98,250,248,90,19,148,173,207,146,66,195,57,129,241,162,236,80,186,135,254,78,176,14,249,33,55,244,103,41,189,60,91,66,126,149,137,62,24,78,39,82,249,61,244,108,178,152,165,155,194,188,230,155,202,227,3,171,171,124,83,42,154,14,124,225,103,144,102,225,9,126,76,85,124,163,108,50,21,24,111,128,167,146,249,39,185,25,113,226,2,56,196,62,111,214,246,137,168,91,122,111,233,145,39,175,244,136,14,233,73,62,80,144,225,189,141,203,188,219,89,130,151,93,219,44,79,91,59,28,68,134,123,103,79,158,178,59,61,103,31,173,22,212,29,132,92,211,110,161,3,233,72,112,237,215,4,244,236,80,246,184,14,141,97,200,192,90,38,38,111,112,73,218,217,66,160,200,47,0,104,244,185,22,142,25,175,106,246,181,77,2,31,130,219,130,208,36,219,108,227,234,186,200,111,89,213,18,210,231,96,108,223,83,119,107,222,33,233,213,151,82,80,148,13,105,3,58,248,249,216,113,1,109,33,217,84,83,96,147,29,20,217,43,176,92,154,80,115,206,15,132,188,87,191,115,144,189,213,2,4,232,105,160,55,19,102,135,147,77,199,44,94,117,36,159,238,196,71,58,55,204,103,132,183,14,39,63,217,166,241,189,42,38,191,253,62,125,178,53,167,41,65,24,108,10,82,90,112,44,110,229,67,91,149,0,174,30,112,178,39,72,183,116,41,56,202,253,5,197,167,11,238,229,239,200,182,27,43,109,110,167,10,31,212,223,173,134,61,181,97,86,227,235,138,97,77,90,229,210,228,70,201,78,79,99,131,84,216,193,16,212,253,242,91,119,45,112,101,38,240,67,119,63,249,218,10,155,62,255,77,149,121,214,62,138,25,59,248,76,164,226,186,21,127,73,142,16,114,73,82,0,95,231,222,200,245,168,174,6,246,22,25,162,215,65,200,108,183,221,230,48,232,182,219,13,11,127,8,219,141,140,33,254,50,186,213,5,186,101,163,69,112,172,207,94,64,222,235,207,5,89,178,6,146,108,228,43,84,215,25,53,137,175,243,46,51,231,142,66,37,217,34,19,27,212,212,13,203,208,73,58,12,148,30,96,192,130,194,129,72,29,50,0,12,70,38,234,19,146,40,183,113,88,181,93,61,24,148,80,134,57,100,10,153,11,124,252,206,39,117,36,30,230,155,130,108,104,141,34,195,82,16,85,188,78,10,104,201,28,45,251,192,211,155,192,116,172,20,208,200,143,137,56,65,7,93,29,12,121,79,99,195,98,197,152,237,116,187,157,235,24,112,189,166,203,101,231,249,218,248,223,91,204,216,136,25,115,174,47,118,86,50,161,45,6,187,146,137,93,197,196,46,85,66,75,21,31,236,8,221,53,142,243,204,233,46,212,226,213,149,42,186,41,187,146,122,67,67,181,207,147,81,191,213,136,181,19,121,87,46,56,148,212,224,220,172,59,62,64,19,2,219,48,176,221,15,47,136,210,129,3,156,105,26,185,47,116,8,154,2,149,40,250,150,91,244,90,113,45,173,79,212,25,101,54,100,204,184,126,136,179,69,74,97,67,66,135,209,185,99,54,223,186,180,167,72,190,20,198,135,213,120,40,228,185,95,238,77,4,157,1,175,167,161,48,164,11,86,50,75,188,6,178,174,140,139,162,10,186,143,128,39,210,170,187,34,224,67,119,95,180,59,232,158,144,250,230,25,144,192,78,88,184,210,179,56,69,63,244,8,188,244,232,102,133,94,161,40,220,189,167,93,133,189,77,198,137,140,75,122,139,89,170,31,106,120,210,51,224,164,87,67,147,94,13,115,122,22,217,244,26,20,212,107,144,79,111,126,29,103,87,104,136,133,95,239,147,186,231,10,241,11,141,84,150,244,128,122,213,254,89,170,78,255,158,218,119,153,170,47,134,84,205,56,174,191,222,201,53,203,77,190,185,29,161,12,94,175,61,253,174,233,220,28,184,213,126,164,192,216,114,181,112,55,71,224,121,181,55,108,100,123,6,161,209,69,1,253,147,49,71,90,88,159,118,66,29,83,129,55,219,204,102,169,42,61,114,205,33,87,95,77,146,105,152,225,143,164,167,102,183,128,78,58,26,74,2,78,232,159,4,226,130,194,196,119,254,99,142,154,181,185,25,199,216,35,150,14,155,131,125,28,242,106,7,159,32,167,232,39,29,64,222,111,59,72,24,168,36,14,2,188,74,243,89,156,70,107,178,246,10,254,102,105,174,237,3,177,57,7,3,222,87,31,233,187,59,134,195,193,128,106,101,56,231,197,31,227,59,24,55,69,181,231,245,112,75,247,143,142,108,225,195,162,180,99,210,242,127,52,177,255,218,29,0,241,95,143,223,68,194,158,67,31,88,135,30,229,55,162,115,193,7,134,184,222,111,235,124,158,152,32,139,57,134,88,179,151,147,213,205,212,118,177,40,119,53,50,219,25,24,39,94,185,153,207,65,242,30,249,86,244,163,238,78,130,238,228,130,78,36,210,177,76,112,69,158,222,232,40,212,132,90,200,169,13,177,32,247,186,105,219,212,35,38,28,207,133,143,51,8,163,246,197,70,29,182,122,209,76,204,136,249,77,183,158,147,110,33,220,205,54,106,161,72,178,115,227,185,152,240,23,110,28,58,94,55,174,79,61,210,39,224,24,168,4,110,93,143,185,105,125,102,177,153,182,65,234,89,24,211,147,190,223,69,55,94,232,166,105,112,133,174,255,165,249,174,71,135,218,175,124,119,92,175,108,205,116,128,159,157,45,175,217,133,40,229,199,230,180,232,126,171,53,115,53,249,109,243,12,224,235,218,63,210,1,221,250,237,118,207,29,73,91,73,70,66,141,61,216,77,180,101,38,244,7,57,143,244,29,61,33,158,151,145,247,177,132,86,11,227,250,98,38,207,120,167,195,77,115,221,133,119,135,252,144,54,250,86,159,182,135,162,185,165,141,14,230,71,85,232,87,67,111,224,13,149,115,107,220,100,16,77,31,78,197,211,221,177,240,34,151,29,206,53,35,65,127,16,153,124,135,49,147,195,100,193,191,77,244,166,50,247,248,241,7,109,221,179,239,138,143,48,196,43,243,74,154,170,136,23,188,157,22,167,48,245,251,58,157,60,171,198,3,255,253,43,242,213,235,215,182,155,30,31,105,34,214,252,153,74,93,176,210,67,213,155,34,149,23,250,87,152,30,152,95,169,133,138,51,156,151,90,192,57,194,200,53,243,65,29,12,118,10,200,94,130,64,166,184,104,229,41,2,134,72,148,199,126,127,64,211,97,165,195,19,51,97,248,49,44,132,237,102,152,56,206,221,119,77,23,236,22,157,178,231,236,209,1,17,203,125,104,68,199,176,205,246,182,112,54,200,54,193,67,110,103,126,195,44,231,3,181,69,73,152,12,189,137,55,244,227,230,78,74,32,89,188,216,61,47,218,10,162,32,17,111,234,145,252,6,212,141,216,135,231,111,70,89,188,2,180,54,161,127,97,83,98,187,229,171,29,154,234,34,26,198,70,232,160,73,46,76,29,218,105,215,10,249,133,51,57,36,123,154,28,78,124,3,88,125,49,87,41,143,159,105,10,190,156,77,254,120,54,253,198,143,66,63,234,63,187,60,214,169,207,131,103,156,28,124,211,36,209,69,87,177,190,232,138,8,124,75,240,58,153,51,112,9,46,157,29,155,227,4,230,197,99,217,192,34,248,190,148,158,147,124,204,204,37,230,82,239,253,232,171,177,82,125,169,215,147,99,65,27,185,123,247,63,197,94,48,190,30,93,23,138,110,27,75,115,93,13,191,11,171,98,228,9,61,66,254,208,9,113,231,162,157,132,108,27,222,168,242,104,209,8,117,38,181,251,66,151,176,30,238,185,88,99,162,146,17,147,252,75,136,151,89,60,255,132,41,240,91,164,72,59,182,0,179,37,49,62,111,203,120,195,108,56,196,20,28,244,218,136,140,128,238,72,155,196,83,209,54,142,136,126,246,209,173,167,97,20,201,101,47,158,229,172,94,233,42,53,126,14,211,157,115,205,81,78,226,97,149,128,75,175,193,43,84,23,170,245,24,4,154,74,28,170,133,58,155,3,204,21,23,201,138,128,158,191,182,69,96,154,52,251,126,194,52,223,135,228,213,162,97,30,221,251,115,218,69,185,166,109,135,32,188,51,222,28,116,207,52,162,63,8,26,159,92,210,38,97,107,174,150,116,180,154,107,160,73,152,203,218,238,186,241,81,208,40,103,63,245,237,96,217,208,213,117,53,38,199,188,57,167,190,3,155,148,197,28,107,4,230,111,4,233,101,228,143,134,129,188,140,72,144,62,57,149,222,48,38,208,77,55,152,181,46,130,34,134,101,191,44,230,128,142,228,250,107,89,170,202,78,138,211,36,122,100,178,209,2,212,101,2,234,224,206,208,217,185,170,42,58,110,38,31,104,174,66,150,162,162,1,42,225,199,90,38,125,20,60,89,248,181,186,147,31,89,181,241,30,175,208,144,41,236,159,136,187,235,162,35,230,130,152,186,26,253,246,246,205,15,85,181,254,89,253,181,129,10,218,137,24,213,175,171,50,124,208,132,22,238,111,165,138,94,139,233,30,73,191,59,114,54,95,5,209,126,184,20,96,219,176,197,178,72,16,61,174,159,148,158,62,180,49,215,231,35,116,179,107,146,157,222,78,192,28,129,202,202,87,120,11,251,167,194,204,92,120,34,28,109,70,3,157,67,180,42,122,104,84,122,248,209,206,173,220,63,107,180,17,75,22,217,198,41,240,176,19,217,118,75,55,94,146,224,6,16,198,4,171,5,17,159,125,246,245,121,41,13,222,91,235,21,212,123,168,37,112,59,69,43,51,134,111,229,65,74,48,94,249,58,140,162,25,16,59,92,186,132,19,200,146,133,83,201,250,208,188,232,159,118,13,242,90,59,189,231,121,58,244,142,143,189,33,164,90,94,86,125,100,110,167,111,56,157,218,71,141,104,151,127,93,225,103,239,204,227,77,5,211,114,29,198,233,253,135,23,208,77,87,28,139,77,5,245,103,189,13,122,66,219,66,2,86,175,145,122,248,104,117,38,93,173,120,25,141,134,196,74,26,231,112,65,118,48,175,217,63,100,240,0,79,12,173,96,223,56,43,50,218,117,224,20,98,234,19,8,136,122,59,127,238,160,136,121,80,143,229,66,255,10,239,79,240,171,179,69,2,49,164,115,3,147,89,57,189,62,40,85,106,41,29,153,223,161,39,35,47,52,47,90,172,208,17,154,185,17,226,248,24,4,174,126,240,75,10,154,160,225,191,23,11,76,128,97,165,201,124,42,174,104,35,97,182,103,86,94,145,27,195,61,212,48,149,108,58,208,253,133,228,210,165,43,13,135,33,244,221,229,113,107,226,162,250,254,170,208,89,59,187,212,226,12,77,131,227,33,122,223,201,51,186,230,212,240,246,15,144,92,138,175,107,1,226,139,107,73,127,118,64,143,51,223,251,237,200,20,82,139,35,130,253,158,240,218,130,194,35,128,239,189,224,17,122,98,65,231,174,142,233,74,54,159,6,190,2,127,106,80,199,91,102,139,134,132,132,103,40,104,33,23,22,53,139,26,53,159,141,200,117,80,36,11,245,214,212,64,55,28,236,167,249,11,162,206,250,24,175,110,168,245,106,232,167,180,232,86,99,209,178,3,139,162,123,24,134,57,244,116,68,101,61,177,87,115,91,98,29,221,222,222,30,65,8,172,142,176,18,42,155,231,116,111,7,205,224,53,207,110,25,212,55,236,52,73,100,135,213,111,147,124,106,174,57,219,95,25,57,163,9,200,120,127,156,194,215,148,246,145,200,118,204,226,255,147,88,84,231,154,145,135,206,50,80,5,174,106,126,175,201,18,112,21,19,99,90,71,238,77,249,92,62,61,225,107,36,244,235,179,255,58,1,151,253,215,9,55,162,147,56,70,221,190,144,119,46,161,219,35,165,124,201,189,153,203,249,118,123,235,187,75,126,70,14,216,159,85,185,206,179,82,233,145,249,246,182,201,35,70,75,129,141,218,154,109,150,75,190,249,155,70,164,11,152,57,159,65,119,29,164,7,149,147,160,175,160,112,83,40,142,125,76,247,231,86,146,236,193,185,128,164,181,2,131,76,49,255,84,80,244,78,64,206,56,182,178,40,209,173,0,20,30,106,27,77,146,124,129,1,151,214,166,26,95,179,171,90,23,233,6,230,18,93,224,32,160,245,157,123,189,36,32,141,240,56,111,97,32,205,25,93,160,24,236,200,21,96,30,57,94,234,174,94,9,234,189,14,27,19,54,41,50,120,40,52,72,198,150,220,1,233,224,177,125,27,210,217,136,51,129,235,13,158,106,23,18,103,76,1,47,128,153,203,251,108,78,136,181,132,156,227,151,80,123,167,64,72,64,53,190,102,19,173,35,196,11,250,197,40,216,154,160,40,255,178,188,205,139,5,17,60,68,204,235,68,165,139,22,201,55,137,103,32,116,233,36,224,117,92,103,188,10,222,217,91,127,196,21,115,68,29,5,231,34,169,247,143,32,169,71,72,254,112,10,44,222,178,51,39,74,7,117,17,7,210,33,97,150,18,145,254,97,228,132,79,132,25,200,61,219,241,15,16,104,116,255,210,221,136,108,93,18,164,232,156,82,37,15,110,203,120,164,68,19,142,197,225,92,222,251,119,231,23,158,209,42,124,72,128,59,194,215,84,253,251,85,90,21,172,53,236,94,181,180,15,6,100,223,222,143,208,225,90,93,199,168,120,131,130,247,42,132,62,44,36,242,218,243,193,209,29,176,86,140,81,78,184,124,99,189,89,205,13,33,54,228,145,118,140,88,239,230,100,5,196,248,57,157,18,218,49,5,100,251,14,24,66,133,126,28,41,223,123,182,72,110,158,123,129,78,105,2,167,248,168,130,57,51,23,179,159,125,73,119,47,233,169,73,90,113,21,102,252,27,179,207,198,195,57,147,90,140,255,242,243,143,228,101,202,51,10,7,54,238,142,206,189,243,38,4,181,32,115,121,47,207,161,23,34,147,58,30,71,159,194,213,87,210,219,67,132,28,145,115,198,39,140,0,88,206,248,236,142,120,231,155,205,192,194,196,148,13,220,127,22,224,63,159,158,208,63,12,48,244,246,221,191,236,222,193,162,214,241,127,123,151,225,213,1,24,124,155,156,72,186,111,163,53,30,246,168,137,165,181,46,93,115,55,220,3,201,130,80,9,246,44,132,20,48,237,238,134,232,131,163,102,215,202,4,248,43,115,199,162,104,239,13,102,50,215,162,70,225,129,5,140,98,253,66,210,66,17,198,203,221,56,79,7,38,13,6,253,156,246,118,232,222,226,5,57,175,54,179,85,82,233,155,3,61,8,115,101,159,103,155,170,178,255,2,5,43,46,123,187,32,249,174,114,147,14,116,57,255,52,203,239,244,93,131,249,136,223,57,214,39,241,233,114,75,114,161,232,115,254,5,93,31,231,78,240,33,71,54,180,97,246,118,221,165,240,187,35,156,42,61,175,135,84,72,17,146,20,206,206,180,209,249,89,123,119,248,14,130,134,84,108,47,121,86,246,163,214,218,59,34,65,179,35,98,103,145,110,68,182,161,188,29,167,61,42,179,145,96,179,155,227,230,234,47,255,164,217,78,200,232,88,102,215,94,130,185,13,67,239,208,154,30,250,237,59,36,218,52,173,47,196,63,56,12,104,189,129,245,45,246,186,115,251,249,198,28,192,221,74,218,131,224,206,117,251,58,165,209,233,206,233,209,29,254,71,97,118,187,96,252,63,228,97,87,78,206,102,0,0 }; +const uint8_t JS_ZEPTO_GZIP[9713] PROGMEM = { 31,139,8,0,210,8,51,99,2,255,173,125,107,119,219,182,150,246,95,145,56,25,45,178,130,101,59,243,126,121,169,32,92,105,154,180,61,77,156,156,218,61,109,35,171,93,148,4,217,76,40,82,37,41,95,98,105,126,251,60,123,3,32,65,137,78,115,102,205,89,61,22,9,226,142,125,121,246,198,6,210,95,110,178,121,149,228,153,95,9,21,60,120,246,213,147,178,186,95,171,124,217,91,168,101,146,169,193,64,255,142,226,213,34,210,143,126,93,52,120,40,84,181,41,178,158,242,171,96,23,132,252,227,87,215,73,41,154,234,131,135,155,184,232,41,233,148,178,143,189,39,244,217,212,145,109,210,20,141,71,231,85,145,100,87,248,16,158,79,94,142,230,113,154,226,121,186,221,122,249,236,163,154,87,222,174,46,253,186,41,237,246,159,42,109,50,125,218,107,162,47,171,193,160,66,67,163,219,36,91,228,183,77,206,183,157,57,71,89,190,80,23,152,18,42,242,221,187,151,191,188,125,117,118,241,231,217,187,239,94,53,37,127,118,58,98,122,185,223,141,15,78,229,148,125,48,232,127,226,159,119,156,127,116,165,170,247,69,94,229,52,249,239,150,248,34,165,249,178,182,201,77,101,159,155,89,237,247,209,73,47,85,217,85,117,237,37,89,143,187,172,95,69,38,139,17,21,68,238,241,254,52,245,101,86,119,193,247,226,162,136,239,209,231,108,187,61,145,82,42,204,118,182,89,205,84,209,144,3,40,65,61,63,193,159,163,211,30,181,227,140,237,47,103,108,177,89,177,22,1,180,39,117,231,20,253,193,249,108,251,253,252,36,42,70,203,108,52,207,179,121,92,141,226,245,58,189,247,39,83,1,138,168,154,146,63,182,74,22,106,157,198,115,229,31,135,225,241,149,240,142,189,160,73,242,39,47,142,62,76,135,129,254,157,196,71,159,167,1,101,122,114,250,231,147,167,237,140,248,118,185,152,154,156,221,153,254,164,212,35,164,84,249,155,252,86,21,47,227,82,249,206,136,254,229,246,139,102,42,141,210,73,53,13,233,143,204,212,109,239,103,117,245,234,110,237,123,254,31,219,203,203,50,240,134,213,208,243,241,180,125,18,120,78,61,127,106,198,52,235,102,86,163,95,175,198,118,123,61,161,41,152,70,42,84,67,111,125,231,240,197,183,53,121,136,204,44,124,111,142,230,183,91,31,108,56,154,23,42,174,212,171,84,173,84,86,33,171,88,142,102,249,226,158,38,90,101,139,151,215,73,186,240,85,0,234,1,77,190,204,87,235,77,165,22,231,213,125,170,124,37,60,12,92,147,234,90,21,213,253,191,226,116,163,124,111,145,148,152,157,123,47,16,106,180,142,11,84,123,6,166,193,156,173,242,27,85,87,232,101,121,166,136,200,64,113,153,244,102,105,62,255,132,34,115,158,24,253,219,140,225,23,135,165,230,84,3,106,101,250,142,54,134,194,70,54,57,8,139,209,42,94,219,20,106,186,236,34,191,83,226,96,203,205,81,21,222,228,201,162,119,226,82,227,111,122,206,105,234,50,81,64,22,89,146,12,79,198,203,188,64,175,79,198,197,243,108,156,13,135,1,73,185,73,54,149,21,254,140,233,197,100,149,133,224,183,82,165,224,222,188,96,102,114,22,231,31,104,163,16,9,132,32,85,72,4,82,4,9,102,228,131,95,160,166,96,187,125,163,31,130,200,38,129,79,33,61,244,19,255,202,135,93,32,222,212,31,223,180,63,78,166,129,248,7,63,10,202,129,166,48,65,120,232,131,175,109,30,46,218,244,233,87,151,214,140,32,86,81,65,50,152,254,140,150,73,90,169,2,107,216,20,249,157,138,8,204,82,93,236,53,190,71,202,178,63,125,9,29,145,245,189,206,31,60,232,218,179,168,50,228,241,162,130,188,159,129,198,80,60,172,48,109,149,147,130,2,77,21,63,81,181,122,117,176,54,163,121,26,151,229,89,188,226,249,21,137,44,6,131,98,52,3,55,130,40,105,172,150,242,51,18,104,81,18,213,31,195,130,151,222,119,146,100,22,58,21,74,183,213,127,18,5,85,197,125,205,211,145,87,21,27,162,227,10,252,228,45,227,180,228,151,168,127,26,122,52,56,126,161,135,144,56,155,223,134,85,120,252,199,228,114,114,249,48,61,30,85,170,36,174,67,227,96,149,82,253,227,252,221,25,77,52,75,55,200,187,249,181,223,44,69,181,107,58,82,85,122,149,88,156,19,241,48,153,202,19,193,147,81,83,190,33,195,134,78,171,22,99,16,69,96,29,141,116,32,74,20,239,196,123,145,131,108,68,41,115,35,116,69,140,71,189,234,98,131,199,50,77,230,74,44,209,208,34,159,111,72,110,136,57,168,80,164,244,231,90,62,120,243,60,221,172,178,163,121,190,201,42,47,60,21,250,189,196,147,183,204,179,234,232,86,37,87,215,252,197,75,1,33,142,174,235,247,124,29,207,147,234,158,190,124,62,130,70,86,119,148,250,57,207,87,225,233,78,172,229,241,31,151,229,55,207,252,203,219,225,182,31,76,254,120,62,253,230,249,177,88,32,153,211,2,124,188,60,142,158,251,81,248,236,242,248,242,244,249,54,120,114,44,86,242,248,153,31,245,33,137,226,237,172,216,162,51,91,5,249,185,216,94,23,219,100,117,181,77,50,8,181,45,58,242,105,187,82,85,188,197,66,196,171,192,247,39,151,183,33,20,5,183,18,92,30,63,63,190,74,196,21,154,66,237,36,33,183,215,213,42,69,253,137,184,145,199,141,142,184,151,19,239,38,78,61,225,205,203,18,127,41,23,126,42,117,87,225,103,17,87,49,126,110,147,5,20,52,62,234,129,11,47,95,46,65,235,222,84,220,161,120,188,196,76,35,113,13,53,3,25,140,167,153,194,18,43,60,104,169,140,124,179,3,209,237,85,241,44,85,16,161,175,58,62,21,72,255,40,65,185,225,225,55,26,12,62,243,111,56,131,188,82,241,130,126,151,121,94,209,239,34,124,133,68,252,241,190,241,14,139,47,146,27,40,42,113,43,143,231,208,14,169,170,212,54,205,227,5,166,55,201,48,140,24,228,122,163,142,197,133,36,154,191,61,154,126,131,21,57,39,66,121,41,207,161,53,53,190,19,103,148,242,66,118,215,46,190,67,207,227,25,147,67,72,195,252,145,9,67,32,235,34,207,210,251,208,163,167,119,120,242,136,192,10,47,228,89,127,157,211,36,50,31,35,165,230,103,79,172,226,59,35,200,61,60,190,209,104,73,204,85,154,150,68,126,217,21,114,227,229,92,191,232,47,235,120,177,168,191,188,215,47,232,65,126,139,34,25,58,144,223,34,123,230,17,169,235,20,60,232,148,77,169,160,143,66,15,191,111,227,181,39,150,160,46,53,203,139,133,42,66,143,95,190,229,23,42,139,25,195,127,139,132,151,146,234,224,132,87,38,193,219,137,55,242,5,129,179,81,82,242,239,118,219,161,217,8,103,148,85,156,205,9,26,112,182,157,149,126,103,80,141,144,41,170,148,109,192,159,44,253,62,36,103,31,66,236,180,239,42,198,64,23,236,159,142,181,124,169,108,5,219,45,32,179,154,125,74,170,183,58,225,220,104,56,250,176,202,63,119,164,230,93,57,219,73,99,116,36,11,172,168,182,218,67,5,220,58,164,19,218,111,16,5,196,84,63,177,35,203,161,204,18,249,34,104,225,22,160,153,66,254,247,217,232,175,50,246,19,84,51,98,18,98,64,45,80,224,69,11,147,80,230,157,120,39,187,102,180,1,124,71,67,127,20,68,224,243,246,4,90,203,7,42,175,202,127,65,23,12,18,12,161,236,193,29,239,187,106,61,4,199,172,18,235,54,109,103,21,208,127,70,181,156,141,64,46,87,196,24,238,242,101,4,31,104,126,114,81,138,216,206,199,194,106,22,204,75,46,11,127,159,179,52,238,28,61,57,13,2,204,5,116,87,61,70,66,5,178,25,241,74,120,207,158,156,62,127,118,252,228,233,115,47,32,32,168,145,67,38,215,77,19,77,109,130,65,204,71,84,8,80,247,13,120,55,150,31,73,203,196,24,78,166,138,31,46,222,190,145,30,80,46,22,175,24,169,24,250,205,32,184,216,81,75,129,112,204,195,184,189,74,64,83,48,46,3,241,193,79,104,108,37,198,150,99,229,116,93,201,222,178,220,59,43,254,252,232,52,42,129,42,9,89,148,163,24,176,130,243,80,93,57,205,237,7,217,185,164,4,210,53,18,164,76,73,249,65,254,29,203,161,42,206,154,37,237,117,210,171,148,16,141,247,171,160,230,200,15,126,64,73,94,201,146,176,49,177,170,0,169,180,18,72,95,249,0,204,207,232,219,228,100,58,24,212,51,31,36,178,33,10,180,81,175,3,90,19,149,36,220,49,86,128,36,196,224,25,193,32,219,44,192,38,1,185,140,200,126,76,149,16,139,44,97,84,237,108,118,50,167,155,220,75,178,121,226,197,61,103,95,250,60,17,78,134,138,18,223,232,14,145,253,199,141,246,144,246,179,78,195,180,187,221,161,47,143,141,193,14,247,255,96,40,59,103,142,19,74,128,52,232,92,99,189,88,102,145,65,74,119,144,186,11,121,224,180,0,237,91,98,45,174,24,247,148,226,180,54,166,103,121,158,170,216,113,153,192,248,134,133,85,81,231,71,229,117,178,172,124,98,159,17,20,212,43,162,213,186,122,16,198,63,152,143,137,24,69,69,180,131,33,236,245,212,90,33,222,127,160,1,5,42,128,48,236,3,228,122,35,251,14,134,218,110,19,8,32,134,103,254,41,0,55,48,220,133,158,230,220,118,179,199,206,5,35,5,190,189,255,113,49,24,148,128,202,145,79,178,189,253,5,133,130,8,188,27,78,166,97,91,43,12,6,255,127,239,253,180,157,33,66,17,51,85,168,157,250,233,86,94,126,123,255,210,106,99,64,241,199,62,161,253,112,239,219,69,124,197,95,216,56,248,107,163,138,123,171,57,94,160,41,21,240,242,145,214,140,193,143,64,19,22,159,154,26,234,79,81,39,25,84,218,40,106,178,145,141,19,182,179,18,212,30,43,94,89,215,186,13,198,196,173,10,178,209,114,118,255,100,108,117,39,117,138,104,66,62,193,67,82,190,54,21,202,215,252,250,43,59,158,228,39,126,97,117,45,223,240,243,251,20,125,208,110,31,249,129,83,94,173,214,213,189,73,57,160,78,182,2,148,246,198,212,90,219,246,101,199,229,207,48,25,69,50,63,44,43,207,216,163,64,58,48,171,201,119,188,239,253,170,73,156,221,69,181,196,234,147,163,200,218,198,100,130,162,161,248,12,115,55,24,96,176,196,89,180,96,64,23,60,17,73,166,199,232,78,171,163,246,114,43,177,53,245,40,65,130,147,87,21,235,158,146,82,149,239,104,58,33,36,228,35,78,37,178,177,60,47,212,200,178,113,152,113,25,235,65,164,26,55,155,100,65,6,211,168,220,172,215,121,81,17,4,37,230,95,23,250,41,203,243,181,235,167,164,52,32,185,78,198,76,68,14,230,156,76,73,14,146,63,46,160,197,72,228,201,56,121,102,103,102,156,192,254,202,36,12,182,73,66,118,184,208,243,154,145,161,186,222,148,215,144,3,90,56,82,209,92,175,163,206,158,131,185,59,179,155,65,255,224,23,90,110,65,172,116,139,141,186,91,15,214,113,145,53,253,34,187,144,136,215,204,13,105,235,76,176,19,1,228,220,63,173,101,252,174,238,93,161,123,231,22,42,166,176,30,233,103,175,80,45,118,168,131,87,0,21,221,18,56,110,176,222,78,84,35,50,131,65,97,142,81,44,233,143,126,173,181,189,247,173,166,199,158,166,222,158,94,241,158,229,47,141,125,123,223,1,245,24,55,91,79,243,78,239,85,81,192,54,24,149,235,20,82,223,235,121,193,30,108,56,159,120,19,237,185,237,121,67,53,244,166,222,84,170,61,23,31,245,98,153,201,7,200,10,240,193,134,100,80,8,69,35,172,139,72,24,57,31,230,86,226,195,94,89,108,230,10,9,250,65,208,50,226,141,126,68,9,2,196,51,253,8,234,23,231,211,15,194,112,68,88,243,134,208,118,121,232,16,39,45,52,115,18,17,33,173,81,133,69,174,158,213,138,202,46,118,133,197,86,178,78,38,197,156,145,203,77,107,116,246,217,84,57,79,28,192,107,237,53,41,141,223,213,232,125,194,96,17,251,181,154,188,236,231,39,86,37,99,167,131,51,65,53,218,47,215,218,15,104,35,94,195,242,90,19,162,42,214,100,225,225,6,67,1,208,168,59,196,181,213,163,97,249,79,48,165,171,3,183,90,19,46,53,144,57,175,64,22,144,80,218,219,25,85,96,33,216,182,176,235,94,221,160,166,55,73,9,8,0,129,232,125,247,238,237,75,109,133,189,97,171,214,115,161,105,197,140,7,106,103,39,223,78,64,87,117,181,92,177,207,201,122,42,105,242,120,182,38,213,115,121,18,85,97,53,116,28,134,83,144,191,158,211,142,113,115,62,52,226,211,220,36,159,213,99,89,116,85,52,23,4,156,31,203,165,90,40,68,251,226,32,231,233,83,163,216,160,14,219,9,93,104,124,39,168,174,174,161,231,35,117,3,45,221,12,253,43,150,190,79,2,100,103,231,84,251,157,186,234,38,132,170,169,48,203,43,191,121,32,15,167,31,119,54,233,32,62,99,121,146,134,209,196,134,181,15,59,101,83,225,191,215,181,107,174,243,181,221,16,80,153,164,236,92,239,102,13,104,143,164,105,139,87,253,100,202,80,20,93,13,247,245,112,102,52,200,107,54,170,244,164,48,212,237,88,47,244,175,114,198,72,10,54,211,138,193,44,138,70,203,108,114,200,67,227,66,79,156,113,229,86,65,248,153,155,68,195,35,168,235,85,80,83,171,246,249,106,151,246,1,114,69,183,19,199,194,122,134,193,218,62,16,85,56,0,125,39,174,227,199,231,202,116,227,144,78,127,214,174,209,26,143,241,80,117,159,104,144,22,246,143,136,25,124,77,136,127,117,180,114,116,74,192,76,15,89,163,227,74,179,160,125,19,195,106,120,26,16,177,21,229,161,88,149,102,221,106,93,6,140,195,61,171,120,114,118,2,136,245,177,82,14,45,28,157,62,94,3,13,36,236,50,56,168,188,45,165,8,216,212,59,138,245,74,186,78,249,206,78,212,62,18,168,151,149,209,216,89,23,87,56,51,173,217,98,23,132,180,79,210,140,1,141,105,3,171,33,101,51,147,36,219,15,23,176,201,204,245,97,180,24,236,60,205,75,229,206,88,3,85,200,241,12,114,61,24,36,80,79,179,111,217,37,190,10,64,36,13,206,115,204,173,159,68,13,97,230,1,228,108,216,112,97,78,157,30,7,185,204,53,222,239,191,69,150,193,32,119,132,28,85,146,57,21,56,148,157,179,234,103,146,214,249,219,100,109,93,241,138,70,98,150,47,171,133,193,56,160,93,88,154,170,172,99,79,138,173,125,199,166,224,174,17,91,170,22,147,69,64,93,134,201,136,23,236,198,149,157,156,95,245,218,153,222,117,241,220,175,86,160,173,211,205,252,147,239,53,77,146,131,135,202,218,205,180,238,210,95,88,239,95,172,244,209,213,104,205,89,62,166,129,186,235,176,178,150,138,126,103,12,184,237,214,81,159,174,167,104,199,170,112,150,66,186,149,95,219,219,14,224,249,139,223,178,230,186,54,12,217,58,220,217,161,41,50,197,190,86,179,114,162,235,255,162,94,243,228,119,34,165,46,156,212,184,24,105,99,148,6,125,157,223,126,109,251,118,175,85,139,60,218,188,29,153,77,90,114,246,29,36,162,131,205,254,236,193,182,47,119,236,111,118,126,187,171,253,214,42,233,133,34,43,62,224,197,51,126,198,95,147,234,250,81,253,160,183,63,72,204,105,240,65,66,228,182,216,195,153,154,235,94,27,15,149,145,79,96,33,21,104,201,194,98,146,192,211,73,0,17,147,57,203,13,235,213,209,216,167,95,144,50,144,49,86,245,80,251,236,116,136,92,53,156,7,97,18,101,35,72,184,76,81,213,126,255,36,8,51,30,168,41,208,234,115,211,81,91,49,61,214,227,229,62,55,219,123,106,76,254,164,122,167,219,15,2,139,234,131,10,246,9,43,47,31,114,128,6,170,221,224,134,27,157,1,233,126,252,72,180,248,216,236,61,62,124,235,194,148,102,18,68,46,19,203,169,165,31,136,82,182,103,35,131,110,24,231,86,117,228,245,156,1,0,39,182,135,154,133,55,89,123,61,219,235,175,151,202,15,14,8,219,46,134,67,68,190,77,115,166,169,6,147,188,46,255,27,105,228,174,39,245,247,58,89,60,90,207,188,44,27,86,48,124,68,86,109,126,117,149,170,71,105,124,127,104,53,209,210,96,198,190,182,33,234,160,137,118,35,180,95,28,145,147,49,191,133,37,150,141,168,119,26,14,173,11,117,211,109,141,181,20,0,114,37,249,166,52,110,178,115,45,79,161,12,106,128,184,221,146,51,31,168,85,221,85,127,95,31,229,250,251,186,104,143,174,171,174,19,242,46,212,54,93,212,141,125,205,118,84,75,176,142,237,210,179,112,246,107,38,248,221,0,16,118,52,17,10,225,22,40,45,50,44,215,212,17,146,21,132,197,122,100,156,255,70,223,156,86,181,169,140,42,141,41,105,240,180,147,34,109,32,132,231,133,158,55,204,14,58,105,167,214,41,3,17,252,49,79,50,31,178,216,244,154,54,53,92,84,85,216,45,7,227,162,174,29,118,22,86,109,183,167,95,51,32,136,41,70,208,86,122,243,206,160,245,238,215,145,43,85,240,189,97,123,237,61,210,222,172,239,237,52,152,249,40,236,124,92,185,177,29,85,208,94,152,193,192,224,78,90,156,198,205,172,77,84,63,169,63,237,87,18,37,161,178,118,239,139,246,108,124,153,221,14,198,71,246,87,227,32,234,180,125,190,175,129,173,168,13,225,53,52,98,183,25,89,201,239,56,234,170,18,127,63,231,153,198,12,228,152,49,211,70,166,177,73,162,137,170,213,155,121,32,80,96,134,253,190,221,131,142,246,59,39,96,161,104,239,190,103,218,160,161,80,172,66,120,184,129,85,72,142,98,56,242,134,205,38,225,141,240,142,158,156,238,135,193,65,205,118,13,149,183,222,10,86,14,205,107,208,246,54,203,36,250,167,159,80,204,144,184,137,191,70,74,248,198,243,203,187,151,132,95,30,49,153,41,245,134,208,202,1,127,114,42,185,2,154,201,181,26,121,180,218,164,85,178,78,57,10,202,42,105,182,61,189,124,205,1,148,193,227,54,172,19,255,165,22,187,192,50,50,55,231,213,141,217,230,133,142,4,9,247,216,175,222,237,234,24,86,181,167,44,48,237,53,209,96,213,70,186,70,218,124,202,165,125,123,111,53,170,253,8,221,253,80,129,112,18,44,225,250,40,167,191,34,85,203,10,9,244,115,148,243,207,110,12,25,18,87,201,188,209,65,235,188,76,244,20,208,110,236,200,190,74,175,80,105,76,177,31,30,109,122,81,86,118,74,240,230,103,131,182,2,103,213,233,219,193,150,77,191,22,3,180,143,212,216,167,7,25,133,93,24,83,37,143,230,68,143,225,100,55,110,244,133,17,27,223,230,155,140,130,56,94,166,9,74,255,140,213,241,45,13,62,112,161,140,71,60,36,139,236,74,253,246,142,231,73,80,165,25,77,142,73,255,221,164,115,64,79,248,54,174,174,71,5,85,236,103,35,78,10,132,14,241,105,127,210,105,193,14,128,164,44,195,131,80,140,125,167,237,179,167,22,119,89,71,68,247,126,49,135,113,36,102,252,150,159,18,13,194,39,239,116,220,244,1,156,79,186,177,60,122,103,183,116,219,213,114,164,1,109,144,148,178,187,174,113,109,198,48,153,86,123,190,245,124,162,166,178,233,148,162,78,149,135,237,243,94,104,190,227,208,180,24,12,221,30,50,69,83,7,202,132,39,71,177,164,216,215,33,52,231,80,199,201,134,143,91,97,218,34,105,36,37,181,232,83,113,235,49,235,57,250,140,212,152,110,132,158,162,120,136,134,50,219,144,209,114,67,111,236,253,251,237,49,14,25,255,173,205,168,75,131,72,46,160,246,135,18,77,13,99,18,205,58,20,170,75,200,71,6,18,105,119,1,153,2,196,19,97,27,70,55,208,184,113,44,24,238,97,71,29,111,193,118,87,239,250,144,14,66,251,221,241,176,179,253,39,158,88,241,47,118,202,210,254,95,188,88,124,161,242,71,209,135,19,189,101,0,2,146,201,89,170,217,250,167,218,28,105,65,189,113,110,52,248,241,101,57,60,190,234,86,226,22,51,218,97,35,109,187,77,106,47,166,48,34,213,176,226,96,240,147,193,56,67,31,96,173,71,104,45,24,38,6,136,1,40,128,169,245,108,91,117,252,248,112,59,213,254,99,131,93,106,11,192,202,203,159,106,51,124,156,212,195,175,7,79,33,65,95,49,244,4,124,104,53,56,45,145,160,1,128,237,76,229,137,9,197,160,33,89,243,101,127,52,174,15,191,107,249,108,104,82,173,155,202,102,137,18,211,16,44,220,242,43,122,235,235,208,221,126,238,46,21,108,107,144,164,165,42,74,200,71,206,188,251,198,137,169,23,164,156,23,121,154,94,236,193,35,99,131,91,133,100,116,169,87,103,182,139,224,58,128,185,39,89,109,61,52,21,219,20,71,55,56,194,33,139,14,24,220,150,148,213,46,124,236,163,239,188,253,166,253,178,118,48,111,72,83,125,245,104,40,247,87,15,135,171,118,199,243,219,87,143,135,138,126,121,64,194,121,255,93,15,200,34,7,183,84,215,104,106,119,188,80,26,177,183,17,141,113,186,54,192,38,145,87,90,24,41,107,75,176,243,41,106,3,132,80,213,37,106,36,202,80,72,242,158,243,235,52,215,59,63,129,70,61,43,232,232,36,59,66,6,176,60,84,132,208,104,225,203,185,41,135,201,206,48,107,216,206,173,24,86,114,1,29,30,74,213,31,233,80,97,91,138,33,201,223,21,227,158,184,229,30,106,216,114,148,52,200,206,116,89,87,186,219,89,232,249,126,207,111,252,69,39,137,117,77,85,135,75,177,221,234,189,213,49,109,118,152,37,168,154,249,31,12,26,40,217,204,84,131,38,201,167,85,181,42,108,66,9,136,92,248,80,208,66,85,20,243,192,207,154,237,197,100,63,184,122,218,41,77,108,56,107,29,216,57,58,238,84,101,68,51,173,136,78,82,219,104,142,76,179,3,41,7,233,182,199,90,9,179,214,39,96,223,168,156,120,236,101,128,117,63,13,223,114,202,62,134,157,24,62,229,44,126,222,38,100,218,162,160,163,67,221,74,178,108,36,44,207,100,109,111,39,80,133,28,246,200,22,54,68,185,184,235,8,65,171,99,72,101,242,159,79,245,0,179,169,220,119,71,137,24,35,212,238,233,38,2,110,127,86,89,47,215,167,45,158,176,94,169,79,148,69,32,129,78,45,108,247,129,173,249,221,231,99,26,86,13,135,197,232,179,90,87,185,9,59,140,18,237,119,164,221,216,74,111,136,7,230,20,71,243,193,13,42,228,177,99,140,97,179,179,148,109,183,54,88,168,10,91,121,145,115,35,59,61,194,53,32,63,101,89,217,185,20,164,17,99,153,71,89,232,186,152,33,149,78,200,168,205,70,228,27,51,78,49,218,91,163,36,118,220,242,134,122,248,148,83,216,157,195,216,102,46,191,104,243,196,164,58,15,230,83,99,166,77,64,33,106,45,207,101,29,124,217,143,155,232,73,213,120,213,199,20,165,91,2,162,126,171,29,208,52,24,49,31,12,42,8,79,177,87,125,223,88,220,170,102,233,237,214,59,127,249,243,143,239,47,188,190,155,220,102,159,237,86,113,44,28,216,159,92,89,199,31,227,155,24,68,159,172,43,93,138,190,81,158,178,152,7,150,75,33,154,111,193,56,118,47,40,218,123,135,20,88,198,48,208,255,149,168,219,176,26,103,35,5,91,218,238,114,170,198,181,199,56,70,239,57,16,125,99,137,134,222,69,14,4,167,199,236,13,253,36,242,244,200,145,248,130,15,97,4,83,217,237,237,12,192,31,134,225,24,92,128,104,206,70,31,154,104,51,249,155,243,76,237,225,243,38,75,254,146,239,241,176,80,104,48,137,211,228,179,98,107,71,254,83,24,2,151,103,162,216,249,78,176,230,7,78,85,66,239,242,145,37,50,122,66,142,137,209,19,233,110,83,41,231,24,237,117,139,161,254,252,156,44,56,188,155,30,36,197,122,53,135,136,214,205,177,45,142,94,228,131,121,88,185,50,208,140,188,242,249,197,244,198,143,39,215,218,136,156,76,15,253,29,78,155,232,95,95,141,104,91,101,164,104,77,73,216,83,74,86,18,178,182,138,160,12,56,25,124,120,77,66,33,163,192,49,138,106,227,84,62,28,80,42,208,87,17,184,103,242,22,205,94,133,79,97,228,22,230,122,163,218,240,124,80,33,199,195,102,101,216,196,194,114,96,149,31,52,56,221,57,74,181,114,227,7,221,35,153,81,248,199,182,23,184,126,46,148,4,72,30,125,211,139,128,250,41,67,111,239,156,230,85,219,229,135,149,78,161,253,150,228,76,228,208,204,249,118,219,239,59,7,225,110,156,182,83,118,207,33,175,62,157,233,156,110,189,215,97,254,130,34,252,55,98,169,103,96,46,121,7,120,45,227,201,156,14,115,210,15,29,247,3,3,212,96,250,56,232,12,55,38,35,131,163,160,72,14,6,245,169,109,43,93,108,172,119,162,207,93,196,160,139,140,100,195,50,147,137,136,121,89,74,252,242,128,82,62,119,209,173,89,211,184,82,139,11,104,10,101,117,55,173,118,102,92,58,180,53,183,23,217,1,48,79,173,116,199,118,213,27,221,104,26,211,42,55,70,64,110,64,84,232,28,184,237,206,137,42,53,110,51,121,65,36,141,134,146,242,199,213,74,45,18,116,137,204,240,248,42,166,108,231,0,67,107,181,128,250,120,80,35,242,106,202,220,152,148,115,219,9,240,195,159,232,68,9,74,140,38,106,26,226,255,86,195,152,47,65,224,30,46,236,159,82,112,240,136,182,84,104,255,90,139,38,159,216,170,68,99,78,219,28,13,14,32,3,153,43,215,246,144,246,90,107,188,152,116,230,94,44,90,125,158,251,32,72,237,198,199,98,208,180,240,28,136,43,63,6,141,180,216,230,206,50,122,163,231,137,120,198,62,31,151,12,190,76,48,152,202,70,80,116,126,54,190,227,120,146,79,39,152,234,169,240,180,70,233,238,127,199,55,12,129,196,4,29,24,54,67,80,116,82,117,215,26,196,133,107,110,250,25,29,87,194,178,154,25,126,175,231,91,45,72,124,100,124,252,164,162,250,88,59,223,186,81,103,118,83,68,102,88,202,113,69,238,168,110,172,59,41,166,114,38,146,193,32,49,180,144,57,212,184,227,96,87,249,138,182,22,71,85,178,82,231,85,188,90,179,160,173,223,36,133,158,66,15,222,210,82,251,153,213,83,117,87,251,68,83,135,201,116,156,141,58,193,170,129,102,45,139,8,221,214,73,76,100,64,23,236,51,115,169,140,98,84,14,18,25,56,250,93,51,37,103,20,237,209,204,239,185,27,119,244,144,23,9,108,150,56,229,117,10,171,157,27,94,254,209,24,84,208,230,60,127,146,142,30,248,52,159,146,222,107,126,184,32,39,153,62,94,90,160,206,83,216,98,250,248,90,19,148,173,207,146,66,195,57,129,241,162,236,80,186,135,254,78,176,14,249,33,55,244,103,41,189,60,91,66,126,149,137,62,24,78,39,82,249,61,244,108,178,152,165,155,194,188,230,155,202,227,3,171,171,124,83,42,154,14,124,225,103,144,102,225,9,126,76,85,124,163,108,50,21,24,111,128,167,146,249,39,185,25,113,226,2,56,196,62,111,214,246,137,168,91,122,111,233,145,39,175,244,136,14,233,73,62,80,144,225,189,141,203,188,219,89,130,151,93,219,44,79,91,59,28,68,134,123,103,79,158,178,59,61,103,31,173,22,212,29,132,92,211,110,161,3,233,72,112,237,215,4,244,236,80,246,184,14,141,97,200,192,90,38,38,111,112,73,218,217,66,160,200,47,0,104,244,185,22,142,25,175,106,246,181,77,2,31,130,219,130,208,36,219,108,227,234,186,200,111,89,213,18,210,231,96,108,223,83,119,107,222,33,233,213,151,82,80,148,13,105,3,58,248,249,216,113,1,109,33,217,84,83,96,147,29,20,217,43,176,92,154,80,115,206,15,132,188,87,191,115,144,189,213,2,4,232,105,160,55,19,102,135,147,77,199,44,94,117,36,159,238,196,71,58,55,204,103,132,183,14,39,63,217,166,241,189,42,38,191,253,62,125,178,53,167,41,65,24,108,10,82,90,112,44,110,229,67,91,149,0,174,30,112,178,39,72,183,116,41,56,202,253,5,197,167,11,238,229,239,200,182,27,43,109,110,167,10,31,212,223,173,134,61,181,97,86,227,235,138,97,77,90,229,210,228,70,201,78,79,99,131,84,216,193,16,212,253,242,91,119,45,112,101,38,240,67,119,63,249,218,10,155,62,255,77,149,121,214,62,138,25,59,248,76,164,226,186,21,127,73,142,16,114,73,82,0,95,231,222,200,245,168,174,6,246,22,25,162,215,65,200,108,183,221,230,48,232,182,219,13,11,127,8,219,141,140,33,254,50,186,213,5,186,101,163,69,112,172,207,94,64,222,235,207,5,89,178,6,146,108,228,43,84,215,25,53,137,175,243,46,51,231,142,66,37,217,34,19,27,212,212,13,203,208,73,58,12,148,30,96,192,130,194,129,72,29,50,0,12,70,38,234,19,146,40,183,113,88,181,93,61,24,148,80,134,57,100,10,153,11,124,252,206,39,117,36,30,230,155,130,108,104,141,34,195,82,16,85,188,78,10,104,201,28,45,251,192,211,155,192,116,172,20,208,200,143,137,56,65,7,93,29,12,121,79,99,195,98,197,152,237,116,187,157,235,24,112,189,166,203,101,231,249,218,248,223,91,204,216,136,25,115,174,47,118,86,50,161,45,6,187,146,137,93,197,196,46,85,66,75,21,31,236,8,221,53,142,243,204,233,46,212,226,213,149,42,186,41,187,146,122,67,67,181,207,147,81,191,213,136,181,19,121,87,46,56,148,212,224,220,172,59,62,64,19,2,219,48,176,221,15,47,136,210,129,3,156,105,26,185,47,116,8,154,2,149,40,250,150,91,244,90,113,45,173,79,212,25,101,54,100,204,184,126,136,179,69,74,97,67,66,135,209,185,99,54,223,186,180,167,72,190,20,198,135,213,120,40,228,185,95,238,77,4,157,1,175,167,161,48,164,11,86,50,75,188,6,178,174,140,139,162,10,186,143,128,39,210,170,187,34,224,67,119,95,180,59,232,158,144,250,230,25,144,192,78,88,184,210,179,56,69,63,244,8,188,244,232,102,133,94,161,40,220,189,167,93,133,189,77,198,137,140,75,122,139,89,170,31,106,120,210,51,224,164,87,67,147,94,13,115,122,22,217,244,26,20,212,107,144,79,111,126,29,103,87,104,136,133,95,239,147,186,231,10,241,11,141,84,150,244,128,122,213,254,89,170,78,255,158,218,119,153,170,47,134,84,205,56,174,191,222,201,53,203,77,190,185,29,161,12,94,175,61,253,174,233,220,28,184,213,126,164,192,216,114,181,112,55,71,224,121,181,55,108,100,123,6,161,209,69,1,253,147,49,71,90,88,159,118,66,29,83,129,55,219,204,102,169,42,61,114,205,33,87,95,77,146,105,152,225,143,164,167,102,183,128,78,58,26,74,2,78,232,159,4,226,130,194,196,119,254,99,142,154,181,185,25,199,216,35,150,14,155,131,125,28,242,106,7,159,32,167,232,39,29,64,222,111,59,72,24,168,36,14,2,188,74,243,89,156,70,107,178,246,10,254,102,105,174,237,3,177,57,7,3,222,87,31,233,187,59,134,195,193,128,106,101,56,231,197,31,227,59,24,55,69,181,231,245,112,75,247,143,142,108,225,195,162,180,99,210,242,127,52,177,255,218,29,0,241,95,143,223,68,194,158,67,31,88,135,30,229,55,162,115,193,7,134,184,222,111,235,124,158,152,32,139,57,134,88,179,151,147,213,205,212,118,177,40,119,53,50,219,25,24,39,94,185,153,207,65,242,30,249,86,244,163,238,78,130,238,228,130,78,36,210,177,76,112,69,158,222,232,40,212,132,90,200,169,13,177,32,247,186,105,219,212,35,38,28,207,133,143,51,8,163,246,197,70,29,182,122,209,76,204,136,249,77,183,158,147,110,33,220,205,54,106,161,72,178,115,227,185,152,240,23,110,28,58,94,55,174,79,61,210,39,224,24,168,4,110,93,143,185,105,125,102,177,153,182,65,234,89,24,211,147,190,223,69,55,94,232,166,105,112,133,174,255,165,249,174,71,135,218,175,124,119,92,175,108,205,116,128,159,157,45,175,217,133,40,229,199,230,180,232,126,171,53,115,53,249,109,243,12,224,235,218,63,210,1,221,250,237,118,207,29,73,91,73,70,66,141,61,216,77,180,101,38,244,7,57,143,244,29,61,33,158,151,145,247,177,132,86,11,227,250,98,38,207,120,167,195,77,115,221,133,119,135,252,144,54,250,86,159,182,135,162,185,165,141,14,230,71,85,232,87,67,111,224,13,149,115,107,220,100,16,77,31,78,197,211,221,177,240,34,151,29,206,53,35,65,127,16,153,124,135,49,147,195,100,193,191,77,244,166,50,247,248,241,7,109,221,179,239,138,143,48,196,43,243,74,154,170,136,23,188,157,22,167,48,245,251,58,157,60,171,198,3,255,253,43,242,213,235,215,182,155,30,31,105,34,214,252,153,74,93,176,210,67,213,155,34,149,23,250,87,152,30,152,95,169,133,138,51,156,151,90,192,57,194,200,53,243,65,29,12,118,10,200,94,130,64,166,184,104,229,41,2,134,72,148,199,126,127,64,211,97,165,195,19,51,97,248,49,44,132,237,102,152,56,206,221,119,77,23,236,22,157,178,231,236,209,1,17,203,125,104,68,199,176,205,246,182,112,54,200,54,193,67,110,103,126,195,44,231,3,181,69,73,152,12,189,137,55,244,227,230,78,74,32,89,188,216,61,47,218,10,162,32,17,111,234,145,252,6,212,141,216,135,231,111,70,89,188,2,180,54,161,127,97,83,98,187,229,171,29,154,234,34,26,198,70,232,160,73,46,76,29,218,105,215,10,249,133,51,57,36,123,154,28,78,124,3,88,125,49,87,41,143,159,105,10,190,156,77,254,120,54,253,198,143,66,63,234,63,187,60,214,169,207,131,103,156,28,124,211,36,209,69,87,177,190,232,138,8,124,75,240,58,153,51,112,9,46,157,29,155,227,4,230,197,99,217,192,34,248,190,148,158,147,124,204,204,37,230,82,239,253,232,171,177,82,125,169,215,147,99,65,27,185,123,247,63,197,94,48,190,30,93,23,138,110,27,75,115,93,13,191,11,171,98,228,9,61,66,254,208,9,113,231,162,157,132,108,27,222,168,242,104,209,8,117,38,181,251,66,151,176,30,238,185,88,99,162,146,17,147,252,75,136,151,89,60,255,132,41,240,91,164,72,59,182,0,179,37,49,62,111,203,120,195,108,56,196,20,28,244,218,136,140,128,238,72,155,196,83,209,54,142,136,126,246,209,173,167,97,20,201,101,47,158,229,172,94,233,42,53,126,14,211,157,115,205,81,78,226,97,149,128,75,175,193,43,84,23,170,245,24,4,154,74,28,170,133,58,155,3,204,21,23,201,138,128,158,191,182,69,96,154,52,251,126,194,52,223,135,228,213,162,97,30,221,251,115,218,69,185,166,109,135,32,188,51,222,28,116,207,52,162,63,8,26,159,92,210,38,97,107,174,150,116,180,154,107,160,73,152,203,218,238,186,241,81,208,40,103,63,245,237,96,217,208,213,117,53,38,199,188,57,167,190,3,155,148,197,28,107,4,230,111,4,233,101,228,143,134,129,188,140,72,144,62,57,149,222,48,38,208,77,55,152,181,46,130,34,134,101,191,44,230,128,142,228,250,107,89,170,202,78,138,211,36,122,100,178,209,2,212,101,2,234,224,206,208,217,185,170,42,58,110,38,31,104,174,66,150,162,162,1,42,225,199,90,38,125,20,60,89,248,181,186,147,31,89,181,241,30,175,208,144,41,236,159,136,187,235,162,35,230,130,152,186,26,253,246,246,205,15,85,181,254,89,253,181,129,10,218,137,24,213,175,171,50,124,208,132,22,238,111,165,138,94,139,233,30,73,191,59,114,54,95,5,209,126,184,20,96,219,176,197,178,72,16,61,174,159,148,158,62,180,49,215,231,35,116,179,107,146,157,222,78,192,28,129,202,202,87,120,11,251,167,194,204,92,120,34,28,109,70,3,157,67,180,42,122,104,84,122,248,209,206,173,220,63,107,180,17,75,22,217,198,41,240,176,19,217,118,75,55,94,146,224,6,16,198,4,171,5,17,159,125,246,245,121,41,13,222,91,235,21,212,123,168,37,112,59,69,43,51,134,111,229,65,74,48,94,249,58,140,162,25,16,59,92,186,132,19,200,146,133,83,201,250,208,188,232,159,118,13,242,90,59,189,231,121,58,244,142,143,189,33,164,90,94,86,125,100,110,167,111,56,157,218,71,141,104,151,127,93,225,103,239,204,227,77,5,211,114,29,198,233,253,135,23,208,77,87,28,139,77,5,245,103,189,13,122,66,219,66,2,86,175,145,122,248,104,117,38,93,173,120,25,141,134,196,74,26,231,112,65,118,48,175,217,63,100,240,0,79,12,173,96,223,56,43,50,218,117,224,20,98,234,19,8,136,122,59,127,238,160,136,121,80,143,229,66,255,10,239,79,240,171,179,69,2,49,164,115,3,147,89,57,189,62,40,85,106,41,29,153,223,161,39,35,47,52,47,90,172,208,17,154,185,17,226,248,24,4,174,126,240,75,10,154,160,225,191,23,11,76,128,97,165,201,124,42,174,104,35,97,182,103,86,94,145,27,195,61,212,48,149,108,58,208,253,133,228,210,165,43,13,135,33,244,221,229,113,107,226,162,250,254,170,208,89,59,187,212,226,12,77,131,227,33,122,223,201,51,186,230,212,240,246,15,144,92,138,175,107,1,226,139,107,73,127,118,64,143,51,223,251,237,200,20,82,139,35,130,253,158,240,218,130,194,35,128,239,189,224,17,122,98,65,231,174,142,233,74,54,159,6,190,2,127,106,80,199,91,102,139,134,132,132,103,40,104,33,23,22,53,139,26,53,159,141,200,117,80,36,11,245,214,212,64,55,28,236,167,249,11,162,206,250,24,175,110,168,245,106,232,167,180,232,86,99,209,178,3,139,162,123,24,134,57,244,116,68,101,61,177,87,115,91,98,29,221,222,222,30,65,8,172,142,176,18,42,155,231,116,111,7,205,224,53,207,110,25,212,55,236,52,73,100,135,213,111,147,124,106,174,57,219,95,25,57,163,9,200,120,127,156,194,215,148,246,145,200,118,204,226,255,147,88,84,231,154,145,135,206,50,80,5,174,106,126,175,201,18,112,21,19,99,90,71,238,77,249,92,62,61,225,107,36,244,235,179,255,58,1,151,253,215,9,55,162,147,56,70,221,190,144,119,46,161,219,35,165,124,201,189,153,203,249,118,123,235,187,75,126,70,14,216,159,85,185,206,179,82,233,145,249,246,182,201,35,70,75,129,141,218,154,109,150,75,190,249,155,70,164,11,152,57,159,65,119,29,164,7,149,147,160,175,160,112,83,40,142,125,76,247,231,86,146,236,193,185,128,164,181,2,131,76,49,255,84,80,244,78,64,206,56,182,178,40,209,173,0,20,30,106,27,77,146,124,129,1,151,214,166,26,95,179,171,90,23,233,6,230,18,93,224,32,160,245,157,123,189,36,32,141,240,56,111,97,32,205,25,93,160,24,236,200,21,96,30,57,94,234,174,94,9,234,189,14,27,19,54,41,50,120,40,52,72,198,150,220,1,233,224,177,125,27,210,217,136,51,129,235,13,158,106,23,18,103,76,1,47,128,153,203,251,108,78,136,181,132,156,227,151,80,123,167,64,72,64,53,190,102,19,173,35,196,11,250,197,40,216,154,160,40,255,178,188,205,139,5,17,60,68,204,235,68,165,139,22,201,55,137,103,32,116,233,36,224,117,92,103,188,10,222,217,91,127,196,21,115,68,29,5,231,34,169,247,143,32,169,71,72,254,112,10,44,222,178,51,39,74,7,117,17,7,210,33,97,150,18,145,254,97,228,132,79,132,25,200,61,219,241,15,16,104,116,255,210,221,136,108,93,18,164,232,156,82,37,15,110,203,120,164,68,19,142,197,225,92,222,251,119,231,23,158,209,42,124,72,128,59,194,215,84,253,251,85,90,21,172,53,236,94,181,180,15,6,100,223,222,143,208,225,90,93,199,168,120,131,130,247,42,132,62,44,36,242,218,243,193,209,29,176,86,140,81,78,184,124,99,189,89,205,13,33,54,228,145,118,140,88,239,230,100,5,196,248,57,157,18,218,49,5,100,251,14,24,66,133,126,28,41,223,123,182,72,110,158,123,129,78,105,2,167,248,168,130,57,51,23,179,159,125,73,119,47,233,169,73,90,113,21,102,252,27,179,207,198,195,57,147,90,140,255,242,243,143,228,101,202,51,10,7,54,238,142,206,189,243,38,4,181,32,115,121,47,207,161,23,34,147,58,30,71,159,194,213,87,210,219,67,132,28,145,115,198,39,140,0,88,206,248,236,142,120,231,155,205,192,194,196,148,13,220,127,22,224,63,159,158,208,63,12,48,244,246,221,191,236,222,193,162,214,241,127,123,151,225,213,1,24,124,155,156,72,186,111,163,53,30,246,168,137,165,181,46,93,115,55,220,3,201,130,80,9,246,44,132,20,48,237,238,134,232,131,163,102,215,202,4,248,43,115,199,162,104,239,13,102,50,215,162,70,225,129,5,140,98,253,66,210,66,17,198,203,221,56,79,7,38,13,6,253,156,246,118,232,222,226,5,57,175,54,179,85,82,233,155,3,61,8,115,101,159,103,155,170,178,255,2,5,43,46,123,187,32,249,174,114,147,14,116,57,255,52,203,239,244,93,131,249,136,223,57,214,39,241,233,114,75,114,161,232,115,254,5,93,31,231,78,240,33,71,54,180,97,246,118,221,165,240,187,35,156,42,61,175,135,84,72,17,146,20,206,206,180,209,249,89,123,119,248,14,130,134,84,108,47,121,86,246,163,214,218,59,34,65,179,35,98,103,145,110,68,182,161,188,29,167,61,42,179,145,96,179,155,227,230,234,47,255,164,217,78,200,232,88,102,215,94,130,185,13,67,239,208,154,30,250,237,59,36,218,52,173,47,196,63,56,12,104,189,129,245,45,246,186,115,251,249,198,28,192,221,74,218,131,224,206,117,251,58,165,209,233,206,233,209,29,254,71,97,118,187,96,252,63,228,97,87,78,206,102,0,0 };