// Patch version: 2024-10-10T04-38-25-530Z
const e=W.rootScope,{t:n}=W.trans,o=W.store,t=W.utils,{$:r,tsDay:a}=W.utils,i=W.promo,{hitCounter:s}=W.promo,d=W.subscription,{hasAny:l}=W.subscription,{isLoggedIn:c}=W.user,m=W.broadcast,{map:u}=W.map,{Window:p}=W.Window,{BottomSlide:y}=W.BottomSlide;var g,b=n=>{var o=e=>{var[n,o,t]=e.split(".").map(Number);return 1e3*n+100*o+t};return o(n)<=o(e.version)},h=e=>{if(o.get("startupWeatherShown")){var n=r('[data-ref="exclusivePromo"]');if(!n)throw new Error("Element for patch not found!");n.classList.add("weather-box"),e instanceof HTMLElement?(n.innerHTML="",n.appendChild(e)):n.innerHTML=e,setTimeout((()=>n.classList.add("show")),300),o.once("startupWeatherShown",(e=>{e||(n.className="animation",n.innerHTML="")}))}},w={id:"obsoleteApp24",end:"2024-12-31T20:00:00.000Z",counter:1e4,delay:0,filter:()=>"mobile"===e.target&&!b("41.0.0"),run(){var e=["#d49500","#d40000","#d4009b","#8400d4","#2200d4","#0d869a","#177900","#ad7100"],o=e[Math.round(Math.random()*(e.length-1))],t='<div id="promo-obsolete-app" style="background: '.concat(o,'">').concat(n.OBSOLETE_APP,"</div>");h(t)}},v={id:"premiumDesktop5",end:"2024-12-31T00:00:00.000Z",counter:4,delay:48*t.tsHour,filter:()=>!e.isMobile&&(o.get("sessionCounter")>3||c())&&!l(),run(){var e='<section id="subs-desktop" class="weather-box bg-transparent clickable" data-do="rqstOpen,subscription">\n    <section class="sub-header fg-white size-xxl">\n        <img src="/img/logo-windy-premium.svg" alt="Windy Premium" />\n        <div class="size-m">'.concat(n.SUB2_HEADING,'</div>\n    </section>\n\n    <table class="size-s">\n        <thead class="size-m">\n            <td />\n            <td>').concat(n.SUB2_FREE,'</td>\n            <td>\n                <div data-icon="&#xE04E;" class="inlined">Premium</div>\n            </td>\n        </thead>\n        <tbody>\n            <tr>\n            <td>\n                <div data-icon="&#xe022;"></div>\n            </td>\n                <td>').concat(n.SUB2_1_1,"</td>\n                <td>").concat(n.SUB2_1_2,'</td>\n            </tr>\n            <tr>\n            <td>\n                <div data-icon="&#xe015;"></div>\n            </td>\n                <td>').concat(n.SUB2_2_1,"</td>\n                <td>").concat(n.SUB2_2_2,'</td>\n            </tr>\n            <tr>\n            <td>\n                <div data-icon="&#xe031;"></div>\n            </td>\n                <td>').concat(n.SUB2_3_1,"</td>\n                <td>").concat(n.SUB2_3_2,'</td>\n            </tr>\n        </tbody>\n    </table>\n    <div class="sub-price">less than<br />$1.8 a month</div>\n</section>');h(e),i.hitCounter(this.id)}},f=[{name:"Adelaide",country:"Australia",countryCode:"AU",geonamesId:"2078025",cityJsonUrl:"adelaide",lat:-34.9285,lon:138.6007},{name:"Antwerp",country:"Belgium",countryCode:"BE",geonamesId:"2803138",cityJsonUrl:"antwerp",lat:51.2194,lon:4.4025},{name:"Athens",country:"Greece",countryCode:"GR",geonamesId:"264371",cityJsonUrl:"athens",lat:37.9838,lon:23.7275},{name:"Auckland",country:"New Zealand",countryCode:"NZ",geonamesId:"2193733",cityJsonUrl:"auckland",lat:-36.8485,lon:174.7633},{name:"Barcelona",country:"Spain",countryCode:"ES",geonamesId:"3128760",cityJsonUrl:"barcelona",lat:41.3851,lon:2.1734},{name:"Basel",country:"Switzerland",countryCode:"CH",geonamesId:"2661604",cityJsonUrl:"basel",lat:47.5596,lon:7.5886},{name:"Berlin",country:"Germany",countryCode:"DE",geonamesId:"2950159",cityJsonUrl:"berlin",lat:52.52,lon:13.405},{name:"Bern",country:"Switzerland",countryCode:"CH",geonamesId:"2661552",cityJsonUrl:"bern",lat:46.948,lon:7.4474},{name:"Biel",country:"Switzerland",countryCode:"CH",geonamesId:"2661513",cityJsonUrl:"biel",lat:47.1368,lon:7.2468},{name:"Bilbao",country:"Spain",countryCode:"ES",geonamesId:"3128026",cityJsonUrl:"bilbao",lat:43.263,lon:-2.935},{name:"Bologna",country:"Italy",countryCode:"IT",geonamesId:"3181928",cityJsonUrl:"bologna",lat:44.4949,lon:11.3426},{name:"Bordeaux",country:"France",countryCode:"FR",geonamesId:"3031582",cityJsonUrl:"bordeaux",lat:44.8378,lon:-.5792},{name:"Bratislava",country:"Slovakia",countryCode:"SK",geonamesId:"3060972",cityJsonUrl:"bratislava",lat:48.1486,lon:17.1077},{name:"Bremen",country:"Germany",countryCode:"DE",geonamesId:"2944388",cityJsonUrl:"bremen",lat:53.0793,lon:8.8017},{name:"Brisbane",country:"Australia",countryCode:"AU",geonamesId:"2174003",cityJsonUrl:"brisbane",lat:-27.4698,lon:153.0251},{name:"Brussels",country:"Belgium",countryCode:"BE",geonamesId:"2800866",cityJsonUrl:"brussels",lat:50.8503,lon:4.3517},{name:"Bucharest",country:"Romania",countryCode:"RO",geonamesId:"683506",cityJsonUrl:"bucharest",lat:44.4323,lon:26.1063},{name:"Budapest",country:"Hungary",countryCode:"HU",geonamesId:"3054643",cityJsonUrl:"budapest",lat:47.4979,lon:19.0402},{name:"Cape Town",country:"South Africa",countryCode:"ZA",geonamesId:"3369157",cityJsonUrl:"capetown",lat:-33.9249,lon:18.4241},{name:"Chicago",country:"United States",countryCode:"US",geonamesId:"4887398",cityJsonUrl:"chicago",lat:41.8781,lon:-87.6298},{name:"Cologne",country:"Germany",countryCode:"DE",geonamesId:"2886242",cityJsonUrl:"cologne",lat:50.9375,lon:6.9603},{name:"Copenhagen",country:"Denmark",countryCode:"DK",geonamesId:"2618425",cityJsonUrl:"copenhagen",lat:55.6761,lon:12.5683},{name:"Dallas",country:"United States",countryCode:"US",geonamesId:"4684888",cityJsonUrl:"dallas",lat:32.7767,lon:-96.797},{name:"Darmstadt",country:"Germany",countryCode:"DE",geonamesId:"2938913",cityJsonUrl:"darmstadt",lat:49.8728,lon:8.6512},{name:"Denver",country:"United States",countryCode:"US",geonamesId:"5419384",cityJsonUrl:"denver",lat:39.7392,lon:-104.9903},{name:"Düsseldorf",country:"Germany",countryCode:"DE",geonamesId:"2934246",cityJsonUrl:"duesseldorf",lat:51.2277,lon:6.7735},{name:"Essen",country:"Germany",countryCode:"DE",geonamesId:"2928810",cityJsonUrl:"essen",lat:51.4566,lon:7.0123},{name:"Frankfurt",country:"Germany",countryCode:"DE",geonamesId:"2925533",cityJsonUrl:"frankfurt",lat:50.1109,lon:8.6821},{name:"Freiburg im Breisgau",country:"Germany",countryCode:"DE",geonamesId:"2925177",cityJsonUrl:"freiburgimbreisgau",lat:47.999,lon:7.8421},{name:"Gelsenkirchen",country:"Germany",countryCode:"DE",geonamesId:"2921466",cityJsonUrl:"gelsenkirchen",lat:51.5177,lon:7.0857},{name:"Geneva",country:"Switzerland",countryCode:"CH",geonamesId:"2660646",cityJsonUrl:"geneva",lat:46.2044,lon:6.1432},{name:"Genoa",country:"Italy",countryCode:"IT",geonamesId:"3176219",cityJsonUrl:"genoa",lat:44.4056,lon:8.9463},{name:"George Town",country:"Malaysia",countryCode:"MY",geonamesId:"1735106",cityJsonUrl:"georgetown",lat:6.8013,lon:-58.1551},{name:"Graz",country:"Austria",countryCode:"AT",geonamesId:"2778067",cityJsonUrl:"graz",lat:47.0707,lon:15.4395},{name:"Grenoble",country:"France",countryCode:"FR",geonamesId:"3014728",cityJsonUrl:"grenoble",lat:45.1885,lon:5.7245},{name:"Hamburg",country:"Germany",countryCode:"DE",geonamesId:"2911298",cityJsonUrl:"hamburg",lat:53.5511,lon:9.9937},{name:"Heidelberg",country:"Germany",countryCode:"DE",geonamesId:"2907911",cityJsonUrl:"heidelberg",lat:49.3988,lon:8.6724},{name:"Innsbruck",country:"Austria",countryCode:"AT",geonamesId:"2775220",cityJsonUrl:"innsbruck",lat:47.2692,lon:11.4041},{name:"Jakarta",country:"Indonesia",countryCode:"ID",geonamesId:"1642911",cityJsonUrl:"jakarta",lat:-6.2088,lon:106.8456},{name:"Kitchener",country:"Canada",countryCode:"CA",geonamesId:"5992996",cityJsonUrl:"kitchener",lat:43.4516,lon:-80.4925},{name:"Krefeld",country:"Germany",countryCode:"DE",geonamesId:"2884509",cityJsonUrl:"krefeld",lat:51.3388,lon:6.5853},{name:"Lausanne",country:"Switzerland",countryCode:"CH",geonamesId:"2659994",cityJsonUrl:"lausanne",lat:46.5197,lon:6.6323},{name:"Leipzig",country:"Germany",countryCode:"DE",geonamesId:"2879139",cityJsonUrl:"leipzig",lat:51.3397,lon:12.3731},{name:"Linz",country:"Austria",countryCode:"AT",geonamesId:"2772400",cityJsonUrl:"linz",lat:48.3069,lon:14.2858},{name:"Lisbon",country:"Portugal",countryCode:"PT",geonamesId:"2267057",cityJsonUrl:"lisbon",lat:38.7223,lon:-9.1393},{name:"Ljubljana",country:"Slovenia",countryCode:"SI",geonamesId:"3196359",cityJsonUrl:"ljubljana",lat:46.0569,lon:14.5058},{name:"London",country:"United Kingdom",countryCode:"GB",geonamesId:"2643743",cityJsonUrl:"london",lat:51.5074,lon:-.1278},{name:"Los Angeles",country:"United States",countryCode:"US",geonamesId:"5368361",cityJsonUrl:"losangeles",lat:34.0522,lon:-118.2437},{name:"Lucca",country:"Italy",countryCode:"IT",geonamesId:"3174530",cityJsonUrl:"lucca",lat:43.8436,lon:10.5062},{name:"Lucerne",country:"Switzerland",countryCode:"CH",geonamesId:"2659811",cityJsonUrl:"lucerne",lat:47.0502,lon:8.3093},{name:"Lyon",country:"France",countryCode:"FR",geonamesId:"2996944",cityJsonUrl:"lyon",lat:45.764,lon:4.8357},{name:"Mainz",country:"Germany",countryCode:"DE",geonamesId:"2874225",cityJsonUrl:"mainz",lat:49.9929,lon:8.2473},{name:"Marseille",country:"France",countryCode:"FR",geonamesId:"2995469",cityJsonUrl:"marseille",lat:43.2965,lon:5.3698},{name:"Mexico City",country:"Mexico",countryCode:"MX",geonamesId:"3530597",cityJsonUrl:"mexicocity",lat:19.4326,lon:-99.1332},{name:"Milan",country:"Italy",countryCode:"IT",geonamesId:"3173435",cityJsonUrl:"milan",lat:45.4642,lon:9.19},{name:"Mumbai",country:"India",countryCode:"IN",geonamesId:"1275339",cityJsonUrl:"mumbai",lat:19.076,lon:72.8777},{name:"Munich",country:"Germany",countryCode:"DE",geonamesId:"2867714",cityJsonUrl:"munich",lat:48.1351,lon:11.582},{name:"Münster",country:"Germany",countryCode:"DE",geonamesId:"2867543",cityJsonUrl:"munster",lat:51.9607,lon:7.6261},{name:"Nancy",country:"France",countryCode:"FR",geonamesId:"2990999",cityJsonUrl:"nancy",lat:48.6921,lon:6.1844},{name:"Nantes",country:"France",countryCode:"FR",geonamesId:"2990969",cityJsonUrl:"nantes",lat:47.2184,lon:-1.5536},{name:"New York",country:"United States",countryCode:"US",geonamesId:"5128581",cityJsonUrl:"newyork",lat:40.7128,lon:-74.006},{name:"Nuremberg",country:"Germany",countryCode:"DE",geonamesId:"2861650",cityJsonUrl:"nuremberg",lat:49.4521,lon:11.0767},{name:"Paris",country:"France",countryCode:"FR",geonamesId:"2988507",cityJsonUrl:"paris",lat:48.8566,lon:2.3522},{name:"Pärnu",country:"Estonia",countryCode:"EE",geonamesId:"589580",cityJsonUrl:"parnu",lat:58.3859,lon:24.4971},{name:"Perth",country:"Australia",countryCode:"AU",geonamesId:"2063523",cityJsonUrl:"perth",lat:-31.9505,lon:115.8605},{name:"Phoenix",country:"United States",countryCode:"US",geonamesId:"5308655",cityJsonUrl:"phoenix",lat:33.4484,lon:-112.074},{name:"Portland",country:"United States",countryCode:"US",geonamesId:"5746545",cityJsonUrl:"portland",lat:45.5152,lon:-122.6784},{name:"Prague",country:"Czech Republic",countryCode:"CZ",geonamesId:"3067696",cityJsonUrl:"prague",lat:50.0755,lon:14.4378},{name:"Rennes",country:"France",countryCode:"FR",geonamesId:"2983990",cityJsonUrl:"rennes",lat:48.1173,lon:-1.6778},{name:"Rome",country:"Italy",countryCode:"IT",geonamesId:"3169070",cityJsonUrl:"rome",lat:41.9028,lon:12.4964},{name:"Sapporo",country:"Japan",countryCode:"JP",geonamesId:"2128295",cityJsonUrl:"sapporo",lat:43.0618,lon:141.3545},{name:"Seattle",country:"United States",countryCode:"US",geonamesId:"5809844",cityJsonUrl:"seattle",lat:47.6062,lon:-122.3321},{name:"Seville",country:"Spain",countryCode:"ES",geonamesId:"2510911",cityJsonUrl:"seville",lat:37.3891,lon:-5.9845},{name:"Singapore",country:"Singapore",countryCode:"SG",geonamesId:"1880252",cityJsonUrl:"singapore",lat:1.3521,lon:103.8198},{name:"St. Gallen",country:"Switzerland",countryCode:"CH",geonamesId:"2658822",cityJsonUrl:"stgallen",lat:47.4245,lon:9.3767},{name:"Stockholm",country:"Sweden",countryCode:"SE",geonamesId:"2673730",cityJsonUrl:"stockholm",lat:59.3293,lon:18.0686},{name:"Stuttgart",country:"Germany",countryCode:"DE",geonamesId:"2825297",cityJsonUrl:"stuttgart",lat:48.7758,lon:9.1829},{name:"Sydney",country:"Australia",countryCode:"AU",geonamesId:"2147714",cityJsonUrl:"sydney",lat:-33.8688,lon:151.2093},{name:"Tallinn",country:"Estonia",countryCode:"EE",geonamesId:"588409",cityJsonUrl:"tallinn",lat:59.437,lon:24.7536},{name:"The Hague",country:"Netherlands",countryCode:"NL",geonamesId:"2747373",cityJsonUrl:"thehague",lat:52.0705,lon:4.3007},{name:"Tokyo",country:"Japan",countryCode:"JP",geonamesId:"1850147",cityJsonUrl:"tokyo",lat:35.6895,lon:139.6917},{name:"Toronto",country:"Canada",countryCode:"CA",geonamesId:"6167865",cityJsonUrl:"toronto",lat:43.6532,lon:-79.3832},{name:"Toulouse",country:"France",countryCode:"FR",geonamesId:"2972315",cityJsonUrl:"toulouse",lat:43.6047,lon:1.4442},{name:"Trento",country:"Italy",countryCode:"IT",geonamesId:"3165243",cityJsonUrl:"trento",lat:46.0709,lon:11.1217},{name:"Trieste",country:"Italy",countryCode:"IT",geonamesId:"3165185",cityJsonUrl:"trieste",lat:45.6495,lon:13.7768},{name:"Trois-Rivières",country:"Canada",countryCode:"CA",geonamesId:"6169141",cityJsonUrl:"troisrivieres",lat:46.3451,lon:-72.5477},{name:"Turin",country:"Italy",countryCode:"IT",geonamesId:"3165524",cityJsonUrl:"turin",lat:45.0703,lon:7.6869},{name:"Ulm",country:"Germany",countryCode:"DE",geonamesId:"2820256",cityJsonUrl:"ulm",lat:48.4011,lon:9.9876},{name:"Vancouver",country:"Canada",countryCode:"CA",geonamesId:"6173331",cityJsonUrl:"vancouver",lat:49.2827,lon:-123.1207},{name:"Verona",country:"Italy",countryCode:"IT",geonamesId:"3164527",cityJsonUrl:"verona",lat:45.4384,lon:10.9916},{name:"Vienna",country:"Austria",countryCode:"AT",geonamesId:"2761369",cityJsonUrl:"vienna",lat:48.2082,lon:16.3738},{name:"Washington, D.C.",country:"United States",countryCode:"US",geonamesId:"4140963",cityJsonUrl:"washingtondc",lat:38.9072,lon:-77.0369},{name:"Zurich",country:"Switzerland",countryCode:"CH",geonamesId:"2657896",cityJsonUrl:"zurich",lat:47.3769,lon:8.5417}];function x(e,n,o){return n in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function k(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),o.push.apply(o,t)}return o}(Object(n)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})),e}var C={id:"heatmaps",end:"2024-07-27T20:00:00.000Z",counter:10,delay:a,filter:()=>{if(!["index","mobile"].includes(e.target)||!b("42.3.0"))return!1;var n=o.get("ipLocation");if(!n)return!1;var{lat:t,lon:r}=n,a=f.map((e=>k(function(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{},t=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(o).filter((function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable})))),t.forEach((function(n){x(e,n,o[n])}))}return e}({},e),{distance:u.distance(L.latLng(t,r),L.latLng(e.lat,e.lon))}))),i=a.filter((e=>e.distance<2e5)).sort(((e,n)=>e.distance-n.distance));return g=i[0],Boolean(g)},run(){if(g){var e=document.createElement("div"),{name:n,cityJsonUrl:o}=g;e.id="promo-heatmaps",e.className="size-xl fg-white bg-transparent-blur clickable",e.innerHTML="Detailed city heatmap for <strong>".concat(n,"</strong>"),e.onclick=()=>{m.emit("rqstOpen","heatmaps",{id:o})},s(this.id),h(e)}}};var U="us-ht-promo2-desktop-2024",I=["us","cu","bs","mx"],J=["us","cu","bs","mx"],S=()=>{new p({className:"plugin-mobile-bottom-slide dark-content",ident:"ushtpromomobile2-2024",html:'\n\n    <section class="plugin-content">\n\n        <div class="header">\n            <div class="header__icon"><span class="icon" data-icon=""></span></div>\n            <div class="header__heading">\n                Hurricane Tracker\n            </div>\n        </div>\n\n        <section class="wn-content">\n            <h2>Stay Safe in Hurricane Season</h2>\n            <p class="size-xl">Your safety is our mission. Get to know the Hurricane Tracker and stay safe.</p>\n\n            <nav class="rounded-box bg-gray-light size-l bold fg-gray">How to use it?</nav>\n\n            <p class="size-xl">In the pictures below you can see where you can find the Hurricane Tracker.</p>\n\n            <ul class="wn-row">\n                <li class="wn-row-item">\n                    <div class="image mobil1"></div>\n                    <img src="https://gallery.windy.com/albums/a/Mobile-1.png">\n                    <span class="text">Open the Hurricane Tracker</span>\n                </li>\n                <li class="wn-row-item">\n                    <div class="image mobil2"></div>\n                    <img src="https://gallery.windy.com/albums/a/Mobile-2.png">\n                    <span class="text">Select relevant storm from the left menu</span>\n                </li>\n                <li class="wn-row-item last-one">\n                    <div class="image mobil3"></div>\n                    <img src="https://gallery.windy.com/albums/a/Mobile-3.png"> \n                    <span class="text">Keep an eye on the forecast</span>\n                </li>\n            </ul>\n\n            <p class="size-xl">Usually, there is more than one forecast available for each storm and hurricane. New updates from NOAA, ECMWF, Met Office, JMA, or BoM come every few hours with updated trajectory and strength.</p>\n\n            <nav class="rounded-box bg-gray-light size-l bold fg-gray">Did you know?</nav>\n\n            <p class="size-xl when-premium-hide" style="padding-bottom: 100px;">The Hurricane Tracker is free for everyone. Thanks to Windy Premium users, we can provide tools like this. If you want to support Windy, become a Premium member.</p>\n\n            <p class="size-xl when-premium-show" >Hurricane tracker is free of charge. With your support through <span class="premium-color">Windy Premium</span>, we are able to provide features like this to people in the affected areas at no cost. Thank you for backing us!</p>\n\n            <div class="buttons fixed when-premium-hide">\n                <div data-do="rqstOpen,subscription" class="buttons__subscribe">Subscribe to support</div>\n                <div data-do="bcast,close-ht-promo" class="buttons__close">Not this time</div>\n            </div>\n        </section>\n    </section>\n    <div class="sliding-x"></div>\n\n        ',onopen(){if(!d.hasAny()){var e=r('[data-ref="sub"]');e&&(e.style.display="block")}m.on("rqstClose",(e=>{"us-ht-promo"===e&&this.close()})),m.on("rqstOpen",(e=>{"subscription"===e&&this.close()})),new y({el:r(".sliding-x",this.node),pluginEl:r("#window-ushtpromomobile2"),pluginName:"us-ht-promo",closeOnSwipeDown:!0}),m.on("close-ht-promo",(()=>{this.close()}))}}).open()},_=/version\/(\d+(\.?_?\d+)+)/i,T=(e,n)=>{var o=n.match(e);return o&&o.length>0&&o[1]||""},B=(e,n)=>{var o=n.match(e);return o&&o.length>1&&o[2]||""},E=[{test:[/googlebot/i],describe(e){var n={name:"Googlebot"},o=T(/googlebot\/(\d+(\.\d+))/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/opera/i],describe(e){var n={name:"Opera"},o=T(_,e)||T(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/opr\/|opios/i],describe(e){var n={name:"Opera"},o=T(/(?:opr|opios)[\s/](\S+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/SamsungBrowser/i],describe(e){var n={name:"Samsung Internet for Android"},o=T(_,e)||T(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/Whale/i],describe(e){var n={name:"NAVER Whale Browser"},o=T(_,e)||T(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/MZBrowser/i],describe(e){var n={name:"MZ Browser"},o=T(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/focus/i],describe(e){var n={name:"Focus"},o=T(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/swing/i],describe(e){var n={name:"Swing"},o=T(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/coast/i],describe(e){var n={name:"Opera Coast"},o=T(_,e)||T(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(e){var n={name:"Opera Touch"},o=T(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/yabrowser/i],describe(e){var n={name:"Yandex Browser"},o=T(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/ucbrowser/i],describe(e){var n={name:"UC Browser"},o=T(_,e)||T(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/Maxthon|mxios/i],describe(e){var n={name:"Maxthon"},o=T(_,e)||T(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/epiphany/i],describe(e){var n={name:"Epiphany"},o=T(_,e)||T(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/puffin/i],describe(e){var n={name:"Puffin"},o=T(_,e)||T(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/sleipnir/i],describe(e){var n={name:"Sleipnir"},o=T(_,e)||T(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/k-meleon/i],describe(e){var n={name:"K-Meleon"},o=T(_,e)||T(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/micromessenger/i],describe(e){var n={name:"WeChat"},o=T(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/qqbrowser/i],describe(e){var n={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},o=T(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/msie|trident/i],describe(e){var n={name:"Internet Explorer"},o=T(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/\sedg\//i],describe(e){var n={name:"Microsoft Edge"},o=T(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/edg([ea]|ios)/i],describe(e){var n={name:"Microsoft Edge"},o=B(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/vivaldi/i],describe(e){var n={name:"Vivaldi"},o=T(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/seamonkey/i],describe(e){var n={name:"SeaMonkey"},o=T(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/sailfish/i],describe(e){var n={name:"Sailfish"},o=T(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return o&&(n.version=o),n}},{test:[/silk/i],describe(e){var n={name:"Amazon Silk"},o=T(/silk\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/phantom/i],describe(e){var n={name:"PhantomJS"},o=T(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/slimerjs/i],describe(e){var n={name:"SlimerJS"},o=T(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){var n={name:"BlackBerry"},o=T(_,e)||T(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/(web|hpw)[o0]s/i],describe(e){var n={name:"WebOS Browser"},o=T(_,e)||T(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/bada/i],describe(e){var n={name:"Bada"},o=T(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/tizen/i],describe(e){var n={name:"Tizen"},o=T(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/qupzilla/i],describe(e){var n={name:"QupZilla"},o=T(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/firefox|iceweasel|fxios/i],describe(e){var n={name:"Firefox"},o=T(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/electron/i],describe(e){var n={name:"Electron"},o=T(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/MiuiBrowser/i],describe(e){var n={name:"Miui"},o=T(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/chromium/i],describe(e){var n={name:"Chromium"},o=T(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||T(_,e);return o&&(n.version=o),n}},{test:[/chrome|crios|crmo/i],describe(e){var n={name:"Chrome"},o=T(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test:[/GSA/i],describe(e){var n={name:"Google Search"},o=T(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return o&&(n.version=o),n}},{test(e){var n=!/like android/i.test(e),o=/android/i.test(e);return n&&o},describe(e){var n={name:"Android Browser"},o=T(_,e);return o&&(n.version=o),n}},{test:[/playstation 4/i],describe(e){var n={name:"PlayStation 4"},o=T(_,e);return o&&(n.version=o),n}},{test:[/safari|applewebkit/i],describe(e){var n={name:"Safari"},o=T(_,e);return o&&(n.version=o),n}},{test:[/.*/i],describe(e){var n=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:T(n,e),version:B(n,e)}}}];var z="2024-10-10T04-38-25-530Z",A="#promo-obsolete-app{color:white;text-shadow:0px 0px 2px black;display:block;line-height:1.4;text-align:center;overflow:hidden;letter-spacing:.05em;padding:.5em 1em}#subs-desktop{padding:0px;position:relative;overflow:hidden}#subs-desktop .sub-header{padding:15px;line-height:1.6;padding-bottom:5px}#subs-desktop .sub-header img{width:250px;margin-bottom:5px}#subs-desktop table{margin:10px}#subs-desktop table td{text-align:left;vertical-align:middle;padding:8px 10px;line-height:1.3;border:1px solid rgba(255,255,255,0.3)}#subs-desktop table td div::before{top:.15em}#subs-desktop table td:first-child{white-space:nowrap;opacity:.8;border-left:none;padding-left:5px}#subs-desktop table td:last-child{border-right:none;padding-right:5px}#subs-desktop table thead td{border:none}#subs-desktop table thead td div::before{top:-0.2em;color:var(--color-orange-light)}#subs-desktop table tr:last-child td{border-bottom:none}#subs-desktop .sub-price{transform-origin:center;position:absolute;background:#ffc336;color:black;width:300px;padding:5px;right:-105px;top:20px;transform:rotate(45deg);font-size:18px;text-align:center;font-weight:bold}#promo-olympics2024{background-image:url(https://img.windy.com/albums/a/paris-heatmap.jpg?w=300);background-size:130px;background-repeat:no-repeat;display:block;line-height:1.4;overflow:hidden;padding:.5em 1em;padding-left:150px;font-weight:normal}#promo-heatmaps{background-image:url(https://img.windy.com/albums/a/heatmap.jpg?w=300);background-size:130px;background-repeat:no-repeat;display:block;line-height:1.4;overflow:hidden;padding:.5em 1em;padding-left:150px;font-weight:normal}#window-us-ht-promo2-desktop-2024{color:white;box-shadow:0 0 4px 0 black;border-radius:.5em;background-color:#444;min-width:500px;width:calc(100vw - 200px);max-width:1000px;position:fixed;left:50%;top:50%;transform:translate(-50%, -50%);max-height:800px}#window-us-ht-promo2-desktop-2024 .closing-x{display:block;font-size:30px;top:-0.8em}#window-us-ht-promo2-desktop-2024 .header{background-image:linear-gradient(to left, #000, rgba(0,0,0,0)),url('https://gallery.windy.com/albums/a/hurricane-cover.jpg');background-size:cover;background-position:0 60%;border-radius:.5em 0 0 0;display:flex;flex-direction:row;gap:30px;font-weight:800;padding:30px}#window-us-ht-promo2-desktop-2024 .header__left{display:flex;justify-content:center;align-items:center;flex-direction:column}#window-us-ht-promo2-desktop-2024 .header__left .icon{font-size:50px}#window-us-ht-promo2-desktop-2024 .header__right{display:flex;justify-content:space-between;flex-direction:column}#window-us-ht-promo2-desktop-2024 .header__right h1{font-size:30px}#window-us-ht-promo2-desktop-2024 .content{padding:30px;display:flex;flex-direction:column;gap:10px}#window-us-ht-promo2-desktop-2024 .content .premium-color{color:var(--color-orange)}#window-us-ht-promo2-desktop-2024 .content h2{padding:.5em 1em;border-radius:8px;text-transform:uppercase;width:max-content;font-weight:800}#window-us-ht-promo2-desktop-2024 .content h2--with-border{border:1px solid var(--color-border)}#window-us-ht-promo2-desktop-2024 .content ul{display:flex;gap:10px}#window-us-ht-promo2-desktop-2024 .content ul.row{list-style-type:none;display:flex;flex-direction:row;justify-content:space-between}#window-us-ht-promo2-desktop-2024 .content ul.row li{aspect-ratio:1.77777778;width:100%}#window-us-ht-promo2-desktop-2024 .content img{width:100%;height:auto}#window-us-ht-promo2-desktop-2024 .content .buttons{display:flex;flex-direction:row;align-items:center;white-space:nowrap;gap:10px}#window-us-ht-promo2-desktop-2024 .content .buttons>div{padding:.5em 1em;border-radius:8px;padding:10px;border-radius:40px;text-align:center;cursor:pointer}#window-us-ht-promo2-desktop-2024 .content .buttons>div--with-border{border:1px solid var(--color-border)}#window-us-ht-promo2-desktop-2024 .content .buttons__subscribe{font-size:20px;background:var(--color-orange);width:100%;color:white;font-weight:bold;border:2px solid var(--color-orange)}#window-us-ht-promo2-desktop-2024 .content .buttons__close{font-size:18px;background:transparent;border:2px solid gray;color:lightgray}#window-us-ht-promo2-desktop-2024 .content .when-premium-hide{display:flex}#window-us-ht-promo2-desktop-2024 .content .when-premium-show{display:none}.subs-premium #window-us-ht-promo2-desktop-2024 .content .when-premium-hide{display:none}.subs-premium #window-us-ht-promo2-desktop-2024 .content .when-premium-show{display:block}#device-mobile .onwindow-ushtpromomobile2-2024 #map-container{transform:scale(.93) translateY(0);transform:scale(.93) translateY(var(--margin-top));border-radius:8px;transform-origin:top center}#device-mobile .onwindow-ushtpromomobile2-2024 #search,#device-tablet .onwindow-ushtpromomobile2-2024 #search,#device-mobile .onwindow-ushtpromomobile2-2024 #plugin-picker-mobile,#device-tablet .onwindow-ushtpromomobile2-2024 #plugin-picker-mobile,#device-mobile .onwindow-ushtpromomobile2-2024 #open-in-app,#device-tablet .onwindow-ushtpromomobile2-2024 #open-in-app,#device-mobile .onwindow-ushtpromomobile2-2024 #logo-wrapper,#device-tablet .onwindow-ushtpromomobile2-2024 #logo-wrapper,#device-mobile .onwindow-ushtpromomobile2-2024 #go-premium-mobile,#device-tablet .onwindow-ushtpromomobile2-2024 #go-premium-mobile{display:none !important}#window-ushtpromomobile2-2024{color:white;height:100%;overflow-y:scroll;margin-top:var(--safe-area-inset-top)}#window-ushtpromomobile2-2024 .plugin-content{color:white;background:#646464;padding:0 0 50px 0}#window-ushtpromomobile2-2024 .plugin-content .premium-color{color:var(--color-orange)}#window-ushtpromomobile2-2024 .plugin-content .header{display:flex;flex-direction:row;align-items:center;padding:20px;background-image:url('https://gallery.windy.com/albums/a/Hurricane_eye-1200-x-798.png');background-size:100% auto;background-position:0 70%;background-repeat:no-repeat}#window-ushtpromomobile2-2024 .plugin-content .header__icon{font-size:80px;padding:0 10px}#window-ushtpromomobile2-2024 .plugin-content .header__heading{font-size:24px;font-weight:bold;display:flex;flex-direction:column;width:min-content}#window-ushtpromomobile2-2024 .plugin-content section.wn-content{display:block;background:#646464;padding:0 20px}#window-ushtpromomobile2-2024 .plugin-content section.wn-content h2{font-size:24px;color:white;font-weight:700;padding:10px 0}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>nav.rounded-box{padding:.2em .5em;border-radius:.3em;display:inline-block;font-weight:bold;margin:0 0 20px 0}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>p{padding:0 0 20px 0;margin:0}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>ul.wn-row{padding:0 0 20px 0;margin:0;list-style-type:none;display:flex;flex-direction:column;justify-content:space-between}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>ul.wn-row .wn-row-item{background:#4d4d4d;display:flex;flex-direction:column;text-align:center;align-content:center;align-items:center;border-radius:5px;margin-bottom:20px;padding:20px}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>ul.wn-row .wn-row-item.last-one{margin-bottom:0}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>ul.wn-row .wn-row-item .text{font-size:18px;padding:15px}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>ul.wn-row .wn-row-item .num{padding-top:5px}#window-ushtpromomobile2-2024 .plugin-content section.wn-content>ul.wn-row .wn-row-item img{height:auto;width:100%}#window-ushtpromomobile2-2024 .when-premium-hide{display:flex}#window-ushtpromomobile2-2024 .when-premium-show{display:none}.subs-premium #window-ushtpromomobile2-2024 .when-premium-hide{display:none}.subs-premium #window-ushtpromomobile2-2024 .when-premium-show{display:block}#window-ushtpromomobile2-2024 .buttons{display:flex;flex-direction:column;align-items:center;white-space:nowrap;gap:10px;position:fixed;bottom:0;left:0;width:100%;padding:10px 10px;background-color:#646464}#window-ushtpromomobile2-2024 .buttons>div{padding:.5em 1em;border-radius:8px;padding:10px;border-radius:40px;text-align:center;cursor:pointer;width:100%}#window-ushtpromomobile2-2024 .buttons>div--with-border{border:1px solid var(--color-border)}#window-ushtpromomobile2-2024 .buttons__subscribe{font-size:20px;background:var(--color-orange);color:white;font-weight:bold;border:2px solid var(--color-orange)}#window-ushtpromomobile2-2024 .buttons__close{font-size:18px;background:transparent;border:2px solid gray;color:lightgray}",M=[{id:U,end:"2024-10-14T00:00:00.000Z",counter:4,delay:432e5,filter:()=>"index"===e.target&&!e.isMobileOrTablet&&o.get("sessionCounter")>1&&I.includes(o.get("country")),run(){var e=new p({ident:U,html:'\n    <div class="header">\n        <div class="header__left">\n            <span class="icon" data-icon=""></span>\n            <span>Hurricane</span>\n            <span>Tracker</span>\n        </div>\n\n        <div class="header__right">\n            <h1>Stay Safe in Hurricane Season</h1>\n            <p>Your safety is our mission. Get to know the Hurricane Tracker and stay safe.</p>\n        </div>\n    </div>\n\n    <div class="content">\n        <h2 class="rounded-box bg-gray-light size-l bold fg-gray">How to use it?</h2>\n\n        <p>In the pictures below you can see where you can find the Hurricane Tracker.</p>\n\n        <ul class="row">\n            <li><img src="https://gallery.windy.com/albums/Promo-images/Steps-numbers-1.png" /></li>\n            <li><img src="https://gallery.windy.com/albums/Promo-images/Steps-numbers-2.png" /></li>\n            <li><img src="https://gallery.windy.com/albums/Promo-images/Steps-numbers-3-fixed.png" /></li>\n        </ul>\n\n        <p>\n            Usually, there is more than one forecast available for each storm and hurricane. New updates from NOAA,\n            ECMWF, Met Office, JMA, or BoM come every few hours with updated trajectory and strength.\n        </p>\n\n        <h2 class="rounded-box bg-gray-light size-l bold fg-gray">Did you know?</h2>\n\n        <p class="when-premium-show">\n            Hurricane tracker is free of charge. With your support through <span class="premium-color">Windy Premium</span>, we are able to provide\n            features like this to people in the affected areas at no cost. Thank you for backing us!\n        </p>\n\n        <p class="when-premium-hide">\n            The Hurricane Tracker is free for everyone. Thanks to Windy Premium users, we can provide tools like this. If you want to support Windy, become a Premium member.\n        </p>\n\n        <div class="buttons when-premium-hide">\n            <div data-do="rqstOpen,subscription" class="buttons__subscribe">Subscribe to support</div>\n            <div data-do="bcast,close-ht-promo" class="buttons__close">Not this time</div>\n        </div>\n    </div>\n        '});e.open(),m.on("rqstOpen",(n=>{"hurricanes"!==n&&"subscription"!==n||e.close()})),m.on("close-ht-promo",(()=>{e.close()})),i.hitCounter(this.id)}},{id:"ushtpromomobile2",end:"2024-10-14T00:00:00.000Z",counter:4,delay:432e5,filter:()=>e.isMobile&&o.get("sessionCounter")>1&&b("39.0.0")&&!d.hasAny()&&J.includes(o.get("country")),run(){setTimeout(S,500),i.hitCounter(this.id)}},w,C,v],O=[];(function(){var e,n,o,t={};try{e=document.createElement("canvas")}catch(n){e=null}if(!e)return t.createImageBitmap=!1,Promise.resolve(t);e.width=256,e.height=256;try{n=e.getContext("2d",{willReadFrequently:!0})}catch(e){n=null}return n?(o=n,new Promise((e=>{var n;(n="https://www.windy.com/img/patterns/bitmap-color-test.png",new Promise(((e,o)=>{var t=n=>{n.arrayBuffer().then((n=>{var t=new Blob([new Uint8Array(n)]);createImageBitmap(t).then((n=>{e(n)})).catch((()=>{console.error("[Raster Test] Failed to decode image ata"),o()}))}))};fetch(n).then((e=>{if(e.ok)return t(e);console.error("[Raster Test] Bad request"),o()})).catch((e=>{o(e)}))}))).then((n=>{var t=function(e,n){var o=255,t=Math.floor(.5*o),r=6;e.drawImage(n,0,0);var a=[49,49,49,255],i=[[0,0],[o,0],[t,t],[0,o],[o,o]],s=new Uint8ClampedArray(4),d=0;return i.forEach((n=>{s=e.getImageData(n[0],n[1],1,1).data,d+=function(e,n){for(var o=0,t=0;t<4;t++){var[r,a]=[e[t],n[t]];if(void 0===r||void 0===a)break;o+=Math.abs(r-a)}return o}(Array.from(s),a)})),[d<r,d]}(o,n);e(t)})).catch((()=>{e([!1,-1])}))}))).then((e=>(t.createImageBitmap=e[0],t.absPixelError=e[1],t))):(t.createImageBitmap=!1,Promise.resolve(t))})().then((e=>{var n,o;e.browser=(n=window.navigator.userAgent,(o=E.find((e=>"function"==typeof e.test?e.test(n):e.test instanceof Array&&e.test.some((e=>e.test(n))))))?o.describe(n):{name:"unknown"}),e.platform=W.rootScope.platform,e.ts=Date.now();var t=JSON.stringify(e),r=new XMLHttpRequest;r.open("POST","https://clilogs.windy.com/client-bitmap/_doc/",!0),r.setRequestHeader("Content-Type","application/json"),r.send(t)}));export{A as __css,z as __version,M as exclusivePromos,O as otherPromos};
//# sourceMappingURL=patch.js.map
