/** *********************************************************************************************** * Hellenic National Meteorological Service © * Direction of Informatics and Telecommunications * Applications Development Section * * MeteoalarmMap javascript micro library * * Description : Plots the meteoalarm warnings into greece map. The result is injected to the * container element in DOM. * element as an svg image. * Version : 1.21.10.25 - juicy peach 🍑 * Author : Theocharis Kampouridis * Email : theocharis.kampouridis@hnms.gr ** **********************************************************************************************/ /////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////// /// START METEOALARM CLASS /// /// /// /** *********************************************************************************************** * MeteoalarmMap class - constructor function * * @param {String} mapContainerSelector a valid css selector that points to an existing DOM * container element * @param {Object} meteoalarmJsonData is the json object as provided from the Meteoalarm endpoint * API * @param {Boolean} showWarningIcons determines if the phenomena icons of warnings will be plotted. ** **********************************************************************************************/ const MeteoalarmMap = function({ mapContainerSelector, meteoalarmJsonData=null, showWarningIcons=true, innerPadding=22, }){ if(typeof moment === "undefined") throw new Error('Moment.js is required'); moment.tz.setDefault('Etc/UTC'); if(typeof d3 === "undefined") throw new Error('d3.js is required'); if (Number.parseInt === undefined) Number.parseInt = window.parseInt; // for polyfill this._mapContainerSelector = mapContainerSelector; this._mapContainer = document.querySelector(mapContainerSelector); if( this._mapContainer===null ) throw new Error('Selector of map container points to null'); this.__injectMapToDOM_(innerPadding); this._svgContainer = d3.select(`${this._mapContainerSelector} > div > svg`); this._svgContainer.append("style").text(MeteoalarmMap.svgStyle.minifiedCSS); // append css style this._meteoalarmJsonData = meteoalarmJsonData; this._regionsMap = this.__parse_(); this.__colorizeRegions_(); if(showWarningIcons) this.__plotWarningsIcons_(); }; /** *********************************************************************************************** * Sets the color of each region to the appropriate one depending on the this._regionsMap contents * * @returns {void} ** **********************************************************************************************/ MeteoalarmMap.prototype.__colorizeRegions_ = function(){ for (let [regionID, warningsArray] of this._regionsMap) if( warningsArray.length>0 ){ console.log(`Regions ${regionID} has awareness color ${warningsArray[0].awarenessString} and ${warningsArray.length} warnings`); this.__setRegionsColor_(regionID, warningsArray[0].awarenessCode); } else { console.log(`Regions ${regionID} has NO WARNINGS`); this.__setRegionsColor_(regionID, 0); } }; /** *********************************************************************************************** * Sets the color of each region to the appropriate one, depending on the this._regionsMap contents * * @returns {void} ** **********************************************************************************************/ MeteoalarmMap.prototype.__setRegionsColor_ = function(__regionID_, __awarenessCode_){ if(__awarenessCode_===4){ // Red d3.select(`${this._mapContainerSelector} > div > svg path#${__regionID_}`).classed('meteoalarm-overlay-region-extreme-awareness', true); d3.select(`${this._mapContainerSelector} > div > svg path#LAND_${__regionID_}`).classed('meteoalarm-land-extreme-awareness', true); } else if(__awarenessCode_===3) { // Orange d3.select(`${this._mapContainerSelector} > div > svg path#${__regionID_}`).classed('meteoalarm-overlay-region-severe-awareness', true); d3.select(`${this._mapContainerSelector} > div > svg path#LAND_${__regionID_}`).classed('meteoalarm-land-severe-awareness', true); } else if(__awarenessCode_===2) { // Yellow d3.select(`${this._mapContainerSelector} > div > svg path#${__regionID_}`).classed('meteoalarm-overlay-region-moderate-awareness', true); d3.select(`${this._mapContainerSelector} > div > svg path#LAND_${__regionID_}`).classed('meteoalarm-land-moderate-awareness', true); } else if(__awarenessCode_===1) { // White - Reset d3.select(`${this._mapContainerSelector} > div > svg path#${__regionID_}`).classed('meteoalarm-overlay-region-extreme-awareness', false); d3.select(`${this._mapContainerSelector} > div > svg path#LAND_${__regionID_}`).classed('meteoalarm-land-extreme-awareness', false); d3.select(`${this._mapContainerSelector} > div > svg path#${__regionID_}`).classed('meteoalarm-overlay-region-severe-awareness', false); d3.select(`${this._mapContainerSelector} > div > svg path#LAND_${__regionID_}`).classed('meteoalarm-land-severe-awareness', false); d3.select(`${this._mapContainerSelector} > div > svg path#${__regionID_}`).classed('meteoalarm-overlay-region-moderate-awareness', false); d3.select(`${this._mapContainerSelector} > div > svg path#LAND_${__regionID_}`).classed('meteoalarm-land-moderate-awareness', false); } else { // same as 1 this.__setRegionsColor_(__regionID_, 1); } }; /** *********************************************************************************************** * Injects to the mapContainerSelector the MeteoalarmMap.serializedSVGMap.svgGreeceMap * * @returns {void} ** **********************************************************************************************/ MeteoalarmMap.prototype.__plotWarningsIcons_ = function(__regionID_, __awarenessCode_){ for (let [regionID, warningsArray] of this._regionsMap) if( warningsArray.length>0 ) this.__plotWarningsIconsFor_(regionID, warningsArray); }; /** *********************************************************************************************** * Plots phenomena icons for a given region __regionID_ * * @returns {void} ** **********************************************************************************************/ MeteoalarmMap.prototype.__plotWarningsIconsFor_ = function(__regionID_, __warningsArray_){ const __counter_ = __warningsArray_.length; const __rcx_ = MeteoalarmMap.regionsCenterCoords[__regionID_].x; const __rcy_ = MeteoalarmMap.regionsCenterCoords[__regionID_].y; if(__counter_===1){ // ----- 1 ----- const __w_ = 28; const __h_ = 28; const base64Icon = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[0].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2)).attr('y', __rcy_-(__h_/2)); } else if(__counter_===2) { // ----- 2 ----- const __w_ = 28; const __h_ = 28; const base64Icon0 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[0].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon0}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) - 14).attr('y', __rcy_-(__h_/2)); const base64Icon1 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[1].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon1}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) + 14).attr('y', __rcy_-(__h_/2)); } else if(__counter_===3) { // ----- 3 ----- const __w_ = 24; const __h_ = 24; const base64Icon0 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[0].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon0}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) - 12).attr('y', __rcy_-(__h_/2)); const base64Icon1 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[1].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon1}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) + 12).attr('y', __rcy_-(__h_/2)); const base64Icon2 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[2].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon2}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2)).attr('y', __rcy_-(__h_/2) - 22); } else if(__counter_===4) { // ----- 4 ----- const __w_ = 24; const __h_ = 24; const base64Icon0 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[0].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon0}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) - 12).attr('y', __rcy_-(__h_/2)); const base64Icon1 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[1].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon1}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) + 12).attr('y', __rcy_-(__h_/2)); const base64Icon2 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[2].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon2}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2)).attr('y', __rcy_-(__h_/2) - 22); const base64Icon3 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[3].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon3}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2)).attr('y', __rcy_-(__h_/2) + 22); } else if(__counter_===5) { // ----- 5 ----- const __w_ = 22; const __h_ = 22; const __pivot_px_ = 16; const base64Icon0 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[0].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon0}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2)).attr('y', __rcy_-(__h_/2)); const base64Icon1 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[1].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon1}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) -__pivot_px_).attr('y', __rcy_-(__h_/2) -__pivot_px_); const base64Icon2 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[2].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon2}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) -__pivot_px_).attr('y', __rcy_-(__h_/2) +__pivot_px_); const base64Icon3 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[3].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon3}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) +__pivot_px_).attr('y', __rcy_-(__h_/2) -__pivot_px_); const base64Icon4 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[4].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon4}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) +__pivot_px_).attr('y', __rcy_-(__h_/2) +__pivot_px_); } else if(__counter_===6) { // ----- 6 ----- const __w_ = 20; const __h_ = 20; const __pivot_px_x_ = 20; const __pivot_px_y_ = 10; const base64Icon0 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[0].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon0}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2)).attr('y', __rcy_-(__h_/2) -__pivot_px_y_); const base64Icon1 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[1].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon1}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) -__pivot_px_x_).attr('y', __rcy_-(__h_/2) -__pivot_px_y_); const base64Icon2 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[2].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon2}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) +__pivot_px_x_).attr('y', __rcy_-(__h_/2) -__pivot_px_y_); const base64Icon3 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[3].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon3}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2)).attr('y', __rcy_-(__h_/2) +__pivot_px_y_); const base64Icon4 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[4].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon4}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) -__pivot_px_x_).attr('y', __rcy_-(__h_/2) +__pivot_px_y_); const base64Icon5 = MeteoalarmMap.getBase64PhenomenonIcon(__warningsArray_[5].phenomenonCode); this._svgContainer.append('svg:image') .attr('href', `data:image/svg+xml;base64,${base64Icon5}`) .attr('width', `${__w_}`).attr('height', `${__h_}`) .attr('x', __rcx_-(__w_/2) +__pivot_px_x_).attr('y', __rcy_-(__h_/2) +__pivot_px_y_); } }; /** *********************************************************************************************** * Injects to the mapContainerSelector the MeteoalarmMap.serializedSVGMap.svgGreeceMap * * @returns {void} ** **********************************************************************************************/ MeteoalarmMap.prototype.__injectMapToDOM_ = function(innerPadding=22) { const innerContainer = document.createElement('div'); innerContainer.style.width = "100%"; innerContainer.style.height = "100%"; innerContainer.style.backgroundColor = '#b7c7d6'; innerContainer.style.padding = `${innerPadding}px`; innerContainer.innerHTML = MeteoalarmMap.serializedSVGMap.svgGreeceMap; this._mapContainer.appendChild(innerContainer); }; /** *********************************************************************************************** * Parses the given meteoalarm json and extracts the appropriate information * * @returns {Map} ** **********************************************************************************************/ MeteoalarmMap.prototype.__parse_ = function() { if(this._meteoalarmJsonData===null || this._meteoalarmJsonData===undefined) return null; const regionsMap = MeteoalarmMap.__createRegionsMapStructure(); moment.tz.setDefault('Etc/UTC'); const nowDateTime = moment(); const endOfTheDay = moment().endOf('day'); const meteoalarmJsonData = this._meteoalarmJsonData; //await fetchMeteoalarmJSON(); let warningRecord; for ( w of meteoalarmJsonData.warnings ) { warningRecord = {}; warningRecord.regionID = w.alert.info[0].area[0].geocode[0].value; warningRecord.regionDescription = w.alert.info[0].area[0].areaDesc; warningRecord.issuedFrom = w.alert.info[0].onset; //.effective; warningRecord.issuedTo = w.alert.info[0].expires; /*warningRecord.awarenessCode = */ const awarenessCode = w.alert.info[0].parameter[1].value.split(';')[0].trim(); const parsedAwarenessCode = Number.parseInt( awarenessCode ); if( parsedAwarenessCode===NaN || parsedAwarenessCode=== null || parsedAwarenessCode===undefined ){ console.error(`Failed to parse awareness level for ${warningRecord.regionID}`); continue; } warningRecord.awarenessCode = parsedAwarenessCode;//Number.parseInt(awarenessCode); warningRecord.awarenessString = w.alert.info[0].parameter[1].value.split(';')[1].trim(); warningRecord.descriptionGr = w.alert.info[1].event; warningRecord.phenomenonCode = w.alert.info[0].parameter[0].value.split(';')[0].trim(); warningRecord.phenomenonString = w.alert.info[0].parameter[0].value.split(';')[1].trim(); const isActiveWarning = //true; moment(warningRecord.issuedFrom).isBefore(endOfTheDay) && //&& moment(warningRecord.issuedFrom).isAfter(startOfCurrentDay) && moment(warningRecord.issuedTo).isAfter(nowDateTime); //&& moment(warningRecord.issuedTo).isBefore(endOfCurrentDay); if( isActiveWarning ) regionsMap.get(warningRecord.regionID).push( warningRecord ); if(warningRecord.regionID==="GR014"){ console.log(isActiveWarning ? `ADDED ${warningRecord.regionID}` : `NOT ADDED ${warningRecord.regionID}`); console.log(warningRecord.issuedFrom); console.log(warningRecord.issuedTo); console.table(warningRecord); } } for (let [regionID, warningsArray] of regionsMap) // sort the warnings warningsArray.sort( (w1, w2) => w1.awarenessCode === w2.awarenessCode ? 0 : (w1.awarenessCode > w2.awarenessCode ? -1 : 1) ); return regionsMap; }; /** *********************************************************************************************** * **static** * * @returns {Map} ** **********************************************************************************************/ MeteoalarmMap.__createRegionsMapStructure = function(){ const regionsMap = new Map(); const regionsIDs = MeteoalarmMap.__createRegionsIDs(); for ( regionID of regionsIDs) regionsMap.set(regionID, new Array()); return regionsMap; }; /** *********************************************************************************************** * **static** * * @returns {Array} ** **********************************************************************************************/ MeteoalarmMap.__createRegionsIDs = function() { return [...Array(17).keys()].slice(1).map((i)=> i<10 ? `GR00${i}` : `GR0${i}`); }; /** *********************************************************************************************** * **static** * * Phenomenon Code to Phenomenon String ** **********************************************************************************************/ MeteoalarmMap.getBase64PhenomenonIcon = function(__phenomenonCode_){ return MeteoalarmMap.phenomenaIcons[MeteoalarmMap.phenomenaCodes[__phenomenonCode_]]; }; /** *********************************************************************************************** * **static** * * Phenomenon Code to Phenomenon String * { "Wind":"1", "Thunderstorm":"3", "Rain":"10", "Fog":"4", "MaxTemp":"5", "MinTemp":"6", "Snow":"2" } ** **********************************************************************************************/ MeteoalarmMap.phenomenaCodes = { 1 : "Wind", 3 : "Thunderstorm", 10 : "Rain", 4 : "Fog", 5 : "MaxTemp", 6 : "MinTemp", 2 : "Snow", }; /** *********************************************************************************************** * **static** * * Meteoalarm phenomena icons ** **********************************************************************************************/ MeteoalarmMap.phenomenaIcons = { "Fog" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgZGF0YS12LTI4MGNhOWZhPSIiCiAgIHdpZHRoPSIyNCIKICAgaGVpZ2h0PSIyNCIKICAgdmlld0JveD0iMCAwIDY0IDY0IgogICB2ZXJzaW9uPSIxLjEiCiAgIGZpbGw9ImN1cnJlbnRDb2xvciIKICAgaWQ9InN2ZzE4IgogICBzb2RpcG9kaTpkb2NuYW1lPSJGb2cuc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEgKGM2OGUyMmMzODcsIDIwMjEtMDUtMjMpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMyMiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzIwIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjQ1LjI1NDgzNCIKICAgICBpbmtzY2FwZTpjeD0iOS44MDAwNTgiCiAgICAgaW5rc2NhcGU6Y3k9IjguNDQxMDg3MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM3NiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMzIiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcxOCIgLz4KICA8ZWxsaXBzZQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNzc2O3N0cm9rZS1saW5lam9pbjpiZXZlbDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgIGlkPSJwYXRoMTEwNyIKICAgICBjeD0iMzIuMDI3NjE4IgogICAgIGN5PSIzMi4wMDk0OTEiCiAgICAgcng9IjMxLjEwNDM4MiIKICAgICByeT0iMzEuMTgyOTExIiAvPgogIDxnCiAgICAgc3Ryb2tlPSJub25lIgogICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgIGlkPSJnMTYiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbGluZWpvaW46YmV2ZWw7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjkwNjUzMjYzLDAsMCwwLjkwMjkwODgzLDMuMDM3Njg5NSwzLjE1NTQ2MykiPgogICAgPGcKICAgICAgIGlkPSI0IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNiwxNykiCiAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1saW5lam9pbjpiZXZlbDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIj4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSA1MS42Mjg3MTksMyBIIDEuMzcxMjgwNyBDIDAuNjEzOTQzMjksMyAwLDIuMzI4NDI3MSAwLDEuNSAwLDAuNjcxNTcyODcgMC42MTM5NDMyOSwwIDEuMzcxMjgwNywwIEggNTEuNjI4NzE5IEMgNTIuMzg2MDU3LDAgNTMsMC42NzE1NzI4NyA1MywxLjUgNTMsMi4zMjg0MjcxIDUyLjM4NjA1NywzIDUxLjYyODcxOSwzIFoiCiAgICAgICAgIGlkPSJQYXRoIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1saW5lam9pbjpiZXZlbDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDI3LjY2MTc0NCwyMSBIIDEuMzM4MjU1NiBDIDAuNTk5MTU3NDYsMjEgMCwyMC4zMjg0MjcgMCwxOS41IDAsMTguNjcxNTczIDAuNTk5MTU3NDYsMTggMS4zMzgyNTU2LDE4IEggMjcuNjYxNzQ0IEMgMjguNDAwODQyLDE4IDI5LDE4LjY3MTU3MyAyOSwxOS41IDI5LDIwLjMyODQyNyAyOC40MDA4NDIsMjEgMjcuNjYxNzQ0LDIxIFoiCiAgICAgICAgIGlkPSJwYXRoMyIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbGluZWpvaW46YmV2ZWw7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSA1MS42MzQ4MTIsMjEgSCAzOC4zNjUxODggQyAzNy42MTEyMTUsMjEgMzcsMjAuMzI4NDI3IDM3LDE5LjUgMzcsMTguNjcxNTczIDM3LjYxMTIxNSwxOCAzOC4zNjUxODgsMTggSCA1MS42MzQ4MTIgQyA1Mi4zODg3ODUsMTggNTMsMTguNjcxNTczIDUzLDE5LjUgNTMsMjAuMzI4NDI3IDUyLjM4ODc4NSwyMSA1MS42MzQ4MTIsMjEgWiIKICAgICAgICAgaWQ9InBhdGg1IgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1saW5lam9pbjpiZXZlbDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDE5LjYxMzg2MSwxMiBIIDEuMzg2MTM4NiBDIDAuNjIwNTk1NCwxMiAwLDExLjMyODQyNyAwLDEwLjUgMCw5LjY3MTU3MjkgMC42MjA1OTU0LDkgMS4zODYxMzg2LDkgSCAxOS42MTM4NjEgQyAyMC4zNzk0MDUsOSAyMSw5LjY3MTU3MjkgMjEsMTAuNSAyMSwxMS4zMjg0MjcgMjAuMzc5NDA1LDEyIDE5LjYxMzg2MSwxMiBaIgogICAgICAgICBpZD0icGF0aDciCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuNTMzMzM7c3Ryb2tlLWxpbmVqb2luOmJldmVsO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gNTEuNjQwMjI3LDEyIEggMzAuMzU5NzczIEMgMjkuNjA4NzkxLDEyIDI5LDExLjMyODQyNyAyOSwxMC41IDI5LDkuNjcxNTcyOSAyOS42MDg3OTEsOSAzMC4zNTk3NzMsOSBIIDUxLjY0MDIyNyBDIDUyLjM5MTIwOSw5IDUzLDkuNjcxNTcyOSA1MywxMC41IDUzLDExLjMyODQyNyA1Mi4zOTEyMDksMTIgNTEuNjQwMjI3LDEyIFoiCiAgICAgICAgIGlkPSJwYXRoOSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbGluZWpvaW46YmV2ZWw7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSA1MC42NjA1MDgsMzEgSCAyNC4zMzk0OTIgQyAyMy41OTk3MTEsMzEgMjMsMzAuMzI4NDI3IDIzLDI5LjUgMjMsMjguNjcxNTczIDIzLjU5OTcxMSwyOCAyNC4zMzk0OTIsMjggSCA1MC42NjA1MDggQyA1MS40MDAyODksMjggNTIsMjguNjcxNTczIDUyLDI5LjUgNTIsMzAuMzI4NDI3IDUxLjQwMDI4OSwzMSA1MC42NjA1MDgsMzEgWiIKICAgICAgICAgaWQ9InBhdGgxMSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbGluZWpvaW46YmV2ZWw7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSAxNC42MzQ4MTIsMzEgSCAxLjM2NTE4NzcgQyAwLjYxMTIxNTM2LDMxIDAsMzAuMzI4NDI3IDAsMjkuNSAwLDI4LjY3MTU3MyAwLjYxMTIxNTM2LDI4IDEuMzY1MTg3NywyOCBIIDE0LjYzNDgxMiBDIDE1LjM4ODc4NSwyOCAxNiwyOC42NzE1NzMgMTYsMjkuNSAxNiwzMC4zMjg0MjcgMTUuMzg4Nzg1LDMxIDE0LjYzNDgxMiwzMSBaIgogICAgICAgICBpZD0icGF0aDEzIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1saW5lam9pbjpiZXZlbDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==", "MaxTemp" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgZGF0YS12LTI4MGNhOWZhPSIiCiAgIHdpZHRoPSIyNiIKICAgaGVpZ2h0PSIyNiIKICAgdmlld0JveD0iMCAwIDY5LjMzMzMzMyA2OS4zMzMzMzQiCiAgIHZlcnNpb249IjEuMSIKICAgZmlsbD0iY3VycmVudENvbG9yIgogICBpZD0ic3ZnMTEiCiAgIHNvZGlwb2RpOmRvY25hbWU9Ik1heFRlbXAuc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEgKGM2OGUyMmMzODcsIDIwMjEtMDUtMjMpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxNSIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzEzIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjMyIgogICAgIGlua3NjYXBlOmN4PSIxNC41MTU2MjUiCiAgICAgaW5rc2NhcGU6Y3k9IjExLjM0Mzc1IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzc2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIzMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzExIiAvPgogIDxlbGxpcHNlCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC43NzY7c3Ryb2tlLWxpbmVqb2luOmJldmVsO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgIGlkPSJwYXRoMTI1MyIKICAgICBjeD0iMzQuNzI4Mzg2IgogICAgIGN5PSIzNC42NzU1MjYiCiAgICAgcng9IjM0LjE5NjU3NSIKICAgICByeT0iMzQuMjQyNzMzIiAvPgogIDxnCiAgICAgc3Ryb2tlPSJub25lIgogICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgIGlkPSJnOSIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi42MTAzNjE3LDIuOTYyNzE3NykiPgogICAgPGcKICAgICAgIGlkPSI1IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgsMykiCiAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDEyLjAyNzg5Miw1OCBDIDguNDkxMzQzMyw1OC4wMDkgNS4xMzA2OTg0LDU2LjQ3MDk5NSAyLjg0MjYwMzYsNTMuNzk2NDI4IC0xLjM0NjY2MzksNDguODg4MTg4IC0wLjg0OTgwNjc4LDQxLjU2NzY2OCAzLjk2NDkyMTcsMzcuMjYwNTgxIFYgNy45Njc2NzE0IEMgMy45NzI5Njg0LDMuNTgxOTc1OSA3LjU0Njk4NzUsMC4wMjQxMzQyMiAxMS45Njg4MjIsMCBoIDAuMjA2NzQzIGMgNC4zNDc3MDcsMC4xMDMyNjEwMyA3LjgxOTkyOSwzLjYyNTAzMjIgNy44MjY2OTIsNy45MzgzNzg1IDAsMC44MDg5MDEzIC0wLjY2MTE1NiwxLjQ2NDY0NTUgLTEuNDc2NzM0LDEuNDY0NjQ1NSB2IDAgYyAtMC44MTU1NzgsMCAtMS40NzY3MzUsLTAuNjU1NzQ0MiAtMS40NzY3MzUsLTEuNDY0NjQ1NSBDIDE3LjAwNDQwNiw1LjI0MTA4OSAxNC44NDg2NjUsMy4wNDUyMDk3IDEyLjEzMTI2MywyLjkyOTI5MSBIIDExLjk4MzU5IEMgOS4xODk1MjM3LDIuOTM3MzM1MSA2LjkyNjUwMTEsNS4xODE4MzIxIDYuOTE4MzkwNSw3Ljk1MzAyNDkgViAzOC41OTM0MDggbCAtMC43ODI2NjkyLDAuNjczNzM3IGMgLTMuODAzMjIzMSwzLjIwNjA2NSAtNC4yNzIyNTQ3LDguODYwNDQgLTEuMDQ4NDgxNCwxMi42Mzk4OTEgMi4xNTc1MjU0LDIuNDY1NjkxIDUuNDg4MjA0MSwzLjU4NTQ5MiA4LjcxMjczMzEsMi45MjkyOTEgMi4zNTI1NjIsLTAuNDUzMjY3IDQuNDE5NjYyLC0xLjgzMjM4MiA1LjcyOTcyOSwtMy44MjI3MjUgMi40OTQ4MTMsLTMuNzY4NzA5IDEuNzczNDI2LC04Ljc4OTYzMiAtMS42ODM0NzcsLTExLjcxNzE2NCBMIDE3LjA0ODc4OCwzOC42MjI3MDEgViAyNy40MDM1MTcgYyAwLC0wLjgwODkwMiAwLjY2MTE1NywtMS40NjQ2NDYgMS40NzY3MzUsLTEuNDY0NjQ2IDAuODE1NTc4LDAgMS40NzY3MzQsMC42NTU3NDQgMS40NzY3MzQsMS40NjQ2NDYgdiA5Ljg1NzA2NCBjIDMuMzgzNjI0LDIuOTk4MDgyIDQuNzY4NTA3LDcuNjM1MTgyIDMuNTc3MDY2LDExLjk3NzM0MSAtMS4xOTE0NDEsNC4zNDIxNTkgLTQuNzU0NjAyLDcuNjQzNzA4IC05LjIwMzQyNCw4LjUyNzY5NSBDIDEzLjYwMzM4Myw1Ny45MjMyNTQgMTIuODE2NTg2LDU4LjAwMTc4MSAxMi4wMjc4OTIsNTggWiIKICAgICAgICAgaWQ9IlBhdGgiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuNTMzMzM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSAzNC41NTM1ODMsMjAgSCAxNS40NDY0MTcgQyAxNC42NDc1ODMsMjAgMTQsMTkuMzI4NDI3IDE0LDE4LjUgMTQsMTcuNjcxNTczIDE0LjY0NzU4MywxNyAxNS40NDY0MTcsMTcgSCAzNC41NTM1ODMgQyAzNS4zNTI0MTcsMTcgMzYsMTcuNjcxNTczIDM2LDE4LjUgMzYsMTkuMzI4NDI3IDM1LjM1MjQxNywyMCAzNC41NTM1ODMsMjAgWiIKICAgICAgICAgaWQ9InBhdGgzIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMjQuNSwzMCBDIDIzLjY3MTU3MywzMCAyMywyOS4zMjI5ODEgMjMsMjguNDg3ODM3IFYgOC41MTIxNjMxIEMgMjMsNy42NzcwMTg1IDIzLjY3MTU3Myw3IDI0LjUsNyAyNS4zMjg0MjcsNyAyNiw3LjY3NzAxODUgMjYsOC41MTIxNjMxIFYgMjguNDg3ODM3IEMgMjYsMjkuMzIyOTgxIDI1LjMyODQyNywzMCAyNC41LDMwIFoiCiAgICAgICAgIGlkPSJwYXRoNSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8Y2lyY2xlCiAgICAgICAgIGlkPSJPdmFsIgogICAgICAgICBjeD0iMTIiCiAgICAgICAgIGN5PSI0NiIKICAgICAgICAgcj0iNCIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==", "MinTemp" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgZGF0YS12LTI4MGNhOWZhPSIiCiAgIHdpZHRoPSIyNiIKICAgaGVpZ2h0PSIyNiIKICAgdmlld0JveD0iMCAwIDY5LjMzMzMzMyA2OS4zMzMzMzMiCiAgIHZlcnNpb249IjEuMSIKICAgZmlsbD0iY3VycmVudENvbG9yIgogICBpZD0ic3ZnOSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iTWluVGVtcC5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMSAoYzY4ZTIyYzM4NywgMjAyMS0wNS0yMykiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczEzIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3MTEiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6em9vbT0iNDUuMjU0ODM0IgogICAgIGlua3NjYXBlOmN4PSIxNS42MTE1OTIiCiAgICAgaW5rc2NhcGU6Y3k9IjMuMjcwMzY4OSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM3NiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMzIiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc5IiAvPgogIDxjaXJjbGUKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjc3NjtzdHJva2UtbGluZWpvaW46YmV2ZWw7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgaWQ9InBhdGg4NDciCiAgICAgY3g9IjM0Ljc4NTg4OSIKICAgICBjeT0iMzQuNzE5ODIyIgogICAgIHJ4PSIzNC4xMzM2ODIiCiAgICAgcnk9IjM0LjE5MDQzNCIgLz4KICA8ZWxsaXBzZQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNzc2O3N0cm9rZS1saW5lam9pbjpiZXZlbDtmaWxsLW9wYWNpdHk6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZSIKICAgICBpZD0icGF0aDg3MCIKICAgICBjeD0iMzQuNjc2OTUyIgogICAgIGN5PSIzNC43MDY0MzIiCiAgICAgcng9IjM0LjE4NjU5NiIKICAgICByeT0iMzQuMTkxMDY3IiAvPgogIDxnCiAgICAgc3Ryb2tlPSJub25lIgogICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgIGlkPSJnNyIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi42Mjk2NjQxLDEuOTA0Mzg4NCkiPgogICAgPGcKICAgICAgIGlkPSI2IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgsMykiCiAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDEyLjAxOTMyMiw1OCBDIDcuMDQ4OTY4NSw1OC4wMTM5MDMgMi41ODU3MjM2LDU0Ljk4MjA2MSAwLjgwMDM2NTkxLDUwLjM3OTAwMiAtMC45ODQ5OTE4LDQ1Ljc3NTk0MyAwLjI3ODA4NjkzLDQwLjU1NzAyNyAzLjk3NTI4MTQsMzcuMjYwNTY1IFYgNy45Njc2NjgxIEMgMy45ODMzMjM4LDMuNTgxOTc0NCA3LjU1NTQ5NSwwLjAyNDEzNDIxIDExLjk3NTA0MywwIGggMC4yMDY2MzYgYyA0LjM0NTQ1OSwwLjEwMzI2MDk4IDcuODE1ODg2LDMuNjI1MDMwNyA3LjgyMjY0NSw3LjkzODM3NTIgMCwwLjgwODkwMSAtMC42NjA4MTQsMS40NjQ2NDQ4IC0xLjQ3NTk3LDEuNDY0NjQ0OCB2IDAgYyAtMC44MTUxNTcsMCAtMS40NzU5NzEsLTAuNjU1NzQzOCAtMS40NzU5NzEsLTEuNDY0NjQ0OCBDIDE3LjAwODAyMyw1LjI0MTA4NjggMTQuODUzMzk3LDMuMDQ1MjA4NSAxMi4xMzc0LDIuOTI5Mjg5NyBIIDExLjk4OTgwMyBDIDkuMTk3MTgxOSwyLjkzNzMzMzkgNi45MzUzMjkzLDUuMTgxODI5OSA2LjkyNzIyMyw3Ljk1MzAyMTYgViAzOC41OTMzOTIgbCAtMC43ODIyNjQ1LDAuNjczNzM3IGMgLTMuODAxMjU2NiwzLjIwNjA2MyAtNC4yNzAwNDU3LDguODYwNDM2IC0xLjA0NzkzOTMsMTIuNjM5ODg1IDIuMTU2NDA5OCwyLjQ2NTY5IDUuNDg1MzY2OCwzLjU4NTQ5MSA4LjcwODIyNzgsMi45MjkyOSAyLjM1MTM0NSwtMC40NTMyNjcgNC40MTczNzcsLTEuODMyMzgyIDUuNzI2NzY3LC0zLjgyMjcyMyAyLjQ5MzUyMiwtMy43Njg3MDggMS43NzI1MDgsLTguNzg5NjI4IC0xLjY4MjYwNywtMTEuNzE3MTU5IGwgLTAuNzk3MDI0LC0wLjY3MzczNyB2IC0xMS4yMTkxOCBjIDAsLTAuODA4OTAxIDAuNjYwODE0LC0xLjQ2NDY0NCAxLjQ3NTk3MSwtMS40NjQ2NDQgMC44MTUxNTYsMCAxLjQ3NTk3LDAuNjU1NzQzIDEuNDc1OTcsMS40NjQ2NDQgdiA5Ljg1NzA2IGMgMy4zODE4NzUsMi45OTgwODIgNC43NjYwNDEsNy42MzUxNzkgMy41NzUyMTYsMTEuOTc3MzM3IC0xLjE5MDgyNSw0LjM0MjE1NyAtNC43NTIxNDMsNy42NDM3MDQgLTkuMTk4NjY0LDguNTI3NjkyIEMgMTMuNjAzODk3LDU3LjkyNDAyNSAxMi44MTI1Myw1OC4wMDI1NTQgMTIuMDE5MzIyLDU4IFoiCiAgICAgICAgIGlkPSJQYXRoIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMzQuNTUzNTgzLDE5IEggMTUuNDQ2NDE3IEMgMTQuNjQ3NTgzLDE5IDE0LDE4LjMyODQyNyAxNCwxNy41IDE0LDE2LjY3MTU3MyAxNC42NDc1ODMsMTYgMTUuNDQ2NDE3LDE2IEggMzQuNTUzNTgzIEMgMzUuMzUyNDE3LDE2IDM2LDE2LjY3MTU3MyAzNiwxNy41IDM2LDE4LjMyODQyNyAzNS4zNTI0MTcsMTkgMzQuNTUzNTgzLDE5IFoiCiAgICAgICAgIGlkPSJwYXRoMyIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8Y2lyY2xlCiAgICAgICAgIGlkPSJPdmFsIgogICAgICAgICBjeD0iMTIiCiAgICAgICAgIGN5PSI0NyIKICAgICAgICAgcj0iNCIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==", "Rain" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgZGF0YS12LTI4MGNhOWZhPSIiCiAgIHdpZHRoPSIyNCIKICAgaGVpZ2h0PSIyNCIKICAgdmlld0JveD0iMCAwIDY0IDY0IgogICB2ZXJzaW9uPSIxLjEiCiAgIGZpbGw9ImN1cnJlbnRDb2xvciIKICAgaWQ9InN2ZzgiCiAgIHNvZGlwb2RpOmRvY25hbWU9IlJhaW4uc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEgKGM2OGUyMmMzODcsIDIwMjEtMDUtMjMpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxMiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzEwIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjI0LjIwODMzMyIKICAgICBpbmtzY2FwZTpjeD0iMTIiCiAgICAgaW5rc2NhcGU6Y3k9IjEyLjAyMDY1NCIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM3NiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMzIiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc4IiAvPgogIDxlbGxpcHNlCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC43NzY7c3Ryb2tlLWxpbmVqb2luOmJldmVsO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgIGlkPSJwYXRoMTAyNiIKICAgICBjeD0iMzIuMDM0OTI0IgogICAgIGN5PSIzMS45NzMwNTkiCiAgICAgcng9IjMxLjQxNDczNiIKICAgICByeT0iMzEuMzI0MjYzIiAvPgogIDxnCiAgICAgc3Ryb2tlPSJub25lIgogICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgIGlkPSJnNiIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC44NjgxODEwOCwwLDAsMC44NjgxODEwOCw0LjI4NDExNDgsNC4yODQxMTQ4KSI+CiAgICA8ZwogICAgICAgaWQ9IjEwIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNyw0KSIKICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuNTMzMzM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMTcuMDA2NzM4LDU3IEMgNy42MTk0MzYyLDU3IDAuMDA3NDM4NDMsNDkuMTQ5NDExIDAsMzkuNDYwMTk1IDAsMzQuMzY5MzQgMy43ODY3NjE4LDI2Ljk0MTY5OSA2Ljk1MzYyNjYsMjEuNjQyMjAyIGMgMS42MzA1OTg1LC0yLjc4MTg4OCAzLjM4MjQ4MTQsLTUuMzY5MDQ0IDQuOTU5MTc1NCwtNy40NjkzNyAwLjYxOTExNCwtMC44NDYxODQgMS4yODAzMjcsLTEuNjU4NjU5IDEuOTgwOTc1LC0yLjQzNDE1MiAwLjc1MjIwOSwtMS4wMDg1MTUgMS44ODM1NDgsLTEuNjQwNDAxIDMuMTEyOTYxLC0xLjczODY4IDEuMjI0NTkxLDAuMTAyMSAyLjM1MDM1LDAuNzMzNjAzIDMuMDk5NDg1LDEuNzM4NjggMC43MDQ1MTgsMC43NzE5NDcgMS4zNjU5MTIsMS41ODQ2NDUgMS45ODA5NzUsMi40MzQxNTIgMS43NzYyNzksMi4zOTUzOTYgMy40MzE1NDEsNC44ODM4NjIgNC45NTkxNzUsNy40NTU0NiBDIDMwLjIxMzIzOCwyNi45NDE2OTkgMzQsMzQuMzU1NDMxIDM0LDM5LjQ0NjI4NiAzNCw0OS4xMzU1MDUgMjYuMzk0MDM3LDU2Ljk5MjMyMiAxNy4wMDY3MzgsNTcgWiBtIDAsLTQ0LjIxODExMiBjIC0wLjI1NjA0NCwwIC0wLjU5Mjk0NSwwLjI2NDI3OSAtMS4xNzI0MTQsMC44NzYyOTUgLTAuNTc5NDY5LDAuNjEyMDE1IC0xLjA5MTU1NywxLjI3OTY2OCAtMS43OTIzMTEsMi4yMTE2MDEgLTEuNTA5MzE0LDIuMDMwNzc4IC0zLjI2MTE5Niw0LjU5MDExNSAtNC43OTc0NjI5LDcuMjMyOTA5IC00LjE2NDA5MDMsNi45ODI1MzkgLTYuNTQ5MzQ2LDEyLjkzNTc4IC02LjU0OTM0NiwxNi4zNTc1MDIgQyAyLjkzMjQ3MTksNDcuNDM4MjIzIDkuMjY2OTI4LDUzLjc3ODc4OSAxNyw1My43Nzg3ODkgYyA3LjczMzA3MiwwIDE0LjA2NzUyOCwtNi4zNDA1NjYgMTQuMzA0Nzk2LC0xNC4zMTg1OTQgMCwtMy40MjE3MjIgLTIuMzg1MjU2LC05LjM3NDk2MyAtNi41NDkzNDYsLTE2LjM1NzUwMiAtMS40Nzc5OTEsLTIuNDk0MjQ4IC0zLjA3OTI1OSwtNC45MDg0MDUgLTQuNzk3NDY0LC03LjIzMjkwOSB2IDAgYyAtMC43MDA3NTIsLTAuOTMxOTMzIC0xLjM0NzYwMiwtMS42ODMwNDIgLTEuNzkyMzEsLTIuMjExNjAxIC0wLjQ0NDcwOSwtMC41Mjg1NTkgLTAuOTE2MzcsLTAuODc2Mjk1IC0xLjE1ODkzOCwtMC44NzYyOTUgeiIKICAgICAgICAgaWQ9IlNoYXBlIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gNDAuNTA2NzcsMjggQyAzNC43MDQwNDEsMjggMzAsMjMuMTU4NjczIDMwLDE3LjE4NjU5MyAzMCwxNC43MzUzNjggMzEuMzYwOTgsMTEuMjc1NjM4IDMzLjk0Njg0NCw2LjkxOTQ1OTcgMzQuNzgzNTIxLDUuNDk4Njk3NiAzNS42OTIwOTEsNC4xMjQxMTk4IDM2LjY2ODgwNSwyLjgwMTQwMDcgMzcuODkzNjg3LDEuMTYyNTgxMyAzOC44ODcyMDMsMCA0MC40OTMxNiwwIGMgMS42MDU5NTcsMCAyLjU5OTQ3MywxLjE0ODU3NDMgMy44MTA3NDUsMi44MDE0MDA3IDAuOTc5OTAyLDEuMzIwMzU1NyAxLjg4ODU5MSwyLjY5NTExMzEgMi43MjE5NjEsNC4xMTgwNTkgdiAwIGMgMi42MTMwODMsNC4yNzIxMzYzIDMuOTc0MDk5LDcuNzg3ODk0MyAzLjk3NDA5OSwxMC4yMzkxMTkzIDAuMDA3MiwyLjg3MDMxOSAtMS4wOTQ3MDgsNS42MjU4MjkgLTMuMDYyOTUsNy42NTkzOTUgQyA0NS45Njg3NzQsMjYuODUxNTQgNDMuMjk1NzAyLDI3Ljk5NjI5MiA0MC41MDY3NywyOCBaIG0gMCwtMjUuMjEyNjA2MyBjIC0wLjIwNDE0NywwIC0wLjU0NDM5MiwwLjE5NjA5ODEgLTEuNjc0MDA2LDEuNjk0ODQ3NCAtMC45Mjc2NzcsMS4yNTIxNzU4IC0xLjc4NjQ0MSwyLjU1Njg3MjYgLTIuNTcyMjUzLDMuOTA3OTU0IC0yLjI3MjgzOCwzLjc5NTg5NzkgLTMuNTM4NTUsNi45MTk0NTk5IC0zLjUzODU1LDguNzk2Mzk3OSAtMC4xMTk1MTEsMi45Mzk3ODggMS4zMzYyNzUsNS43MTA0NjQgMy43OTIwMSw3LjIxNzAxNyAyLjQ1NTczNiwxLjUwNjU1MyA1LjUxNjI1MiwxLjUwNjU1MyA3Ljk3MTk4NywwIDIuNDU1NzM2LC0xLjUwNjU1MyAzLjkxMTUyMiwtNC4yNzcyMjkgMy43OTIwMTEsLTcuMjE3MDE3IDAsLTEuODc2OTM4IC0xLjI1MjEwMywtNS4wMDA1IC0zLjUyNDk0LC04Ljc5NjM5NzkgQyA0My45NTcyOTIsNy4wNTE0MzMxIDQzLjA5NDE2Miw1Ljc1NjM1NTkgNDIuMTY3MTY2LDQuNTEwMjU1MSA0MS4wNTExNjIsMi45ODM0OTE4IDQwLjY5NzMwNywyLjc4NzM5MzcgNDAuNTA2NzcsMi43ODczOTM3IFoiCiAgICAgICAgIGlkPSJwYXRoMyIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==", "Snow" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgZGF0YS12LTI4MGNhOWZhPSIiCiAgIHdpZHRoPSIyNCIKICAgaGVpZ2h0PSIyNCIKICAgdmlld0JveD0iMCAwIDY0IDY0IgogICB2ZXJzaW9uPSIxLjEiCiAgIGZpbGw9ImN1cnJlbnRDb2xvciIKICAgaWQ9InN2ZzE1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJTbm93LnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4xIChjNjhlMjJjMzg3LCAyMDIxLTA1LTIzKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTkiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXcxNyIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSI0NS4yNTQ4MzQiCiAgICAgaW5rc2NhcGU6Y3g9IjE2LjAwOTMzOSIKICAgICBpbmtzY2FwZTpjeT0iMTYuMzUxODQ0IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzc2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIzMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzE1IiAvPgogIDxjaXJjbGUKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjc3NjtzdHJva2UtbGluZWpvaW46YmV2ZWw7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZSIKICAgICBpZD0icGF0aDE2MjAiCiAgICAgY3g9IjMyLjA1NDIwMyIKICAgICBjeT0iMzEuOTkzNzQ4IgogICAgIHJ4PSIzMS40ODc1NDEiCiAgICAgcnk9IjMxLjUwMDg0NyIgLz4KICA8ZWxsaXBzZQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNzc2O3N0cm9rZS1saW5lam9pbjpiZXZlbDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZSIKICAgICBpZD0icGF0aDg1NCIKICAgICBjeD0iMzEuOTcwMDIyIgogICAgIGN5PSIzMi4wNjIwNTQiCiAgICAgcng9IjMxLjU4MzM5MSIKICAgICByeT0iMzEuNTM1MTAxIiAvPgogIDxnCiAgICAgaWQ9Imc4NDAiCiAgICAgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1vcGFjaXR5OjE7ZmlsbDojMTEwMDAwO2ZpbGwtb3BhY2l0eToxIj4KICAgIDxwYXRoCiAgICAgICBkPSJNIDMyLjUsNjEgQyAzMS42NzE1NzMsNjEgMzEsNjAuMjAxOTgzIDMxLDU5LjIxNzU3OCBWIDQuNzgyNDIxNiBDIDMxLDMuNzk4MDE3MyAzMS42NzE1NzMsMyAzMi41LDMgMzMuMzI4NDI3LDMgMzQsMy43OTgwMTczIDM0LDQuNzgyNDIxNiBWIDU5LjIxNzU3OCBDIDM0LDYwLjIwMTk4MyAzMy4zMjg0MjcsNjEgMzIuNSw2MSBaIgogICAgICAgaWQ9IlBhdGgiCiAgICAgICBzdHlsZT0iZmlsbDojMTEwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSA1OS4yMTc1NzgsMzQgSCA0Ljc4MjQyMTYgQyAzLjc5ODAxNzMsMzQgMywzMy4zMjg0MjcgMywzMi41IDMsMzEuNjcxNTczIDMuNzk4MDE3MywzMSA0Ljc4MjQyMTYsMzEgSCA1OS4yMTc1NzggQyA2MC4yMDE5ODMsMzEgNjEsMzEuNjcxNTczIDYxLDMyLjUgNjEsMzMuMzI4NDI3IDYwLjIwMTk4MywzNCA1OS4yMTc1NzgsMzQgWiIKICAgICAgIGlkPSJwYXRoMyIKICAgICAgIHN0eWxlPSJmaWxsOiMxMTAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuNTMzMzM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJNIDMyLjU5NzU4NCwyNS4wMTA2MzMgMjIuMDQ1OTUxLDE0LjkzMTI5NCBjIC0wLjMzMjkyNiwtMC4zMTgwNzggLTAuNTIwMTkyLC0wLjc1MTA1OSAtMC41MjAxOTIsLTEuMjAyNzQ0IDAsLTAuNDUxNjg2IDAuMTg3MjY2LC0wLjg4NDY2NyAwLjUyMDE5MiwtMS4yMDI3NDUgMC42ODU5MjMsLTAuNjU2ODA2IDEuNzkzNzEyLC0wLjY1NjgwNiAyLjQ3OTYzNCwwIGwgNy45ODQwNjksNy42OTA3OSA4LjAwMTY1NCwtNy43MDc3MyBjIDAuNDQ2MDg1LC0wLjQyOTY5OSAxLjA5NjI2OSwtMC41OTc1MTYgMS43MDU2MzMsLTAuNDQwMjM1IDAuNjA5MzY0LDAuMTU3MjgxIDEuMDg1MzMxLDAuNjE1NzY0IDEuMjQ4NjEsMS4yMDI3NDQgMC4xNjMyNzgsMC41ODY5ODEgLTAuMDEwOTQsMS4yMTMyODEgLTAuNDU3MDIzLDEuNjQyOTggeiIKICAgICAgIGlkPSJwYXRoNSIKICAgICAgIHN0eWxlPSJmaWxsOiMxMTAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuNTMzMzM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDIzLjI3ODIzNCw1MS45Njk1NDIgYyAtMC43MDY5MjMsLTAuMDAyOSAtMS4zNDI0NTcsLTAuNDE2MjA4IC0xLjYxMDI3MiwtMS4wNDczMTQgLTAuMjY3ODE1LC0wLjYzMTEwNiAtMC4xMTUxNzQsLTEuMzU1Njk0IDAuMzg2NzUxLC0xLjgzNTkwOSBsIDEwLjQ4NzMxOSwtMTAuMTE2NTcgMTAuNDg3MzE4LDEwLjExNjU3IGMgMC42Nzc2OTcsMC42NTc2NCAwLjY3NzY5NywxLjcxOTc1NCAwLDIuMzc3Mzk0IC0wLjMyODE5NCwwLjMxOTE5OSAtMC43NzQ5NDcsMC40OTg3NDQgLTEuMjQwOTk5LDAuNDk4NzQ0IC0wLjQ2NjA1MiwwIC0wLjkxMjgwNSwtMC4xNzk1NDUgLTEuMjQwOTk5LC0wLjQ5ODc0NCBsIC04LjA1Nzc1NywtNy42NTQ4NzEgLTcuOTUyODgzLDcuNjcxNzMyIGMgLTAuMzM0MTMyLDAuMzE5Nzk4IC0wLjc4Nzg0NywwLjQ5NjA4NSAtMS4yNTg0NzgsMC40ODg5NjggeiIKICAgICAgIGlkPSJwYXRoNyIKICAgICAgIHN0eWxlPSJmaWxsOiMxMTAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuNTMzMzM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDUwLjMzOTA2MSw0My42NjIzNTIgYyAtMC40NTA3NTgsMC4wMDI3IC0wLjgxNjE3NCwtMC4xMjc4MzYgLTEuMTM2MjEsLTAuNDU2NDc1IEwgMzkuMDI3ODM3LDMyLjY3MTg0MSA0OS4xMTgwNTksMjIuMjI1NTg5IGMgMC42NjE0MzksLTAuNjgwNzE2IDEuNzI5Njg5LC0wLjY4MDcxNiAyLjM5MTEyOCwwIDAuNjU3NTE2LDAuNjg0Nzc4IDAuNjU3NTE2LDEuNzkwNzIgMCwyLjQ3NTQ5OCBsIC03LjY5OTA5Myw3Ljk3MDc1NCA3LjcxNjA1MSw3Ljk4ODMxMSBjIDAuNDg2OTc5LDAuNTAwMDMyIDAuNjM1MDc1LDEuMjU0NTE5IDAuMzc1MjM0LDEuOTExNjY4IC0wLjI1OTgzOSwwLjY1NzE0OSAtMC44NzY0NDgsMS4wODc1NTUgLTEuNTYyMzE4LDEuMDkwNTMyIHoiCiAgICAgICBpZD0icGF0aDkiCiAgICAgICBzdHlsZT0iZmlsbDojMTEwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2Njc2NjIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTQuNzI4NTg0LDQzLjM3NzgxMiBjIC0wLjY4Mjc1NywtMC4wMDMgLTEuMjk2NTY3LC0wLjQzNDMwNSAtMS41NTUyMjcsLTEuMDkyODUyIC0wLjI1ODY2MSwtMC42NTg1NDcgLTAuMTExMjM3LC0xLjQxNDY0IDAuMzczNTMxLC0xLjkxNTczNSBsIDcuNjY0MTQ2LC03Ljk4NzcxMyAtNy42ODEwMjgsLTguMDA1MzA3IGMgLTAuNjU0NTMxLC0wLjY4NjIzNSAtMC42NTQ1MzEsLTEuNzk0NTMgMCwtMi40ODA3NjUgMC42NTg0MzcsLTAuNjgyMTY0IDEuNzIxODM4LC0wLjY4MjE2NCAyLjM4MDI3NSwwIEwgMjYuMDM5MTA4LDMyLjQ1MTg4OCAxNS45MTAyODEsNDMuMDA4MzM3IGMgLTAuMzM1MDY1LDAuMjc0MTMyIC0wLjc1NzE3OSwwLjQwNjExMiAtMS4xODE2OTcsMC4zNjk0NzUgeiIKICAgICAgIGlkPSJwYXRoMTEiCiAgICAgICBzdHlsZT0iZmlsbDojMTEwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8cmVjdAogICAgICAgc3R5bGU9ImZpbGw6IzExMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS44MTgyNjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InJlY3QxMDk4IgogICAgICAgd2lkdGg9IjEuNDU5NzM4NSIKICAgICAgIGhlaWdodD0iOC42NzIwNzE1IgogICAgICAgeD0iMzEuNzcyOTIzIgogICAgICAgeT0iMTcuOTcxNDQ1IiAvPgogICAgPHJlY3QKICAgICAgIHN0eWxlPSJmaWxsOiMxMTAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuODE4MjY7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGlkPSJyZWN0MTA5OC0zIgogICAgICAgd2lkdGg9IjEuNDU5NzM4NSIKICAgICAgIGhlaWdodD0iOC42NzIwNzE1IgogICAgICAgeD0iMzEuNzc4OTE3IgogICAgICAgeT0iMzcuODI1NTM1IiAvPgogICAgPHJlY3QKICAgICAgIHN0eWxlPSJmaWxsOiMxMTAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuODE4MjY7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGlkPSJyZWN0MTA5OC02IgogICAgICAgd2lkdGg9IjEuNDU5NzM4NSIKICAgICAgIGhlaWdodD0iOC42NzIwNzE1IgogICAgICAgeD0iMzEuNzY5MjU1IgogICAgICAgeT0iLTI3LjYxNzkzMSIKICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDkwKSIgLz4KICAgIDxyZWN0CiAgICAgICBzdHlsZT0iZmlsbDojMTEwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjgxODI2O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBpZD0icmVjdDEwOTgtNyIKICAgICAgIHdpZHRoPSIxLjQ1OTczODUiCiAgICAgICBoZWlnaHQ9IjguNjcyMDcxNSIKICAgICAgIHg9IjMxLjc4MDg2NSIKICAgICAgIHk9Ii00Ni42NzQ0MTIiCiAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSg5MCkiIC8+CiAgPC9nPgo8L3N2Zz4K", "Thunderstorm" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgZGF0YS12LTI4MGNhOWZhPSIiCiAgIHdpZHRoPSIyNCIKICAgaGVpZ2h0PSIyNCIKICAgdmlld0JveD0iMCAwIDY0IDY0IgogICB2ZXJzaW9uPSIxLjEiCiAgIGZpbGw9ImN1cnJlbnRDb2xvciIKICAgaWQ9InN2ZzgiCiAgIHNvZGlwb2RpOmRvY25hbWU9IlRodW5kZXJzdG9ybS5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMSAoYzY4ZTIyYzM4NywgMjAyMS0wNS0yMykiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczEyIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3MTAiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6em9vbT0iOTAuNTA5NjY4IgogICAgIGlua3NjYXBlOmN4PSI3LjE5ODEyNjEiCiAgICAgaW5rc2NhcGU6Y3k9IjEyLjQ2Mjc1NyIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM3NiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMzIiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc4IiAvPgogIDxlbGxpcHNlCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC43NzY7c3Ryb2tlLWxpbmVqb2luOmJldmVsO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgIGlkPSJwYXRoMTMzMiIKICAgICBjeD0iMzIuMDgyMzkiCiAgICAgY3k9IjMyLjA0NzY5OSIKICAgICByeD0iMzEuNDc1ODA1IgogICAgIHJ5PSIzMS41ODE0NCIgLz4KICA8ZwogICAgIHN0cm9rZT0ibm9uZSIKICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgZmlsbD0iY3VycmVudENvbG9yIgogICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICBpZD0iZzYiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS13aWR0aDoxLjUzMzMzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIj4KICAgIDxnCiAgICAgICBpZD0iMyIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0LjAwMDAwMCwgMy4wMDAwMDApIgogICAgICAgZmlsbD0iY3VycmVudENvbG9yIgogICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS13aWR0aDoxLjUzMzMzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIj4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTTE0LjQ0Mjk1MzksMzYuOTk3MTQ5IEwxNC4zMDIxMTE4LDM2Ljk5NzE0OSBDMTQuMTY2MTcwNSwzNi45ODU5NTI1IDE0LjAzMjk2NjcsMzYuOTUyNjI2MyAxMy45MDc3NTM3LDM2Ljg5ODQ4NDcgTDMuNzgxMjAxNjMsMzYuODk4NDg0NyBDMi45Mzk5MTU0NSwzNi45MDE3OSAyLjEyMzU0ODQxLDM2LjYxMjg1NTcgMS40NzEzOTAwMywzNi4wODA5Nzk5IEMtMC4xMzMzMzQ3NjIsMzQuNzAwNzM0MSAtMC40NzA0MTYxMjIsMzIuMzQ1Mzk3MiAwLjY4MjY3Mzg3OCwzMC41Njk4NzA0IEwxOS4yMTc1MDM1LDEuNzQ1NzgxMTkgQzE5Ljk1MDQ2MTYsMC41Mjg3NDkzODUgMjEuMzI4OTIzMywtMC4xNDQ0NTA1ODEgMjIuNzM4NTU3OCwwLjAyNjIwMjI2NzYgQzI0LjgzMDI1MDcsMC40MTk2NTExNjkgMjYuMjQ3Nzc1NSwyLjM4MzM5MTMxIDI1Ljk2Mzg0MzUsNC40OTQyODg0NyBMMjQuMDA2MTM3MywyMi41NzgwNTY5IEMyMy45NjcyMzY2LDIyLjk1MjgxNjQgMjMuNzgwMDI1OSwyMy4yOTYzODkxIDIzLjQ4NjI5NDcsMjMuNTMyMDgyMSBDMjMuMTkyNTYzNSwyMy43Njc3NzUxIDIyLjgxNjc2NjMsMjMuODc1OTY1OSAyMi40NDI3ODkyLDIzLjgzMjUwMzkgQzIxLjY3NDI5NjUsMjMuNzQ0MDEzMiAyMS4xMjA5NTE1LDIzLjA1MTgwNjggMjEuMjAzMzc4MSwyMi4yODIwNjM4IEwyMy4xNjEwODQzLDQuMjU0Njc1MDIgQzIzLjI4NjY3MjIsMy42NDk1MTE5MyAyMi45NDI1ODk5LDMuMDQ1NDAwNDcgMjIuMzU4MjgzOSwyLjg0NTE4NDEgQzIyLjA0MTIwNDIsMi44MjkzMjI4OCAyMS43NDE5OTM5LDIuOTkyNjUyMzYgMjEuNTgzNjUyLDMuMjY4MDMxMzggTDMuMTA1MTU5MjEsMzIuMDkyMTIwNiBDMi43NTQ1Mzk2NywzMi42NTg4NTI4IDIuODQ4NTU0NjIsMzMuMzkzOTAyMiAzLjMzMDUwNjY4LDMzLjg1Mzk4NDMgQzMuNDUyMDU0NTgsMzMuOTcwMDk0NSAzLjYxMzE3NjU2LDM0LjAzNTYgMy43ODEyMDE2MywzNC4wMzcyMTgxIEwxNS4wNDg1NzUzLDM0LjAzNzIxODEgTDE1LjkzNTg4MDksMzQuOTI1MTk3NCBMMTUuOTM1ODgwOSwzNS43MDA0MTc0IEMxNS44NzU4NDMxLDM2LjQ2ODI2NjQgMTUuMjExMDM0NywzNy4wNDU3MDc5IDE0LjQ0Mjk1MzksMzYuOTk3MTQ5IFoiCiAgICAgICAgIGlkPSJQYXRoIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjEuNTMzMzMzMzM7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTQuNzU0MDE0LDU3Ljk4OTU1NSBjIC0wLjE2NDI2OSwwLjAxMzkzIC0wLjMyOTQyMywwLjAxMzkzIC0wLjQ5MzY5MiwwIC0yLjExMjAxNywtMC4zOTM2OTMgLTMuNTMzMzgsLTIuMzg3MTM3IC0zLjIxNjA1NSwtNC41MTA0NzUgbCAxLjk4ODg3NiwtMTguMDEzNzA4IGMgMC4wODU2OSwtMC43Nzg0NTggMC43ODY2ODUsLTEuMzQwMTA2IDEuNTY1NzExLC0xLjI1NDQ3NSAwLjc3OTAyNSwwLjA4NTYzIDEuNzg5MTM4LC0wLjk2MTExNCAxLjI1NTM4OSwxLjU2NDU3MSBsIC0yLjAwMjk4MSwxOC4wMTM3MDcgYyAtMC4xMzk1NTYsMC42MDcyNzggMC4yMDk5OTUsMS4yMjAwNzkgMC44MDQwMTQsMS40MDk1MjMgMC4zMjA2OTMsMC4wMzAzIDAuNjI3Njc1LC0wLjEzNzAxOSAwLjc3NTgwMiwtMC40MjI4NTcgTCAzMy44ODEwNzUsMjUuOTIyOSBjIDAuMzgzMDA0LC0wLjU3ODk2MiAwLjI4NzI1NiwtMS4zNTAzNjggLTAuMjI1Njg4LC0xLjgxODI4NSAtMC4xMzA4NDEsLTAuMTA4NjA5IC0wLjI5NTM4OCwtMC4xNjg0MDEgLTAuNDY1NDgyLC0wLjE2OTE0MyBIIDIxLjI5ODk2NyBMIDIxLjE4NjEyMywyMi42MTA1MiBjIC0wLjM4MjE1LDMuNDM0OTE2IDAuMDYwODEsLTAuNzYwNTI3IDAuMzAwMDgxLC0xLjA1ODA2NiAwLjIzOTI2OCwtMC4yOTc1MzkgMC41ODkwNjUsLTAuNDg1Mzg4IDAuOTY5NDE0LC0wLjUyMDYgMC4xNzYxNDIsLTAuMDQyNDcgMC4zNTk4NjcsLTAuMDQyNDcgMC41MzYwMDksMCBoIDEwLjI2ODgwNiBjIDAuODI1MjQ0LC0wLjAwMiAxLjYyNDYzOCwwLjI4NzUzMiAyLjI1Njg4LDAuODE3NTI0IDEuNjExODE3LDEuMzc2NDAyIDEuOTU1NTA5LDMuNzMyMjkxIDAuODA0MDE0LDUuNTExMjM2IEwgMTcuODAwODAzLDU2LjI1NTg0MSBjIC0wLjY1MTcwNSwxLjA2MDkxIC0xLjgwMTE4MSwxLjcxNDk5NiAtMy4wNDY3ODksMS43MzM3MTQgeiIKICAgICAgICAgaWQ9InBhdGgzIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY3NjY2NjY2NjY2NzY2NjY2NjYyIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=", "Wind" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgZGF0YS12LTI4MGNhOWZhPSIiCiAgIHdpZHRoPSIyNCIKICAgaGVpZ2h0PSIyNCIKICAgdmlld0JveD0iMCAwIDY0IDY0IgogICB2ZXJzaW9uPSIxLjEiCiAgIGZpbGw9ImN1cnJlbnRDb2xvciIKICAgaWQ9InN2ZzkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IldpbmQuc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEgKGM2OGUyMmMzODcsIDIwMjEtMDUtMjMpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzExIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjMyIgogICAgIGlua3NjYXBlOmN4PSI3LjcwMzEyNSIKICAgICBpbmtzY2FwZTpjeT0iMTEuNjg3NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM3NiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMzIiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc5IiAvPgogIDxlbGxpcHNlCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC43NzY7c3Ryb2tlLWxpbmVqb2luOmJldmVsO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgIGlkPSJwYXRoMTAyNyIKICAgICBjeD0iMzIuMDQwMzE4IgogICAgIGN5PSIzMi4wNDI3MzYiCiAgICAgcng9IjMxLjU0ODU4NCIKICAgICByeT0iMzEuNTUwMDM3IiAvPgogIDxnCiAgICAgaWQ9IkFydGJvYXJkIgogICAgIHN0cm9rZT0ibm9uZSIKICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgZmlsbD0iY3VycmVudENvbG9yIgogICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC44NjQwNDc1MiwwLDAsMC44NjQwNDc1Miw1LjEyNzY0OTUsNi43NzMzMDI5KSI+CiAgICA8ZwogICAgICAgaWQ9IjEiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LDMpIgogICAgICAgZmlsbD0iY3VycmVudENvbG9yIgogICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIj4KICAgICAgPHBhdGgKICAgICAgICAgZD0iTSAzOC43MjQ3MjIsMzAuOTkxNzY4IEggMS4zNzYxNDUxIEMgMC42MTYxMjExMywzMC45OTE3NjggMCwzMC4zODY0MjkgMCwyOS42Mzk3MDcgMCwyOC44OTI5ODQgMC42MTYxMjExMywyOC4yODc2NDYgMS4zNzYxNDUxLDI4LjI4NzY0NiBIIDM4Ljk3MjQyOCBjIDUuMTk2OTM5LC0wLjA5NjY0IDkuMzM5NzM3LC00LjI5NzEyNCA5LjI3NDQ3MiwtOS40MDM2MjIgLTAuMDY1MjYsLTUuMTA2NDk3IC00LjMxNDEwOCwtOS4yMDM0NTQ1IC05LjUxMTg3OSwtOS4xNzE4NSAtNS4xOTc3NywwLjAzMTYwNSAtOS4zOTQ2NzgsNC4xNzk5MTYgLTkuMzk1NjA4LDkuMjg2ODE2IDAsMC43NDY3MjIgLTAuNjE2MTIyLDEuMzUyMDYgLTEuMzc2MTQ1LDEuMzUyMDYgLTAuNzYwMDI0LDAgLTEuMzc2MTQ2LC0wLjYwNTMzOCAtMS4zNzYxNDYsLTEuMzUyMDYgLTAuMDAzNSwtNi41Njk3MjUgNS4zNzM3MDMsLTExLjkxOTI5NzcgMTIuMDU5OTc1LC0xMS45OTgxMDk0IDYuNjg2MjcyLC0wLjA3ODgxMiAxMi4xOTI1MDYsNS4xNDI0Nzc0IDEyLjM0OTQ3NCwxMS43MTAzOTI0IDAuMTU2OTY3LDYuNTY3OTE1IC01LjA5Mzc2OSwxMi4wMzczNjYgLTExLjc3NjQzNywxMi4yNjY5NzQgLTAuMTY0MDQyLDAuMDIzNCAtMC4zMzAzMDEsMC4wMjc5NCAtMC40OTU0MTIsMC4wMTM1MiB6IgogICAgICAgICBpZD0iUGF0aCIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDEwLjg1ODYwNywxOSBIIDEuNDM0NDI2MiBDIDAuNjQyMjE0NSwxOSAwLDE4LjM4MjY4NiAwLDE3LjYyMTE5IDAsMTYuODU5Njk0IDAuNjQyMjE0NSwxNi4yNDIzOCAxLjQzNDQyNjIsMTYuMjQyMzggaCA5LjMwOTQyNTggMC4zODcyOTYgYyAzLjg2MjI1MSwtMy4xZS01IDYuOTk0NjgsLTMuMDA2OTM5IDYuOTk5OTM0LC02LjcxOTQzNzUgMC4wMDUzLC0zLjcxMjQ5ODggLTMuMTE4NjUsLTYuNzI3NTg4NCAtNi45ODA4ODcsLTYuNzM3NzIxNSAtMy44NjIyMzczLC0wLjAxMDEzMyAtNy4wMDMyMTg2LDIuOTg4NTE5OCAtNy4wMTkwNDc1LDYuNzAwOTkwOSAwLDAuNzYxNDk2MSAtMC42NDIyMTQ1LDEuMzc4ODEwMSAtMS40MzQ0MjYyLDEuMzc4ODEwMSAtMC43OTIyMTE3LDAgLTEuNDM0NDI2MiwtMC42MTczMTQgLTEuNDM0NDI2MiwtMS4zNzg4MTAxIEMgMS4yNjIyOTUxLDQuMjQ3MTIxNyA1LjY4MDczMDgsMCAxMS4xMzExNDgsMCAxNi41ODE1NjQsMCAyMSw0LjI0NzEyMTcgMjEsOS40ODYyMTE5IDIxLDE0LjcyNTMwMiAxNi41ODE1NjQsMTguOTcyNDI0IDExLjEzMTE0OCwxOC45NzI0MjQgWiIKICAgICAgICAgaWQ9InBhdGgzIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjUzMzMzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMjYuNzY1MTAxLDU4IGMgLTUuMDk3MjI5LC0wLjAwNzYgLTkuMjI3NTA3LC00LjI1NjQ0OCAtOS4yMzQ5LC05LjUgMCwtMC43NjI2MDMgMC42MDA5NiwtMS4zODA4MTQgMS4zNDIyODIsLTEuMzgwODE0IDAuNzQxMzIyLDAgMS4zNDIyODIsMC42MTgyMTEgMS4zNDIyODIsMS4zODA4MTQgMCwzLjcyMTUgMi45MzI2ODUsNi43MzgzNzIgNi41NTAzMzYsNi43MzgzNzIgMy42MTc2NSwwIDYuNTUwMzM1LC0zLjAxNjg3MiA2LjU1MDMzNSwtNi43MzgzNzIgMCwtMy43MjE1IC0yLjkzMjY4NSwtNi43MzgzNzIgLTYuNTUwMzM1LC02LjczODM3MiBIIDEuMzQyMjgxOSBDIDAuNjAwOTYwMDcsNDEuNzYxNjI4IDAsNDEuMTQzNDE2IDAsNDAuMzgwODE0IDAsMzkuNjE4MjExIDAuNjAwOTYwMDcsMzkgMS4zNDIyODE5LDM5IEggMjYuNzY1MTAxIEMgMzEuODY1Mzk1LDM5IDM2LDQzLjI1MzI5NSAzNiw0OC41IDM2LDUzLjc0NjcwNSAzMS44NjUzOTUsNTggMjYuNzY1MTAxLDU4IFoiCiAgICAgICAgIGlkPSJwYXRoNSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS41MzMzMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==", }; /** *********************************************************************************************** * **static** * * Meteoalarm coordinates of regions' centers ** **********************************************************************************************/ MeteoalarmMap.regionsCenterCoords = { "GR001" : { x : 220, y : 240 }, "GR002" : { x : 170, y : 330 }, "GR003" : { x : 265, y : 345 }, "GR004" : { x : 515, y : 75 }, "GR005" : { x : 375, y : 70 }, "GR006" : { x : 175, y : 155 }, "GR007" : { x : 290, y : 130 }, "GR008" : { x : 110, y : 240 }, "GR009" : { x : 165, y : 420 }, "GR010" : { x : 90, y : 390 }, "GR011" : { x : 360, y : 410 }, "GR012" : { x : 475, y : 515 }, "GR013" : { x : 710, y : 610 }, "GR014" : { x : 565, y : 290 }, "GR015" : { x : 245, y : 470 }, "GR016" : { x : 460, y : 720 }, }; /** *********************************************************************************************** * **static** * * Meteoalarm serialized Map ** **********************************************************************************************/ MeteoalarmMap.serializedSVGMap = { 'svgGreeceMap' : ' ' }; MeteoalarmMap.svgStyle = { 'minifiedCSS' : 'path.meteoalarm-overlay-region { fill:rgba(255, 255, 255, 0); fill-opacity:.0; stroke:none; } path.meteoalarm-overlay-region:hover { stroke:blue; stroke-opacity:1; stroke-width: 2px; fill-opacity:1; } path.meteoalarm-overlay-region-moderate-awareness:hover { fill:#ffdb23; stroke:blue; stroke-opacity:1; stroke-width: 2px; } path.meteoalarm-overlay-region-severe-awareness:hover { fill:#ff9500; stroke:blue; stroke-opacity:1; stroke-width: 2px; } path.meteoalarm-overlay-region-extreme-awareness:hover { fill:#ff0400; stroke:blue; stroke-opacity:1; stroke-width: 2px; } path.meteoalarm-land { fill:#ffffff; stroke:#000000; stroke-width:0.8 } path.meteoalarm-land-moderate-awareness { fill:#ffdb23; fill-opacity: .75; stroke:#000000; stroke-opacity:1; stroke-width: 1px; } path.meteoalarm-land-severe-awareness { fill: #ff9500; fill-opacity: .75; stroke:#000000; stroke-opacity:1; stroke-width: 1px; } path.meteoalarm-land-extreme-awareness { fill: #ff0400; fill-opacity: .75; stroke:#000000; stroke-opacity:1; stroke-width: 1px; }' } /// /// /// END METEOALARM CLASS /// /////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////