@noaa-gsl/wizard-graphics 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/wizard-graphics.css +2 -0
- package/dist/wizard-graphics.es.js +17386 -0
- package/dist/wizard-graphics.es.js.map +1 -0
- package/dist/wizard-graphics.umd.js +828 -0
- package/dist/wizard-graphics.umd.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,828 @@
|
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@deck.gl/core"),require("@deck.gl/layers"),require("d3"),require("@luma.gl/engine"),require("@luma.gl/shadertools"),require("@math.gl/polygon"),require("@deck.gl/extensions"),require("react/jsx-runtime"),require("react-map-gl/maplibre"),require("@deck.gl/mapbox"),require("react"),require("lodash"),require("proj4")):typeof define==`function`&&define.amd?define([`exports`,`@deck.gl/core`,`@deck.gl/layers`,`d3`,`@luma.gl/engine`,`@luma.gl/shadertools`,`@math.gl/polygon`,`@deck.gl/extensions`,`react/jsx-runtime`,`react-map-gl/maplibre`,`@deck.gl/mapbox`,`react`,`lodash`,`proj4`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`wizard-graphics`]={},e._deck_gl_core,e._deck_gl_layers,e.d3,e._luma_gl_engine,e._luma_gl_shadertools,e._math_gl_polygon,e._deck_gl_extensions,e.ReactJsxRuntime,e.react_map_gl_maplibre,e._deck_gl_mapbox,e.React,e.lodash,e.proj4))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var m=Object.create,h=Object.defineProperty,g=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,v=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty,b=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=_(t),a=0,o=i.length,s;a<o;a++)s=i[a],!y.call(e,s)&&s!==n&&h(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=g(t,s))||r.enumerable});return e};p=((e,t,n)=>(n=e==null?{}:m(v(e)),b(t||!e||!e.__esModule?h(n,`default`,{value:e,enumerable:!0}):n,e)))(p,1);var x=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],S=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],C=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],w=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],T=class e{static ijToIdx(e,t,n,r,i=1){return e<0||e>=n||t<0||t>=r?NaN:(t*n+e)*i}static ijkToIdx(e,t,n,r,i){return r*i*n+t*r+e}static uvToDirection(e,t){return 180+180/Math.PI*Math.atan2(e,t)}static uvToMagnitude(e,t){return Math.sqrt(e*e+t*t)}static DirectionToUV(e,t){let n=e*Math.PI/180;return[-t*Math.sin(n),-t*Math.cos(n)]}static getreadoutvalue(t,n,r,i,a,o=!0){let[s,c]=r.LonLatToij(n,t,!1,!0),l=Math.floor(s),u=Math.ceil(s),d=Math.floor(c),f=Math.ceil(c),p=1-(s-l),m=1-p,h=1-(c-d),g=1-h,_=[r.lonlatGrid.length,r.lonlatGrid[0].length],v=i?.[e.ijToIdx(l,f,_[1],_[0])],y=i?.[e.ijToIdx(u,f,_[1],_[0])],b=i?.[e.ijToIdx(l,d,_[1],_[0])],x=i?.[e.ijToIdx(u,d,_[1],_[0])];function S(e,t,n,r){let i,a=[n,e,r,t];if(o)i=n*p*h+e*p*g+r*m*h+t*m*g;else{let e=[p*h,p*g,m*h,m*g],t=Math.max(...e);i=a[e.indexOf(t)]}return i=a.some(e=>Number.isNaN(e))?NaN:i,i}let C;if(a===`°`){let[e,t]=this.DirectionToUV(v,1),[n,r]=this.DirectionToUV(y,1),[i,a]=this.DirectionToUV(b,1),[o,s]=this.DirectionToUV(x,1),c=S(e,n,i,o),l=S(t,r,a,s);C=this.uvToDirection(c,l)}else C=S(v,y,b,x);return C}static roundto(e,t){let n=10**t;return Math.round(e*n)/n}static string_to_rgb(e){let t=e.replace(/[^\d,.]/g,``).split(`,`).map(Number);return t.length===3?t.push(255):t[3]=Math.round(t[3]*255),t}static rgb_to_string(e){return e.length===4?`rgba(${e[0]},${e[1]},${e[2]},${e[3]})`:e.length===3?`rgb(${e[0]},${e[1]},${e[2]})`:null}static hexToRgb(e){let t=e.replace(/^#/,``),n=parseInt(t,16);return[Math.floor(n/(256*256))%256,Math.floor(n/256)%256,n%256]}static closestceilvalue(e,t){let n=e.map(Number),r=Math.min.apply(null,n.filter(e=>e>=t));return r===1/0&&(r=n[n.length-1]),r}static closestfloorvalue(e,t){let n=e.map(Number),r=Math.max.apply(null,n.filter(e=>e<=t));return r===-1/0&&([r]=n),r}static normalize(t,n,r){let i=Math.max(...n),a=Math.min(...n),o=new Float32Array(t.length);for(let s=0;s<o.length;s+=1)o[s]=e.normalize1D(t[s],i,a,n,r);return o}static formatValidTime(e){let t=new Date,n={year:`numeric`,month:`long`,day:`numeric`},r={day1outlook:0,day2outlook:1,day3outlook:2,day4outlook:3,day5outlook:4};if(Object.keys(r).includes(e.dataType)){let n=r[e.dataType],i=this.getCurrentDayAndHour(n,n!==0),a=new Date(t.setUTCDate(t.getUTCDate()+n));return a.setUTCHours(12),`${i} - ${this.formatSpcDate(a)}`}if(e.layerType===`prcp`||e.layerType===`temp`){let[r,i]=e.range===`6-10`?[6,10]:[8,14],a=new Date(t.setUTCDate(t.getUTCDate()+r)),o=new Date(t.setUTCDate(t.getUTCDate()+i-r));return`${a.toLocaleDateString(`en-US`,n)} - ${o.toLocaleDateString(`en-US`,n)}`}return``}static formatSpcDate(e){if(!(e instanceof Date)||Number.isNaN(e))throw Error(`Input must be a valid Date object.`);let t=new Date(e);return t.setUTCDate(t.getUTCDate()+1),`${String(t.getUTCDate()).padStart(2,`0`)}/12Z`}static getCurrentDayAndHour=(e=0,t=!1)=>{let n=new Date,r=new Date(n);return t?(r.setUTCDate(n.getUTCDate()+e),r.setUTCHours(12)):r.setUTCDate(n.getUTCDate()+e),`${String(r.getUTCDate()).padStart(2,`0`)}/${String(r.getUTCHours()).padStart(2,`0`)}Z`};static normalize1D(e,t,n,r,i){if(Number.isNaN(e))return NaN;let a;a=e<n?0:e>=t?r.length-2:r.findIndex(t=>t>e)-1;let o=a/(r.length-1),s=r[a],c=(a+1)/(r.length-1),l=r[a+1],u=(e-s)/(l-s),d=(1-u)*o+u*c;if(i===`threshold`){let e=.01;Math.abs(d-o)<e&&(d+=e),Math.abs(d-c)<e&&(d-=e)}let f;f=i===`linear`?1/r.length/2:1/(r.length+1);let p=1-f*2;return d=f+p*d,d>=.999&&(d=.999),d<=.001&&(d=.001),d}static formatdate(e,t,n=void 0){let r=n?.timeZone||`local`,i=n?.hourFormat||12,a=new Date(e.getTime());r===`UTC`&&(a=new Date(e.toLocaleString(`en-US`,{timeZone:`UTC`})));let o=a.getMonth(),s=a.getDate(),c=a.getDay(),l=a.getFullYear(),u=a.getHours(),d=a.getMinutes(),f=a.toLocaleDateString(`en-US`,{day:`2-digit`,timeZoneName:`short`}).substring(4);r!==`local`&&(f=`UTC`);let p;i===12?(p=u>=12?`pm `:`am `,u%=12,u||=12):p=` `;let m=u;u=u<10?`0${u}`:u,d=d<10?`0${d}`:d;let h=``;h=m<12?`${x[c]} Morning`:m<18?`${x[c]} Afternoon`:`${x[c]} Evening`;let g;return g=t===`short`?`${S[c]} ${u} ${p}${f}`:t===`YYYYMMDDHHMM`?String(l).padStart(4,`0`)+String(o+1).padStart(2,`0`)+String(s).padStart(2,`0`)+String(u).padStart(2,`0`)+String(d).padStart(2,`0`):t===`YYYYMMDD HH`?`${String(l).padStart(4,`0`)+String(o+1).padStart(2,`0`)+String(s).padStart(2,`0`)} ${String(u).padStart(2,`0`)}`:t===`shorter`?`${S[c]} ${u}:${d} ${p} ${f}, ${w[o]} ${s}`:t===`selectbox`?`${String(a.getUTCHours()).padStart(2,`0`)}Z ${C[a.getUTCMonth()]} ${a.getUTCDate()}, ${a.getUTCFullYear()}`:t===`graphics`?`${S[c]}, ${w[o]} ${s}, ${l}, ${m} ${p}${f}`:t===`descriptiveTime`?`${h}, ${w[o]} ${s}`:t===`timing`?`${S[c]} ${m}${p} ${f===`UTC`?f:``}`:t===`timezone`?f:`${x[c]} ${u} ${p}${f}, ${C[o]} ${s}, ${l}`,g=g.replace(/\s+/g,` `).trim(),g}};function E(e,t,n=0,r=e.length-1,i=te){for(;r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1);E(e,t,Math.max(n,Math.floor(t-o*c/a+l)),Math.min(r,Math.floor(t+(a-o)*c/a+l)),i)}let a=e[t],o=n,s=r;for(ee(e,n,t),i(e[r],a)>0&&ee(e,n,r);o<s;){for(ee(e,o,s),o++,s--;i(e[o],a)<0;)o++;for(;i(e[s],a)>0;)s--}i(e[n],a)===0?ee(e,n,s):(s++,ee(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}}function ee(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function te(e,t){return e<t?-1:+(e>t)}var ne=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data,n=[];if(!me(e,t))return n;let r=this.toBBox,i=[];for(;t;){for(let a=0;a<t.children.length;a++){let o=t.children[a],s=t.leaf?r(o):o;me(e,s)&&(t.leaf?n.push(o):pe(e,s)?this._all(o,n):i.push(o))}t=i.pop()}return n}collides(e){let t=this.data;if(!me(e,t))return!1;let n=[];for(;t;){for(let r=0;r<t.children.length;r++){let i=t.children[r],a=t.leaf?this.toBBox(i):i;if(me(e,a)){if(t.leaf||pe(e,a))return!0;n.push(i)}}t=n.pop()}return!1}load(e){if(!(e&&e.length))return this;if(e.length<this._minEntries){for(let t=0;t<e.length;t++)this.insert(e[t]);return this}let t=this._build(e.slice(),0,e.length-1,0);if(!this.data.children.length)this.data=t;else if(this.data.height===t.height)this._splitRoot(this.data,t);else{if(this.data.height<t.height){let e=this.data;this.data=t,t=e}this._insert(t,this.data.height-t.height-1,!0)}return this}insert(e){return e&&this._insert(e,this.data.height-1),this}clear(){return this.data=he([]),this}remove(e,t){if(!e)return this;let n=this.data,r=this.toBBox(e),i=[],a=[],o,s,c;for(;n||i.length;){if(n||(n=i.pop(),s=i[i.length-1],o=a.pop(),c=!0),n.leaf){let r=re(e,n.children,t);if(r!==-1)return n.children.splice(r,1),i.push(n),this._condense(i),this}!c&&!n.leaf&&pe(n,r)?(i.push(n),a.push(o),o=0,s=n,n=n.children[0]):s?(o++,n=s.children[o],c=!1):n=null}return this}toBBox(e){return e}compareMinX(e,t){return e.minX-t.minX}compareMinY(e,t){return e.minY-t.minY}toJSON(){return this.data}fromJSON(e){return this.data=e,this}_all(e,t){let n=[];for(;e;)e.leaf?t.push(...e.children):n.push(...e.children),e=n.pop();return t}_build(e,t,n,r){let i=n-t+1,a=this._maxEntries,o;if(i<=a)return o=he(e.slice(t,n+1)),ie(o,this.toBBox),o;r||(r=Math.ceil(Math.log(i)/Math.log(a)),a=Math.ceil(i/a**(r-1))),o=he([]),o.leaf=!1,o.height=r;let s=Math.ceil(i/a),c=s*Math.ceil(Math.sqrt(a));ge(e,t,n,c,this.compareMinX);for(let i=t;i<=n;i+=c){let t=Math.min(i+c-1,n);ge(e,i,t,s,this.compareMinY);for(let n=i;n<=t;n+=s){let i=Math.min(n+s-1,t);o.children.push(this._build(e,n,i,r-1))}}return ie(o,this.toBBox),o}_chooseSubtree(e,t,n,r){for(;r.push(t),!(t.leaf||r.length-1===n);){let n=1/0,r=1/0,i;for(let a=0;a<t.children.length;a++){let o=t.children[a],s=le(o),c=de(e,o)-s;c<r?(r=c,n=s<n?s:n,i=o):c===r&&s<n&&(n=s,i=o)}t=i||t.children[0]}return t}_insert(e,t,n){let r=n?e:this.toBBox(e),i=[],a=this._chooseSubtree(r,this.data,t,i);for(a.children.push(e),oe(a,r);t>=0&&i[t].children.length>this._maxEntries;)this._split(i,t),t--;this._adjustParentBBoxes(r,i,t)}_split(e,t){let n=e[t],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);let a=this._chooseSplitIndex(n,i,r),o=he(n.children.splice(a,n.children.length-a));o.height=n.height,o.leaf=n.leaf,ie(n,this.toBBox),ie(o,this.toBBox),t?e[t-1].children.push(o):this._splitRoot(n,o)}_splitRoot(e,t){this.data=he([e,t]),this.data.height=e.height+1,this.data.leaf=!1,ie(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,i=1/0,a=1/0;for(let o=t;o<=n-t;o++){let t=ae(e,0,o,this.toBBox),s=ae(e,o,n,this.toBBox),c=fe(t,s),l=le(t)+le(s);c<i?(i=c,r=o,a=l<a?l:a):c===i&&l<a&&(a=l,r=o)}return r||n-t}_chooseSplitAxis(e,t,n){let r=e.leaf?this.compareMinX:se,i=e.leaf?this.compareMinY:ce;this._allDistMargin(e,t,n,r)<this._allDistMargin(e,t,n,i)&&e.children.sort(r)}_allDistMargin(e,t,n,r){e.children.sort(r);let i=this.toBBox,a=ae(e,0,t,i),o=ae(e,n-t,n,i),s=ue(a)+ue(o);for(let r=t;r<n-t;r++){let t=e.children[r];oe(a,e.leaf?i(t):t),s+=ue(a)}for(let r=n-t-1;r>=t;r--){let t=e.children[r];oe(o,e.leaf?i(t):t),s+=ue(o)}return s}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)oe(t[r],e)}_condense(e){for(let t=e.length-1,n;t>=0;t--)e[t].children.length===0?t>0?(n=e[t-1].children,n.splice(n.indexOf(e[t]),1)):this.clear():ie(e[t],this.toBBox)}};function re(e,t,n){if(!n)return t.indexOf(e);for(let r=0;r<t.length;r++)if(n(e,t[r]))return r;return-1}function ie(e,t){ae(e,0,e.children.length,t,e)}function ae(e,t,n,r,i){i||=he(null),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let a=t;a<n;a++){let t=e.children[a];oe(i,e.leaf?r(t):t)}return i}function oe(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function se(e,t){return e.minX-t.minX}function ce(e,t){return e.minY-t.minY}function le(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function ue(e){return e.maxX-e.minX+(e.maxY-e.minY)}function de(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function fe(e,t){let n=Math.max(e.minX,t.minX),r=Math.max(e.minY,t.minY),i=Math.min(e.maxX,t.maxX),a=Math.min(e.maxY,t.maxY);return Math.max(0,i-n)*Math.max(0,a-r)}function pe(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function me(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function he(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function ge(e,t,n,r,i){let a=[t,n];for(;a.length;){if(n=a.pop(),t=a.pop(),n-t<=r)continue;let o=t+Math.ceil((n-t)/r/2)*r;E(e,o,t,n,i),a.push(t,o,o,n)}}var _e=class e{static getLatLonPerPixel(e){let{width:n,height:r,latitude:i,longitude:a,zoom:o}=e,s=e.bearing||0,c;c=e.id.includes(`geojson3D`)?new t._GlobeViewport({width:n,height:r,latitude:i,longitude:a,zoom:o,bearing:s,pitch:0}):new t.WebMercatorViewport({width:n,height:r,latitude:i,longitude:a,zoom:o,bearing:s,pitch:0});let{unproject:l}=c,u=[l([0,0]),l([n/2,0]),l([n,0]),l([n,r/2]),l([n,r]),l([n/2,r]),l([0,r])],d=u.map(e=>e[0]),f=u.map(e=>e[1]),p=this.degreeDiff(Math.max(...d),Math.min(...d));return{latPerPixel:this.degreeDiff(Math.max(...f),Math.min(...f))/r,lonPerPixel:p/n}}static getViewport(e,t=0){return e.current?._deck?.viewManager?.getViewports()?.[t]||e?.current?.deck?.viewManager?.getViewports()?.[t]}static getViewportBounds(e,t=void 0){let{unproject:n,width:r,height:i}=e,a=[0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1],o=[],s=[];for(let e of a)for(let c of a){let[a,l]=n([r*e,i*c]);if(t){let[e,n]=t.LonLatToij(a,l);s.push(n),o.push(e)}else s.push(l),o.push(a)}return{yMin:Math.min(...s),yMax:Math.max(...s),xMin:Math.min(...o),xMax:Math.max(...o)}}static getCities(t,n,r,i,a){let{unproject:o}=t;if(!o)return;let{yMin:s,yMax:c,xMin:l,xMax:u}=this.getViewportBounds(t),{latPerPixel:d}=e.getLatLonPerPixel(t),f=a*i*.3,p=d*16/2*f,m=[...r];return m.sort(),n[T.closestfloorvalue(m,p)].search({minX:l,maxX:u,minY:s,maxY:c})}static degreeDiff(e,t){let n=e;return n<t&&(n+=360),Math.abs(n-t)}static zoomToFOV(e){return 130*(1-(Math.max(Math.min(e,20),1)-1)/19)}static isFeatureVisibleOnGlobe(e,t,n,r,i){if([e,t,n,r,i].some(e=>typeof e!=`number`||Number.isNaN(e)))return!1;let a=e=>e*Math.PI/180,o=a(e),s=a(t),c=a(n),l=a(r),u=(e,t)=>[Math.cos(e)*Math.cos(t),Math.sin(e),Math.cos(e)*Math.sin(t)],d=u(o,s),f=u(c,l),p=d[0]*f[0]+d[1]*f[1]+d[2]*f[2],m=this.zoomToFOV(i);return p>=Math.cos(a(m/2))}},ve={getColor:e=>e.color||[245,245,245],getBackgroundColor:[255,255,255,150],getSize:12,getAngle:0,billboard:!0,background:!1,backgroundPadding:[4,1],getTextAnchor:`middle`,fontFamily:`Helvetica`,getAlignmentBaseline:`center`,parameters:{depthCompare:`always`,cullMode:`none`},fontSettings:{sdf:!0,radius:12,cutoff:.25,buffer:10,smoothing:.2},outlineWidth:4,fontWeight:`700`,outlineColor:[0,0,0,255],getLabel:e=>e.label,getWeight:e=>e.weight||1,getPosition:e=>e.position};function ye(e,t,n,r){for(let i of t){let{lat:t,lon:a}=i,o={text:n,lat:t,lon:a,minX:a-r,minY:t-r,maxX:a+r,maxY:t+r};e.collides(o)||e.insert(o)}return e}var be=class extends t.CompositeLayer{initializeState(){this.state={zoom:9999}}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:t,changeFlags:n}){super.updateState({props:e,oldProps:t,changeFlags:n});let{viewport:r}=this.context,{zoom:i}=r;if(!n.propsOrDataChanged&&(!i||Math.abs(i-this.state.zoom)<.5))return;let{latPerPixel:a}=_e.getLatLonPerPixel(r),o=14*a,{lines:s}=e;for(let e of s.features)e.geometry.coordinates!==0&&e.geometry.coordinates.sort((e,t)=>t.length-e.length);let c=new ne,l=o*1/2,u=o*25/2,d=o*50/2;for(let e of s.features){let t=e.properties[0].value.toString(),n=new ne;for(let r of e.geometry?.coordinates||[]){let e=new ne,i=[],a=Math.round(r.length*.1);for(let e=a;e<r.length-1-a;e+=1){let t=r[e][0],n=r[e][1],o=r[e-a][0],s=r[e-a][1],c=r[e+a][0],l=(r[e+a][1]-s)/(c-o)||0;l=Math.abs(l),i.push({lat:n,lon:t,slope:l})}i.sort((e,t)=>e.slope-t.slope),ye(e,i,t,d),ye(n,e.all(),t,u)}ye(c,n.all(),t,l)}let f=c.all();this.setState({zoom:i,labels:f})}renderLayers(){let{labels:e}=this.state,{viewport:t}=this.context,{zoom:r}=t,i=t.latitude,a=t.longitude;return new n.TextLayer(this.props,{id:`${this.props.id}-text`,data:e.filter(e=>_e.isFeatureVisibleOnGlobe(i,a,e.lat,e.lon,r)),getPosition:e=>[Number(e.lon),Number(e.lat),this.props.elevation],getText:e=>e.text})}};be.layerName=`ContourLabels`,be.defaultProps=ve;var xe=document.createElement(`canvas`).getContext(`2d`);function Se(e,t,n=0){xe.save(),xe.font=t;let r=xe.measureText(e),{width:i}=r,a=r.fontBoundingBoxAscent+r.fontBoundingBoxDescent,o=n*Math.PI/180,s=Math.abs(i*Math.cos(o))+Math.abs(a*Math.sin(o)),c=Math.abs(i*Math.sin(o))+Math.abs(a*Math.cos(o));return xe.restore(),{width:s,height:c}}function Ce(e,t,n=0){let r=0,i=0;return e.forEach(e=>{let{width:a,height:o}=Se(e,t,n);a>r&&(r=Math.ceil(a)),o>i&&(i=Math.ceil(o))}),{width:r,height:i}}function we(e,t,n,r=0){let i=Number(r),a=n<0,o=``,s=``,c=``;return e?i>0?(s=a?`end`:`start`,c=`middle`,o=`rotate(${i}, 0, ${t})`):i<0?(s=a?`start`:`end`,c=`middle`,o=`rotate(${i}, 0, ${t})`):(s=`middle`,c=a?`alphabetic`:`hanging`):e||(i===90?(s=`middle`,c=a?`hanging`:`alphabetic`,o=`rotate(90, ${t}, 0)`):i===-90?(s=`middle`,c=a?`alphabetic`:`hanging`,o=`rotate(-90, ${t}, 0)`):i===0?(s=a?`end`:`start`,c=`middle`):(s=a?`end`:`start`,c=`middle`,o=`rotate(${i}, ${t}, 0)`)),{transform:o,textAnchor:s,dominantBaseline:c}}function Te({isHorizontal:e,titleJustify:t,titleDimensions:n,barLength:r}){let i=``,a=``,o=``,s=0,c=0;return e?(t===`left`?(s=0,a=`start`):t===`center`?(s=r/2,a=`middle`):t===`right`&&(s=r,a=`end`),c=n.height/2,o=`central`):e||(t===`left`?(c=r,a=`start`):t===`center`?(c=r/2,a=`middle`):t===`right`&&(c=0,a=`end`),s=n.width/2,o=`central`,i=`rotate(-90, ${s}, ${c})`),{transform:i,textAnchor:a,dominantBaseline:o,x:s,y:c}}function Ee(e,t,n){let i=typeof t==`string`?t:Array.isArray(t)&&t.length===1?t[0]:null;if(i)return()=>i;if(!Array.isArray(t)||!Array.isArray(e))return console.log(`ERROR: colors and colorLevels must be arrays when using multi-color scales`),()=>`rgba(0,0,0,0)`;let a=t.length,o=e.length;n===`scaleThreshold`?o+1!==a&&console.log(`ERROR: When using the threshold colorbar the number of colors must be one greater than the number of levels.\nColors Length: ${a}\nLevels Length: ${o}
|
|
2
|
+
\nLevels: ${e}
|
|
3
|
+
\nColors: ${t}`):n===`scaleLinear`?o!==a&&console.log(`ERROR: When using the linear colorbar the number of colors and levels must be equal\nColors Length: ${a}\nLevels Length: ${o}
|
|
4
|
+
\nLevels: ${e}
|
|
5
|
+
\nColors: ${t}`):console.log(`ERROR: Colorbar of type`,n,`not found`);let s=n===`scaleLinear`?(0,r.scaleLinear)():(0,r.scaleThreshold)();return s.domain(e).range(t),s}var De=`#version 300 es
|
|
6
|
+
#define SHADER_NAME path-layer-vertex-shader
|
|
7
|
+
|
|
8
|
+
in vec2 positions;
|
|
9
|
+
|
|
10
|
+
in float instanceTypes;
|
|
11
|
+
in vec3 instanceStartPositions;
|
|
12
|
+
in vec3 instanceEndPositions;
|
|
13
|
+
in vec3 instanceLeftPositions;
|
|
14
|
+
in vec3 instanceRightPositions;
|
|
15
|
+
in vec3 instanceLeftPositions64Low;
|
|
16
|
+
in vec3 instanceStartPositions64Low;
|
|
17
|
+
in vec3 instanceEndPositions64Low;
|
|
18
|
+
in vec3 instanceRightPositions64Low;
|
|
19
|
+
in float instanceStrokeWidths;
|
|
20
|
+
in vec4 instanceColors;
|
|
21
|
+
in vec3 instancePickingColors;
|
|
22
|
+
|
|
23
|
+
uniform float opacity;
|
|
24
|
+
|
|
25
|
+
out vec4 vColor;
|
|
26
|
+
out vec2 vCornerOffset;
|
|
27
|
+
out float vMiterLength;
|
|
28
|
+
out vec2 vPathPosition;
|
|
29
|
+
out float vPathLength;
|
|
30
|
+
out float vJointType;
|
|
31
|
+
|
|
32
|
+
const float EPSILON = 0.001;
|
|
33
|
+
const vec3 ZERO_OFFSET = vec3(0.0);
|
|
34
|
+
|
|
35
|
+
float flipIfTrue(bool flag) {
|
|
36
|
+
return -(float(flag) * 2. - 1.);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// calculate line join positions
|
|
40
|
+
vec3 getLineJoinOffset(
|
|
41
|
+
vec3 prevPoint, vec3 currPoint, vec3 nextPoint,
|
|
42
|
+
vec2 width
|
|
43
|
+
) {
|
|
44
|
+
bool isEnd = positions.x > 0.0;
|
|
45
|
+
// side of the segment - -1: left, 0: center, 1: right
|
|
46
|
+
float sideOfPath = positions.y;
|
|
47
|
+
float isJoint = float(sideOfPath == 0.0);
|
|
48
|
+
|
|
49
|
+
vec3 deltaA3 = (currPoint - prevPoint);
|
|
50
|
+
vec3 deltaB3 = (nextPoint - currPoint);
|
|
51
|
+
|
|
52
|
+
mat3 rotationMatrix;
|
|
53
|
+
bool needsRotation = !path.billboard && project_needs_rotation(currPoint, rotationMatrix);
|
|
54
|
+
if (needsRotation) {
|
|
55
|
+
deltaA3 = deltaA3 * rotationMatrix;
|
|
56
|
+
deltaB3 = deltaB3 * rotationMatrix;
|
|
57
|
+
}
|
|
58
|
+
vec2 deltaA = deltaA3.xy / width;
|
|
59
|
+
vec2 deltaB = deltaB3.xy / width;
|
|
60
|
+
|
|
61
|
+
float lenA = length(deltaA);
|
|
62
|
+
float lenB = length(deltaB);
|
|
63
|
+
|
|
64
|
+
vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);
|
|
65
|
+
vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);
|
|
66
|
+
|
|
67
|
+
vec2 perpA = vec2(-dirA.y, dirA.x);
|
|
68
|
+
vec2 perpB = vec2(-dirB.y, dirB.x);
|
|
69
|
+
|
|
70
|
+
// tangent of the corner
|
|
71
|
+
vec2 tangent = dirA + dirB;
|
|
72
|
+
tangent = length(tangent) > 0. ? normalize(tangent) : perpA;
|
|
73
|
+
// direction of the corner
|
|
74
|
+
vec2 miterVec = vec2(-tangent.y, tangent.x);
|
|
75
|
+
// direction of the segment
|
|
76
|
+
vec2 dir = isEnd ? dirA : dirB;
|
|
77
|
+
// direction of the extrusion
|
|
78
|
+
vec2 perp = isEnd ? perpA : perpB;
|
|
79
|
+
// length of the segment
|
|
80
|
+
float L = isEnd ? lenA : lenB;
|
|
81
|
+
|
|
82
|
+
// A = angle of the corner
|
|
83
|
+
float sinHalfA = abs(dot(miterVec, perp));
|
|
84
|
+
float cosHalfA = abs(dot(dirA, miterVec));
|
|
85
|
+
|
|
86
|
+
// -1: right, 1: left
|
|
87
|
+
float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);
|
|
88
|
+
|
|
89
|
+
// relative position to the corner:
|
|
90
|
+
// -1: inside (smaller side of the angle)
|
|
91
|
+
// 0: center
|
|
92
|
+
// 1: outside (bigger side of the angle)
|
|
93
|
+
float cornerPosition = sideOfPath * turnDirection;
|
|
94
|
+
|
|
95
|
+
float miterSize = 1.0 / max(sinHalfA, EPSILON);
|
|
96
|
+
// trim if inside corner extends further than the line segment
|
|
97
|
+
miterSize = mix(
|
|
98
|
+
min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),
|
|
99
|
+
miterSize,
|
|
100
|
+
step(0.0, cornerPosition)
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
// vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))
|
|
104
|
+
vec2 offsetVec = mix(perp, miterVec * miterSize, step(0.5, isJoint))
|
|
105
|
+
* (sideOfPath + isJoint * turnDirection);
|
|
106
|
+
|
|
107
|
+
// special treatment for start cap and end cap
|
|
108
|
+
bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));
|
|
109
|
+
bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));
|
|
110
|
+
bool isCap = isStartCap || isEndCap;
|
|
111
|
+
|
|
112
|
+
// extend out a triangle to envelope the round cap
|
|
113
|
+
if (isCap) {
|
|
114
|
+
offsetVec = mix(perp * sideOfPath, dir * path.capType * 4.0 * flipIfTrue(isStartCap), isJoint);
|
|
115
|
+
vJointType = path.capType;
|
|
116
|
+
} else {
|
|
117
|
+
vJointType = path.jointType;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Generate variables for fragment shader
|
|
121
|
+
vPathLength = L;
|
|
122
|
+
vCornerOffset = offsetVec;
|
|
123
|
+
vMiterLength = dot(vCornerOffset, miterVec * turnDirection);
|
|
124
|
+
vMiterLength = isCap ? isJoint : vMiterLength;
|
|
125
|
+
|
|
126
|
+
vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);
|
|
127
|
+
vPathPosition = vec2(
|
|
128
|
+
dot(offsetFromStartOfPath, perp),
|
|
129
|
+
dot(offsetFromStartOfPath, dir)
|
|
130
|
+
);
|
|
131
|
+
geometry.uv = vPathPosition;
|
|
132
|
+
|
|
133
|
+
float isValid = step(instanceTypes, 3.5);
|
|
134
|
+
vec3 offset = vec3(offsetVec * width * isValid, 0.0);
|
|
135
|
+
|
|
136
|
+
if (needsRotation) {
|
|
137
|
+
offset = rotationMatrix * offset;
|
|
138
|
+
}
|
|
139
|
+
return offset;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// In clipspace extrusion, if a line extends behind the camera, clip it to avoid visual artifacts
|
|
143
|
+
void clipLine(inout vec4 position, vec4 refPosition) {
|
|
144
|
+
if (position.w < EPSILON) {
|
|
145
|
+
float r = (EPSILON - refPosition.w) / (position.w - refPosition.w);
|
|
146
|
+
position = refPosition + (position - refPosition) * r;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
void main() {
|
|
151
|
+
geometry.pickingColor = instancePickingColors;
|
|
152
|
+
|
|
153
|
+
vColor = vec4(instanceColors.rgb, instanceColors.a * layer.opacity);
|
|
154
|
+
|
|
155
|
+
float isEnd = positions.x;
|
|
156
|
+
|
|
157
|
+
vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);
|
|
158
|
+
vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);
|
|
159
|
+
|
|
160
|
+
vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);
|
|
161
|
+
vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);
|
|
162
|
+
|
|
163
|
+
vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);
|
|
164
|
+
vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);
|
|
165
|
+
|
|
166
|
+
geometry.worldPosition = currPosition;
|
|
167
|
+
vec2 widthPixels = vec2(clamp(
|
|
168
|
+
project_size_to_pixel(instanceStrokeWidths * path.widthScale, path.widthUnits),
|
|
169
|
+
path.widthMinPixels, path.widthMaxPixels) / 2.0);
|
|
170
|
+
vec3 width;
|
|
171
|
+
|
|
172
|
+
if (path.billboard) {
|
|
173
|
+
// Extrude in clipspace
|
|
174
|
+
vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET);
|
|
175
|
+
vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);
|
|
176
|
+
vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);
|
|
177
|
+
|
|
178
|
+
clipLine(prevPositionScreen, currPositionScreen);
|
|
179
|
+
clipLine(nextPositionScreen, currPositionScreen);
|
|
180
|
+
clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));
|
|
181
|
+
|
|
182
|
+
width = vec3(widthPixels, 0.0);
|
|
183
|
+
DECKGL_FILTER_SIZE(width, geometry);
|
|
184
|
+
|
|
185
|
+
vec3 offset = getLineJoinOffset(
|
|
186
|
+
prevPositionScreen.xyz / prevPositionScreen.w,
|
|
187
|
+
currPositionScreen.xyz / currPositionScreen.w,
|
|
188
|
+
nextPositionScreen.xyz / nextPositionScreen.w,
|
|
189
|
+
project_pixel_size_to_clipspace(width.xy)
|
|
190
|
+
);
|
|
191
|
+
|
|
192
|
+
DECKGL_FILTER_GL_POSITION(currPositionScreen, geometry);
|
|
193
|
+
gl_Position = vec4(currPositionScreen.xyz + offset * currPositionScreen.w, currPositionScreen.w);
|
|
194
|
+
} else {
|
|
195
|
+
// Extrude in commonspace
|
|
196
|
+
prevPosition = project_position(prevPosition, prevPosition64Low);
|
|
197
|
+
currPosition = project_position(currPosition, currPosition64Low);
|
|
198
|
+
nextPosition = project_position(nextPosition, nextPosition64Low);
|
|
199
|
+
|
|
200
|
+
width = vec3(project_pixel_size(widthPixels), 0.0);
|
|
201
|
+
DECKGL_FILTER_SIZE(width, geometry);
|
|
202
|
+
|
|
203
|
+
vec3 offset = getLineJoinOffset(prevPosition, currPosition, nextPosition, width.xy);
|
|
204
|
+
geometry.position = vec4(currPosition + offset, 1.0);
|
|
205
|
+
gl_Position = project_common_position_to_clipspace(geometry.position);
|
|
206
|
+
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
207
|
+
}
|
|
208
|
+
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
209
|
+
}
|
|
210
|
+
`,Oe=class extends n.PathLayer{initializeState(){super.initializeState()}getShaders(){return{...super.getShaders(),vs:De}}};Oe.layerName=`WizardPathLayer`;function ke(e,t,n=2){let r=t&&t.length,i=r?t[0]*n:e.length,a=Ae(e,0,i,n,!0),o=[];if(!a||a.next===a.prev)return o;let s,c,l;if(r&&(a=Le(e,t,a,n)),e.length>80*n){s=e[0],c=e[1];let t=s,r=c;for(let a=n;a<i;a+=n){let n=e[a],i=e[a+1];n<s&&(s=n),i<c&&(c=i),n>t&&(t=n),i>r&&(r=i)}l=Math.max(t-s,r-c),l=l===0?0:32767/l}return Me(a,o,n,s,c,l,0),o}function Ae(e,t,n,r,i){let a;if(i===st(e,t,n,r)>0)for(let i=t;i<n;i+=r)a=it(i/r|0,e[i],e[i+1],a);else for(let i=n-r;i>=t;i-=r)a=it(i/r|0,e[i],e[i+1],a);return a&&Xe(a,a.next)&&(at(a),a=a.next),a}function je(e,t){if(!e)return e;t||=e;let n=e,r;do if(r=!1,!n.steiner&&(Xe(n,n.next)||Ye(n.prev,n,n.next)===0)){if(at(n),n=t=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==t);return t}function Me(e,t,n,r,i,a,o){if(!e)return;!o&&a&&He(e,r,i,a);let s=e;for(;e.prev!==e.next;){let c=e.prev,l=e.next;if(a?Pe(e,r,i,a):Ne(e)){t.push(c.i,e.i,l.i),at(e),e=l.next,s=l.next;continue}if(e=l,e===s){o?o===1?(e=Fe(je(e),t),Me(e,t,n,r,i,a,2)):o===2&&Ie(e,t,n,r,i,a):Me(je(e),t,n,r,i,a,1);break}}}function Ne(e){let t=e.prev,n=e,r=e.next;if(Ye(t,n,r)>=0)return!1;let i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=Math.min(i,a,o),d=Math.min(s,c,l),f=Math.max(i,a,o),p=Math.max(s,c,l),m=r.next;for(;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&qe(i,s,a,c,o,l,m.x,m.y)&&Ye(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Pe(e,t,n,r){let i=e.prev,a=e,o=e.next;if(Ye(i,a,o)>=0)return!1;let s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=Math.min(s,c,l),m=Math.min(u,d,f),h=Math.max(s,c,l),g=Math.max(u,d,f),_=We(p,m,t,n,r),v=We(h,g,t,n,r),y=e.prevZ,b=e.nextZ;for(;y&&y.z>=_&&b&&b.z<=v;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==i&&y!==o&&qe(s,u,c,d,l,f,y.x,y.y)&&Ye(y.prev,y,y.next)>=0||(y=y.prevZ,b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==i&&b!==o&&qe(s,u,c,d,l,f,b.x,b.y)&&Ye(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;y&&y.z>=_;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==i&&y!==o&&qe(s,u,c,d,l,f,y.x,y.y)&&Ye(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;b&&b.z<=v;){if(b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==i&&b!==o&&qe(s,u,c,d,l,f,b.x,b.y)&&Ye(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function Fe(e,t){let n=e;do{let r=n.prev,i=n.next.next;!Xe(r,i)&&Ze(r,n,n.next,i)&&tt(r,i)&&tt(i,r)&&(t.push(r.i,n.i,i.i),at(n),at(n.next),n=e=i),n=n.next}while(n!==e);return je(n)}function Ie(e,t,n,r,i,a){let o=e;do{let e=o.next.next;for(;e!==o.prev;){if(o.i!==e.i&&Je(o,e)){let s=rt(o,e);o=je(o,o.next),s=je(s,s.next),Me(o,t,n,r,i,a,0),Me(s,t,n,r,i,a,0);return}e=e.next}o=o.next}while(o!==e)}function Le(e,t,n,r){let i=[];for(let n=0,a=t.length;n<a;n++){let o=Ae(e,t[n]*r,n<a-1?t[n+1]*r:e.length,r,!1);o===o.next&&(o.steiner=!0),i.push(Ge(o))}i.sort(Re);for(let e=0;e<i.length;e++)n=ze(i[e],n);return n}function Re(e,t){let n=e.x-t.x;return n===0&&(n=e.y-t.y,n===0&&(n=(e.next.y-e.y)/(e.next.x-e.x)-(t.next.y-t.y)/(t.next.x-t.x))),n}function ze(e,t){let n=Be(e,t);if(!n)return t;let r=rt(n,e);return je(r,r.next),je(n,n.next)}function Be(e,t){let n=t,r=e.x,i=e.y,a=-1/0,o;if(Xe(e,n))return n;do{if(Xe(e,n.next))return n.next;if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>a&&(a=e,o=n.x<n.next.x?n:n.next,e===r))return o}n=n.next}while(n!==t);if(!o)return null;let s=o,c=o.x,l=o.y,u=1/0;n=o;do{if(r>=n.x&&n.x>=c&&r!==n.x&&Ke(i<l?r:a,i,c,l,i<l?a:r,i,n.x,n.y)){let t=Math.abs(i-n.y)/(r-n.x);tt(n,e)&&(t<u||t===u&&(n.x>o.x||n.x===o.x&&Ve(o,n)))&&(o=n,u=t)}n=n.next}while(n!==s);return o}function Ve(e,t){return Ye(e.prev,e,t.prev)<0&&Ye(t.next,e,e.next)<0}function He(e,t,n,r){let i=e;do i.z===0&&(i.z=We(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,Ue(i)}function Ue(e){let t,n=1;do{let r=e,i;e=null;let a=null;for(t=0;r;){t++;let o=r,s=0;for(let e=0;e<n&&(s++,o=o.nextZ,o);e++);let c=n;for(;s>0||c>0&&o;)s!==0&&(c===0||!o||r.z<=o.z)?(i=r,r=r.nextZ,s--):(i=o,o=o.nextZ,c--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;r=o}a.nextZ=null,n*=2}while(t>1);return e}function We(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Ge(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function Ke(e,t,n,r,i,a,o,s){return(i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function qe(e,t,n,r,i,a,o,s){return!(e===o&&t===s)&&Ke(e,t,n,r,i,a,o,s)}function Je(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!et(e,t)&&(tt(e,t)&&tt(t,e)&&nt(e,t)&&(Ye(e.prev,e,t.prev)||Ye(e,t.prev,t))||Xe(e,t)&&Ye(e.prev,e,e.next)>0&&Ye(t.prev,t,t.next)>0)}function Ye(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function Xe(e,t){return e.x===t.x&&e.y===t.y}function Ze(e,t,n,r){let i=$e(Ye(e,t,n)),a=$e(Ye(e,t,r)),o=$e(Ye(n,r,e)),s=$e(Ye(n,r,t));return!!(i!==a&&o!==s||i===0&&Qe(e,n,t)||a===0&&Qe(e,r,t)||o===0&&Qe(n,e,r)||s===0&&Qe(n,t,r))}function Qe(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function $e(e){return e>0?1:e<0?-1:0}function et(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Ze(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function tt(e,t){return Ye(e.prev,e,e.next)<0?Ye(e,t,e.next)>=0&&Ye(e,e.prev,t)>=0:Ye(e,t,e.prev)<0||Ye(e,e.next,t)<0}function nt(e,t){let n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==e);return r}function rt(e,t){let n=ot(e.i,e.x,e.y),r=ot(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function it(e,t,n,r){let i=ot(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function at(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function ot(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function st(e,t,n,r){let i=0;for(let a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}var ct=11102230246251565e-32,lt=134217729,ut=3.000000000000001*ct;function dt(e,t,n,r,i){let a,o,s,c,l=t[0],u=r[0],d=0,f=0;u>l==u>-l?(a=l,l=t[++d]):(a=u,u=r[++f]);let p=0;if(d<e&&f<n)for(u>l==u>-l?(o=l+a,s=a-(o-l),l=t[++d]):(o=u+a,s=a-(o-u),u=r[++f]),a=o,s!==0&&(i[p++]=s);d<e&&f<n;)u>l==u>-l?(o=a+l,c=o-a,s=a-(o-c)+(l-c),l=t[++d]):(o=a+u,c=o-a,s=a-(o-c)+(u-c),u=r[++f]),a=o,s!==0&&(i[p++]=s);for(;d<e;)o=a+l,c=o-a,s=a-(o-c)+(l-c),l=t[++d],a=o,s!==0&&(i[p++]=s);for(;f<n;)o=a+u,c=o-a,s=a-(o-c)+(u-c),u=r[++f],a=o,s!==0&&(i[p++]=s);return(a!==0||p===0)&&(i[p++]=a),p}function ft(e,t){let n=t[0];for(let r=1;r<e;r++)n+=t[r];return n}function D(e){return new Float64Array(e)}var pt=(3+16*ct)*ct,mt=(2+12*ct)*ct,ht=(9+64*ct)*ct*ct,gt=D(4),_t=D(8),vt=D(12),yt=D(16),bt=D(4);function xt(e,t,n,r,i,a,o){let s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T=e-i,E=n-i,ee=t-a,te=r-a;b=T*te,f=lt*T,p=f-(f-T),m=T-p,f=lt*te,h=f-(f-te),g=te-h,x=m*g-(b-p*h-m*h-p*g),S=ee*E,f=lt*ee,p=f-(f-ee),m=ee-p,f=lt*E,h=f-(f-E),g=E-h,C=m*g-(S-p*h-m*h-p*g),_=x-C,d=x-_,gt[0]=x-(_+d)+(d-C),v=b+_,d=v-b,y=b-(v-d)+(_-d),_=y-S,d=y-_,gt[1]=y-(_+d)+(d-S),w=v+_,d=w-v,gt[2]=v-(w-d)+(_-d),gt[3]=w;let ne=ft(4,gt),re=mt*o;if(ne>=re||-ne>=re||(d=e-T,s=e-(T+d)+(d-i),d=n-E,l=n-(E+d)+(d-i),d=t-ee,c=t-(ee+d)+(d-a),d=r-te,u=r-(te+d)+(d-a),s===0&&c===0&&l===0&&u===0)||(re=ht*o+ut*Math.abs(ne),ne+=T*u+te*s-(ee*l+E*c),ne>=re||-ne>=re))return ne;b=s*te,f=lt*s,p=f-(f-s),m=s-p,f=lt*te,h=f-(f-te),g=te-h,x=m*g-(b-p*h-m*h-p*g),S=c*E,f=lt*c,p=f-(f-c),m=c-p,f=lt*E,h=f-(f-E),g=E-h,C=m*g-(S-p*h-m*h-p*g),_=x-C,d=x-_,bt[0]=x-(_+d)+(d-C),v=b+_,d=v-b,y=b-(v-d)+(_-d),_=y-S,d=y-_,bt[1]=y-(_+d)+(d-S),w=v+_,d=w-v,bt[2]=v-(w-d)+(_-d),bt[3]=w;let ie=dt(4,gt,4,bt,_t);b=T*u,f=lt*T,p=f-(f-T),m=T-p,f=lt*u,h=f-(f-u),g=u-h,x=m*g-(b-p*h-m*h-p*g),S=ee*l,f=lt*ee,p=f-(f-ee),m=ee-p,f=lt*l,h=f-(f-l),g=l-h,C=m*g-(S-p*h-m*h-p*g),_=x-C,d=x-_,bt[0]=x-(_+d)+(d-C),v=b+_,d=v-b,y=b-(v-d)+(_-d),_=y-S,d=y-_,bt[1]=y-(_+d)+(d-S),w=v+_,d=w-v,bt[2]=v-(w-d)+(_-d),bt[3]=w;let ae=dt(ie,_t,4,bt,vt);return b=s*u,f=lt*s,p=f-(f-s),m=s-p,f=lt*u,h=f-(f-u),g=u-h,x=m*g-(b-p*h-m*h-p*g),S=c*l,f=lt*c,p=f-(f-c),m=c-p,f=lt*l,h=f-(f-l),g=l-h,C=m*g-(S-p*h-m*h-p*g),_=x-C,d=x-_,bt[0]=x-(_+d)+(d-C),v=b+_,d=v-b,y=b-(v-d)+(_-d),_=y-S,d=y-_,bt[1]=y-(_+d)+(d-S),w=v+_,d=w-v,bt[2]=v-(w-d)+(_-d),bt[3]=w,yt[dt(ae,vt,4,bt,yt)-1]}function St(e,t,n,r,i,a){let o=(t-a)*(n-i),s=(e-i)*(r-a),c=o-s,l=Math.abs(o+s);return Math.abs(c)>=pt*l?c:-xt(e,t,n,r,i,a,l)}(7+56*ct)*ct,(3+28*ct)*ct,(26+288*ct)*ct*ct,D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(8),D(8),D(8),D(4),D(8),D(8),D(16),D(12),D(192),D(192),(10+96*ct)*ct,(4+48*ct)*ct,(44+576*ct)*ct*ct,D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(8),D(8),D(8),D(8),D(8),D(8),D(8),D(8),D(8),D(4),D(4),D(4),D(8),D(16),D(16),D(16),D(32),D(32),D(48),D(64),D(1152),D(1152),(16+224*ct)*ct,(5+72*ct)*ct,(71+1408*ct)*ct*ct,D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(4),D(24),D(24),D(24),D(24),D(24),D(24),D(24),D(24),D(24),D(24),D(1152),D(1152),D(1152),D(1152),D(1152),D(2304),D(2304),D(3456),D(5760),D(8),D(8),D(8),D(16),D(24),D(48),D(48),D(96),D(192),D(384),D(384),D(384),D(768),D(96),D(96),D(96),D(1152);var Ct=2**-52,wt=new Uint32Array(512),Tt=class e{static from(t,n=Nt,r=Pt){let i=t.length,a=new Float64Array(i*2);for(let e=0;e<i;e++){let i=t[e];a[2*e]=n(i),a[2*e+1]=r(i)}return new e(a)}constructor(e){let t=e.length>>1;if(t>0&&typeof e[0]!=`number`)throw Error(`Expected coords to contain numbers.`);this.coords=e;let n=Math.max(2*t-5,0);this._triangles=new Uint32Array(n*3),this._halfedges=new Int32Array(n*3),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.trianglesLen=0,this._cx=0,this._cy=0,this._hullStart=0,this.hull=this._triangles,this.triangles=this._triangles,this.halfedges=this._halfedges,this.update()}update(){let{coords:e,_hullPrev:t,_hullNext:n,_hullTri:r,_hullHash:i}=this,a=e.length>>1,o=1/0,s=1/0,c=-1/0,l=-1/0;for(let t=0;t<a;t++){let n=e[2*t],r=e[2*t+1];n<o&&(o=n),r<s&&(s=r),n>c&&(c=n),r>l&&(l=r),this._ids[t]=t}let u=(o+c)/2,d=(s+l)/2,f=0,p=0,m=0;for(let t=0,n=1/0;t<a;t++){let r=Dt(u,d,e[2*t],e[2*t+1]);r<n&&(f=t,n=r)}let h=e[2*f],g=e[2*f+1];for(let t=0,n=1/0;t<a;t++){if(t===f)continue;let r=Dt(h,g,e[2*t],e[2*t+1]);r<n&&r>0&&(p=t,n=r)}let _=e[2*p],v=e[2*p+1],y=1/0;for(let t=0;t<a;t++){if(t===f||t===p)continue;let n=kt(h,g,_,v,e[2*t],e[2*t+1]);n<y&&(m=t,y=n)}let b=e[2*m],x=e[2*m+1];if(y===1/0){for(let t=0;t<a;t++)this._dists[t]=e[2*t]-e[0]||e[2*t+1]-e[1];jt(this._ids,this._dists,0,a-1);let t=new Uint32Array(a),n=0;for(let e=0,r=-1/0;e<a;e++){let i=this._ids[e],a=this._dists[i];a>r&&(t[n++]=i,r=a)}this.hull=t.subarray(0,n),this.triangles=new Uint32Array,this.halfedges=new Int32Array;return}if(St(h,g,_,v,b,x)<0){let e=p,t=_,n=v;p=m,_=b,v=x,m=e,b=t,x=n}let S=At(h,g,_,v,b,x);this._cx=S.x,this._cy=S.y;for(let t=0;t<a;t++)this._dists[t]=Dt(e[2*t],e[2*t+1],S.x,S.y);jt(this._ids,this._dists,0,a-1),this._hullStart=f;let C=3;n[f]=t[m]=p,n[p]=t[f]=m,n[m]=t[p]=f,r[f]=0,r[p]=1,r[m]=2,i.fill(-1),i[this._hashKey(h,g)]=f,i[this._hashKey(_,v)]=p,i[this._hashKey(b,x)]=m,this.trianglesLen=0,this._addTriangle(f,p,m,-1,-1,-1);for(let a=0,o=0,s=0;a<this._ids.length;a++){let c=this._ids[a],l=e[2*c],u=e[2*c+1];if(a>0&&Math.abs(l-o)<=Ct&&Math.abs(u-s)<=Ct||(o=l,s=u,c===f||c===p||c===m))continue;let d=0;for(let e=0,t=this._hashKey(l,u);e<this._hashSize&&(d=i[(t+e)%this._hashSize],!(d!==-1&&d!==n[d]));e++);d=t[d];let h=d,g;for(;g=n[h],St(l,u,e[2*h],e[2*h+1],e[2*g],e[2*g+1])>=0;)if(h=g,h===d){h=-1;break}if(h===-1)continue;let _=this._addTriangle(h,c,n[h],-1,-1,r[h]);r[c]=this._legalize(_+2),r[h]=_,C++;let v=n[h];for(;g=n[v],St(l,u,e[2*v],e[2*v+1],e[2*g],e[2*g+1])<0;)_=this._addTriangle(v,c,g,r[c],-1,r[v]),r[c]=this._legalize(_+2),n[v]=v,C--,v=g;if(h===d)for(;g=t[h],St(l,u,e[2*g],e[2*g+1],e[2*h],e[2*h+1])<0;)_=this._addTriangle(g,c,h,-1,r[h],r[g]),this._legalize(_+2),r[g]=_,n[h]=h,C--,h=g;this._hullStart=t[c]=h,n[h]=t[v]=c,n[c]=v,i[this._hashKey(l,u)]=c,i[this._hashKey(e[2*h],e[2*h+1])]=h}this.hull=new Uint32Array(C);for(let e=0,t=this._hullStart;e<C;e++)this.hull[e]=t,t=n[t];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(Et(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){let{_triangles:t,_halfedges:n,coords:r}=this,i=0,a=0;for(;;){let o=n[e],s=e-e%3;if(a=s+(e+2)%3,o===-1){if(i===0)break;e=wt[--i];continue}let c=o-o%3,l=s+(e+1)%3,u=c+(o+2)%3,d=t[a],f=t[e],p=t[l],m=t[u];if(Ot(r[2*d],r[2*d+1],r[2*f],r[2*f+1],r[2*p],r[2*p+1],r[2*m],r[2*m+1])){t[e]=m,t[o]=d;let r=n[u];if(r===-1){let t=this._hullStart;do{if(this._hullTri[t]===u){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,r),this._link(o,n[a]),this._link(a,u);let s=c+(o+1)%3;i<wt.length&&(wt[i++]=s)}else{if(i===0)break;e=wt[--i]}}return a}_link(e,t){this._halfedges[e]=t,t!==-1&&(this._halfedges[t]=e)}_addTriangle(e,t,n,r,i,a){let o=this.trianglesLen;return this._triangles[o]=e,this._triangles[o+1]=t,this._triangles[o+2]=n,this._link(o,r),this._link(o+1,i),this._link(o+2,a),this.trianglesLen+=3,o}};function Et(e,t){let n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}function Dt(e,t,n,r){let i=e-n,a=t-r;return i*i+a*a}function Ot(e,t,n,r,i,a,o,s){let c=e-o,l=t-s,u=n-o,d=r-s,f=i-o,p=a-s,m=c*c+l*l,h=u*u+d*d,g=f*f+p*p;return c*(d*g-h*p)-l*(u*g-h*f)+m*(u*p-d*f)<0}function kt(e,t,n,r,i,a){let o=n-e,s=r-t,c=i-e,l=a-t,u=o*o+s*s,d=c*c+l*l,f=.5/(o*l-s*c),p=(l*u-s*d)*f,m=(o*d-c*u)*f;return p*p+m*m}function At(e,t,n,r,i,a){let o=n-e,s=r-t,c=i-e,l=a-t,u=o*o+s*s,d=c*c+l*l,f=.5/(o*l-s*c);return{x:e+(l*u-s*d)*f,y:t+(o*d-c*u)*f}}function jt(e,t,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){let r=e[i],a=t[r],o=i-1;for(;o>=n&&t[e[o]]>a;)e[o+1]=e[o--];e[o+1]=r}else{let i=n+r>>1,a=n+1,o=r;Mt(e,i,a),t[e[n]]>t[e[r]]&&Mt(e,n,r),t[e[a]]>t[e[r]]&&Mt(e,a,r),t[e[n]]>t[e[a]]&&Mt(e,n,a);let s=e[a],c=t[s];for(;;){do a++;while(t[e[a]]<c);do o--;while(t[e[o]]>c);if(o<a)break;Mt(e,a,o)}e[n+1]=e[o],e[o]=s,r-a+1>=o-n?(jt(e,t,a,r),jt(e,t,n,o-1)):(jt(e,t,n,o-1),jt(e,t,a,r))}}function Mt(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Nt(e){return e[0]}function Pt(e){return e[1]}var Ft=class e{static inferRadarDims(e){if(!Array.isArray(e)||e.length<64)return null;let t=[];for(let n=1;n<e.length;n+=1){let r=e[n-1],i=e[n];if(Array.isArray(r)&&Array.isArray(i)&&Number.isFinite(r[0])&&Number.isFinite(r[1])&&Number.isFinite(i[0])&&Number.isFinite(i[1])){let e=i[0]-r[0],n=i[1]-r[1],a=Math.sqrt(e*e+n*n);Number.isFinite(a)&&a>0&&t.push(a)}}if(t.length<16)return null;let n=t.slice().sort((e,t)=>e-t),r=n[Math.floor(n.length*.5)]||0;if(!(r>0))return null;let i=r*8,a=[0];for(let t=1;t<e.length;t+=1){let n=e[t-1],r=e[t];if(Array.isArray(n)&&Array.isArray(r)&&Number.isFinite(n[0])&&Number.isFinite(n[1])&&Number.isFinite(r[0])&&Number.isFinite(r[1])){let e=r[0]-n[0],o=r[1]-n[1];Math.sqrt(e*e+o*o)>i&&a.push(t)}}if(a.length<8)return null;let o=1/0;for(let t=0;t<a.length;t+=1){let n=a[t],r=(t+1<a.length?a[t+1]:e.length)-n;r<o&&(o=r)}return o>=8?[a.length,o]:null}static buildRadarCellGeometry(e,t,n=3,r=0){let[i,a]=t,o=i*a;if(i<2||a<2||!Array.isArray(e)||e.length<o)return null;let s=i*(a-1),c=new Float32Array(s*4*n),l=new Uint32Array(s*6),u=0,d=0,f=0;for(let t=0;t<i;t+=1){let o=(t+1)%i;for(let i=0;i<a;i+=1){if(i>=a-1)continue;let s=t*a+i,p=s+1,m=o*a+i,h=m+1,g=e[s],_=e[p],v=e[m],y=e[h],b=Array.isArray(g)?g:[0,0],x=Array.isArray(_)?_:[0,0],S=Array.isArray(v)?v:[0,0],C=Array.isArray(y)?y:[0,0];c[u]=Number.isFinite(b[0])?b[0]:0,c[u+1]=Number.isFinite(b[1])?b[1]:0,c[u+2]=r,c[u+3]=Number.isFinite(x[0])?x[0]:0,c[u+4]=Number.isFinite(x[1])?x[1]:0,c[u+5]=r,c[u+6]=Number.isFinite(C[0])?C[0]:0,c[u+7]=Number.isFinite(C[1])?C[1]:0,c[u+8]=r,c[u+9]=Number.isFinite(S[0])?S[0]:0,c[u+10]=Number.isFinite(S[1])?S[1]:0,c[u+11]=r,l[d]=f,l[d+1]=f+2,l[d+2]=f+1,l[d+3]=f,l[d+4]=f+3,l[d+5]=f+2,u+=4*n,d+=6,f+=4}}return[c,l]}static buildSphericalQuadCenterGeometry(e,t,n=3,r=0){let[i,a]=t,o=i*a;if(i<2||a<2||!Array.isArray(e)||e.length<o)return null;let s=i*(a-1),c=new Float32Array((o+s)*n),l=new Uint32Array(s*12);for(let t=0;t<o;t+=1){let i=t*n,a=e[t],o=Array.isArray(a)&&Number.isFinite(a[0])?a[0]:0,s=Array.isArray(a)&&Number.isFinite(a[1])?a[1]:0;c[i]=o,c[i+1]=s,c[i+2]=r}let u=o,d=0;for(let t=0;t<i;t+=1){let o=(t+1)%i;for(let i=0;i<a-1;i+=1){let s=t*a+i,f=s+1,p=o*a+i,m=p+1,h=e[s],g=e[f],_=e[p],v=e[m],y=u*n,b=Array.isArray(h)&&Number.isFinite(h[0])?h[0]:0,x=Array.isArray(h)&&Number.isFinite(h[1])?h[1]:0,S=Array.isArray(g)&&Number.isFinite(g[0])?g[0]:0,C=Array.isArray(g)&&Number.isFinite(g[1])?g[1]:0,w=Array.isArray(_)&&Number.isFinite(_[0])?_[0]:0,T=Array.isArray(_)&&Number.isFinite(_[1])?_[1]:0,E=Array.isArray(v)&&Number.isFinite(v[0])?v[0]:0,ee=Array.isArray(v)&&Number.isFinite(v[1])?v[1]:0;c[y]=(b+S+w+E)*.25,c[y+1]=(x+C+T+ee)*.25,c[y+2]=r,l[d]=s,l[d+1]=u,l[d+2]=f,l[d+3]=f,l[d+4]=u,l[d+5]=m,l[d+6]=m,l[d+7]=u,l[d+8]=p,l[d+9]=p,l[d+10]=u,l[d+11]=s,d+=12,u+=1}}return[c,l]}static compute1dBoundaries(e){let t=e.length,n=new Float64Array(t+1);if(t===0)return n;if(t===1)return n[0]=e[0]-.5,n[1]=e[0]+.5,n;n[0]=e[0]-(e[1]-e[0])*.5;for(let r=1;r<t;r+=1)n[r]=(e[r-1]+e[r])*.5;return n[t]=e[t-1]+(e[t-1]-e[t-2])*.5,n}static midpointBoundary(e,t,n){if(e!=null&&n!=null)return[(e+t)*.5,(t+n)*.5];if(n!=null){let e=(n-t)*.5;return[t-e,t+e]}if(e!=null){let n=(t-e)*.5;return[t-n,t+n]}return[t-.5,t+.5]}static buildGridCellGeometry(e,t,n=3,r=0){let[i,a]=t,o=i*a,s=(t,n)=>t<0||t>=i||n<0||n>=a?null:e[t*a+n],c=e=>{let t=0,n=0,r=0;for(let i=0;i<e.length;i+=1){let a=e[i];if(!Array.isArray(a))continue;let o=a[0],s=a[1];!Number.isFinite(o)||!Number.isFinite(s)||(t+=o,n+=s,r+=1)}return r===0?[0,0]:[t/r,n/r]},l=new Float32Array(o*4*n),u=new Uint32Array(o*6),d=0,f=0,p=0;for(let e=0;e<i;e+=1)for(let t=0;t<a;t+=1){let i=s(e,t),[a,o]=c([i,s(e,t-1),s(e-1,t),s(e-1,t-1)]),[m,h]=c([i,s(e,t+1),s(e-1,t),s(e-1,t+1)]),[g,_]=c([i,s(e,t+1),s(e+1,t),s(e+1,t+1)]),[v,y]=c([i,s(e,t-1),s(e+1,t),s(e+1,t-1)]);l[d]=a,l[d+1]=o,l[d+2]=r,l[d+3]=m,l[d+4]=h,l[d+5]=r,l[d+6]=g,l[d+7]=_,l[d+8]=r,l[d+9]=v,l[d+10]=y,l[d+11]=r,u[f]=p,u[f+1]=p+1,u[f+2]=p+2,u[f+3]=p,u[f+4]=p+2,u[f+5]=p+3,d+=4*n,f+=6,p+=4}return[l,u]}static flattenStructuredPoints(e,t){if(!t||!Array.isArray(e[0])||!Array.isArray(e[0][0]))return e;let[n,r]=t,i=Array(n*r),a=0;for(let t=0;t<n;t+=1)for(let n=0;n<r;n+=1)i[a]=e[t][n],a+=1;return i}static flattenStructuredValues(e,t){if(!t||!Array.isArray(e[0]))return e;let[n,r]=t,i=new Float32Array(n*r),a=0;for(let t=0;t<n;t+=1)for(let n=0;n<r;n+=1)i[a]=e[t][n],a+=1;return i}static triangulate(t,n,r,i=1,a=0,o=1,s=`delaunay`){switch(n){case`data`:{let n=Array.isArray(r)?e.flattenStructuredValues(t,r):t;if(s===`spherical-cells`&&Array.isArray(r)){let[e,t]=r,a=e*t,s=new Float32Array(a*4*i),c=0;for(let r=0;r<e;r+=1)for(let e=0;e<t;e+=1){let i=r*t+e,a=(Number.isFinite(n[i])?n[i]:NaN)*o;s[c]=a,s[c+1]=a,s[c+2]=a,s[c+3]=a,c+=4}return s}if(s===`spherical`&&Array.isArray(r)){let[e,t]=r,a=e*t,s=e*(t-1),c=new Float32Array((a+s)*i);for(let e=0;e<a;e+=1)c[e]=(Number.isFinite(n[e])?n[e]:NaN)*o;let l=a;for(let r=0;r<e;r+=1){let i=(r+1)%e;for(let e=0;e<t-1;e+=1){let a=r*t+e,s=a+1,u=i*t+e,d=u+1,f=n[a],p=n[s],m=n[u],h=n[d],g=0,_=0;Number.isFinite(f)&&(g+=f,_+=1),Number.isFinite(p)&&(g+=p,_+=1),Number.isFinite(m)&&(g+=m,_+=1),Number.isFinite(h)&&(g+=h,_+=1),c[l]=_>0?g/_*o:NaN,l+=1}}return c}if(s===`quadkey-cells`&&Array.isArray(r)){let e=new Float32Array(n.length*4*i),t=0;for(let r=0;r<n.length;r+=1){let i=n[r]*o;e[t]=i,e[t+1]=i,e[t+2]=i,e[t+3]=i,t+=4}return e}if(s===`quadkey`&&Array.isArray(r)){let[e,t]=r,a=e*t,s=Math.max(0,(e-1)*(t-1)),c=new Float32Array((a+s)*i);for(let e=0;e<a;e+=1)c[e]=n[e]*o;let l=a;for(let r=0;r<e-1;r+=1)for(let e=0;e<t-1;e+=1){let i=r*t+e,a=i+1,s=(r+1)*t+e,u=s+1;c[l]=(n[i]+n[a]+n[s]+n[u])*.25*o,l+=1}return c}let a=new Float32Array(n.length*i);for(let e=0;e<n.length;e+=1)a[e]=n[e]*o;return a}case`positions`:{let n=Array.isArray(r)?e.flattenStructuredPoints(t,r):t;if(s===`spherical-cells`&&Array.isArray(r)){let t=e.buildGridCellGeometry(n,r,i,a);if(t){let[e,n]=t,r=new Uint32Array(n.length);for(let e=0;e<n.length;e+=3)r[e]=n[e],r[e+1]=n[e+2],r[e+2]=n[e+1];return[e,r]}}if(s===`spherical`&&Array.isArray(r)){let t=e.buildSphericalQuadCenterGeometry(n,r,i,a);if(t)return t}if(s===`quadkey-cells`&&Array.isArray(r))return e.buildGridCellGeometry(n,r,i,a);let o=n.length,c=Array.isArray(r),[l,u]=c?r:[0,0],d=s===`quadkey`&&c?Math.max(0,(l-1)*(u-1)):0,f=new Float32Array((o+d)*i),p=new Float32Array(o*2);for(let e=0;e<n.length;e+=1){let t=e*i,r=e*2,o=n[e][0],s=n[e][1];f[t]=o,f[t+1]=s,f[t+2]=a,p[r]=o,p[r+1]=s}if(s===`quadkey`&&c){let e=new Uint32Array((l-1)*(u-1)*12),t=0,r=l*u;for(let o=0;o<l-1;o+=1)for(let s=0;s<u-1;s+=1){let c=o*u+s,l=c+1,d=(o+1)*u+s,p=d+1,m=n[c],h=n[l],g=n[d],_=n[p],v=r*i;f[v]=(m[0]+h[0]+g[0]+_[0])*.25,f[v+1]=(m[1]+h[1]+g[1]+_[1])*.25,f[v+2]=a,e[t]=c,e[t+1]=l,e[t+2]=r,e[t+3]=l,e[t+4]=p,e[t+5]=r,e[t+6]=p,e[t+7]=d,e[t+8]=r,e[t+9]=d,e[t+10]=c,e[t+11]=r,t+=12,r+=1}return[f,e]}return[f,s===`unstructured`||s===`spherical`||s===`spherical-cells`||s===`delaunay`?(()=>{let{triangles:e}=Tt.from(n),t=new Uint32Array(e.length);for(let n=0;n<e.length;n+=3)t[n]=e[n],t[n+1]=e[n+2],t[n+2]=e[n+1];return t})():new Uint32Array(ke(p))]}default:throw Error(`Unsupported triangulation type: ${n}`)}}};function It(e){let t=1/0,n=-1/0,r=1/0,i=-1/0;for(let a=0;a<e.length;a+=1){let o=e[a];if(o&&Number.isFinite(o[0])&&Number.isFinite(o[1])){let[e,a]=o;e<t&&(t=e),e>n&&(n=e),a<r&&(r=a),a>i&&(i=a)}}return!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(i)?null:{minX:t,maxX:n,minY:r,maxY:i}}function Lt(e,t,n){return`${Math.round(e[0]/t)}:${Math.round(e[1]/n)}`}function Rt(e,t,n,r,i){if(!Number.isFinite(n)||!Number.isFinite(r)||n<i&&r<i||n>i&&r>i)return null;let a=r-n;if(Math.abs(a)<1e-15)return null;let o=(i-n)/a;return o<0||o>1?null:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])]}function zt(e){let t=[],n=1e-12;for(let r=0;r<e.length;r+=1){let i=e[r],a=!1;for(let e=0;e<t.length;e+=1){let r=t[e];if(Math.abs(i[0]-r[0])<=n&&Math.abs(i[1]-r[1])<=n){a=!0;break}}a||t.push(i)}return t}function Bt(e,t){if(!e||e.length===0)return[];let n=Math.max(1e-12,t.maxX-t.minX),r=Math.max(1e-12,t.maxY-t.minY),i=n*1e-6,a=r*1e-6,o=new Map,s=[];function c(e,t){let n=o.get(e);return n||(n={point:t,edges:[]},o.set(e,n)),n}for(let t=0;t<e.length;t+=1){let[n,r]=e[t],o=Lt(n,i,a),l=Lt(r,i,a);if(o!==l){let e=s.length;s.push({aKey:o,bKey:l,used:!1}),c(o,n).edges.push(e),c(l,r).edges.push(e)}}function l(e,t){return e.aKey===t?e.bKey:e.aKey}function u(e,t){let n=[o.get(e).point],r=e,i=t;for(;i!=null;){let e=s[i];if(e.used)break;e.used=!0;let t=l(e,r);n.push(o.get(t).point);let a=o.get(t),c=null;for(let e=0;e<a.edges.length;e+=1){let t=a.edges[e];if(!s[t].used){c=t;break}}r=t,i=c}return n}let d=[];for(let[e,t]of o.entries())if(t.edges.length!==2)for(let n=0;n<t.edges.length;n+=1){let r=t.edges[n];s[r].used||d.push(u(e,r))}for(let[e,t]of o.entries())for(let n=0;n<t.edges.length;n+=1){let r=t.edges[n];s[r].used||d.push(u(e,r))}return d.filter(e=>e.length>1)}function Vt(e,t,n,r=null){let i=e,a=t,o=Math.min(i.length,a.length),s=[],c=[];for(let e=0;e<o;e+=1){let t=i[e];t&&Number.isFinite(t[0])&&Number.isFinite(t[1])&&(s.push(t),c.push(a[e]))}let l=s.length;if(l<3)return{type:`FeatureCollection`,features:[]};let u=(n||[]).filter(e=>Number.isFinite(e));if(u.length===0)return{type:`FeatureCollection`,features:[]};let[d,f]=Ft.triangulate(s,`positions`,null,3,0,1,`delaunay`);if(!f||f.length<3)return{type:`FeatureCollection`,features:[]};let p=Array(d.length/3);for(let e=0;e<p.length;e+=1){let t=e*3;p[e]=[d[t],d[t+1]]}let m=It(s);if(!m)return{type:`FeatureCollection`,features:[]};let h=[];for(let e=0;e<u.length;e+=1){let t=u[e],n=[];for(let e=0;e<f.length;e+=3){let r=f[e],i=f[e+1],a=f[e+2];if(r<l&&i<l&&a<l){let e=c[r],o=c[i],s=c[a];if(Number.isFinite(e)&&Number.isFinite(o)&&Number.isFinite(s)){let c=p[r],l=p[i],u=p[a],d=zt([Rt(c,l,e,o,t),Rt(l,u,o,s,t),Rt(u,c,s,e,t)].filter(Boolean));d.length>=2&&n.push([d[0],d[1]])}}}let r=Bt(n,m);r.length>0&&h.push({type:`Feature`,geometry:{type:`MultiLineString`,coordinates:r},properties:[{value:t}]})}return{type:`FeatureCollection`,features:h}}var O=[],k=[],A=[],j=[],M=[],N=[],P=[],F=[],I=[],L=[],R=[],z=[],B=[],V=[],H=[],U=[],W=[],G=[],K=[],q=[],J=[],Y=[],X=[],Z=[];P[85]=L[85]=-1,F[85]=R[85]=0,I[85]=z[85]=1,K[85]=Y[85]=1,q[85]=X[85]=0,J[85]=Z[85]=1,O[85]=j[85]=0,k[85]=M[85]=-1,A[85]=H[85]=0,U[85]=B[85]=0,W[85]=V[85]=1,N[85]=G[85]=1,Y[1]=Y[169]=0,X[1]=X[169]=-1,Z[1]=Z[169]=0,B[1]=B[169]=-1,V[1]=V[169]=0,H[1]=H[169]=0,L[4]=L[166]=0,R[4]=R[166]=-1,z[4]=z[166]=1,U[4]=U[166]=1,W[4]=W[166]=0,G[4]=G[166]=0,P[16]=P[154]=0,F[16]=F[154]=1,I[16]=I[154]=1,j[16]=j[154]=1,M[16]=M[154]=0,N[16]=N[154]=1,K[64]=K[106]=0,q[64]=q[106]=1,J[64]=J[106]=0,O[64]=O[106]=-1,k[64]=k[106]=0,A[64]=A[106]=1,K[2]=K[168]=0,q[2]=q[168]=-1,J[2]=J[168]=1,Y[2]=Y[168]=0,X[2]=X[168]=-1,Z[2]=Z[168]=0,B[2]=B[168]=-1,V[2]=V[168]=0,H[2]=H[168]=0,U[2]=U[168]=-1,W[2]=W[168]=0,G[2]=G[168]=1,P[8]=P[162]=0,F[8]=F[162]=-1,I[8]=I[162]=0,L[8]=L[162]=0,R[8]=R[162]=-1,z[8]=z[162]=1,B[8]=B[162]=1,V[8]=V[162]=0,H[8]=H[162]=1,U[8]=U[162]=1,W[8]=W[162]=0,G[8]=G[162]=0,P[32]=P[138]=0,F[32]=F[138]=1,I[32]=I[138]=1,L[32]=L[138]=0,R[32]=R[138]=1,z[32]=z[138]=0,O[32]=O[138]=1,k[32]=k[138]=0,A[32]=A[138]=0,j[32]=j[138]=1,M[32]=M[138]=0,N[32]=N[138]=1,Y[128]=Y[42]=0,X[128]=X[42]=1,Z[128]=Z[42]=1,K[128]=K[42]=0,q[128]=q[42]=1,J[128]=J[42]=0,O[128]=O[42]=-1,k[128]=k[42]=0,A[128]=A[42]=1,j[128]=j[42]=-1,M[128]=M[42]=0,N[128]=N[42]=0,L[5]=L[165]=-1,R[5]=R[165]=0,z[5]=z[165]=0,Y[5]=Y[165]=1,X[5]=X[165]=0,Z[5]=Z[165]=0,U[20]=U[150]=0,W[20]=W[150]=1,G[20]=G[150]=1,j[20]=j[150]=0,M[20]=M[150]=-1,N[20]=N[150]=1,P[80]=P[90]=-1,F[80]=F[90]=0,I[80]=I[90]=1,K[80]=K[90]=1,q[80]=q[90]=0,J[80]=J[90]=1,B[65]=B[105]=0,V[65]=V[105]=1,H[65]=H[105]=0,O[65]=O[105]=0,k[65]=k[105]=-1,A[65]=A[105]=0,P[160]=P[10]=-1,F[160]=F[10]=0,I[160]=I[10]=1,L[160]=L[10]=-1,R[160]=R[10]=0,z[160]=z[10]=0,Y[160]=Y[10]=1,X[160]=X[10]=0,Z[160]=Z[10]=0,K[160]=K[10]=1,q[160]=q[10]=0,J[160]=J[10]=1,U[130]=U[40]=0,W[130]=W[40]=1,G[130]=G[40]=1,B[130]=B[40]=0,V[130]=V[40]=1,H[130]=H[40]=0,O[130]=O[40]=0,k[130]=k[40]=-1,A[130]=A[40]=0,j[130]=j[40]=0,M[130]=M[40]=-1,N[130]=N[40]=1,L[37]=L[133]=0,R[37]=R[133]=1,z[37]=z[133]=1,Y[37]=Y[133]=0,X[37]=X[133]=1,Z[37]=Z[133]=0,O[37]=O[133]=-1,k[37]=k[133]=0,A[37]=A[133]=0,j[37]=j[133]=1,M[37]=M[133]=0,N[37]=N[133]=0,U[148]=U[22]=-1,W[148]=W[22]=0,G[148]=G[22]=0,Y[148]=Y[22]=0,X[148]=X[22]=-1,Z[148]=Z[22]=1,K[148]=K[22]=0,q[148]=q[22]=1,J[148]=J[22]=1,j[148]=j[22]=-1,M[148]=M[22]=0,N[148]=N[22]=1,P[82]=P[88]=0,F[82]=F[88]=-1,I[82]=I[88]=1,U[82]=U[88]=1,W[82]=W[88]=0,G[82]=G[88]=1,B[82]=B[88]=-1,V[82]=V[88]=0,H[82]=H[88]=1,K[82]=K[88]=0,q[82]=q[88]=-1,J[82]=J[88]=0,P[73]=P[97]=0,F[73]=F[97]=1,I[73]=I[97]=0,L[73]=L[97]=0,R[73]=R[97]=-1,z[73]=z[97]=0,B[73]=B[97]=1,V[73]=V[97]=0,H[73]=H[97]=0,O[73]=O[97]=1,k[73]=k[97]=0,A[73]=A[97]=1,P[145]=P[25]=0,F[145]=F[25]=-1,I[145]=I[25]=0,B[145]=B[25]=1,V[145]=V[25]=0,H[145]=H[25]=1,Y[145]=Y[25]=0,X[145]=X[25]=1,Z[145]=Z[25]=1,j[145]=j[25]=-1,M[145]=M[25]=0,N[145]=N[25]=0,L[70]=L[100]=0,R[70]=R[100]=1,z[70]=z[100]=0,U[70]=U[100]=-1,W[70]=W[100]=0,G[70]=G[100]=1,K[70]=K[100]=0,q[70]=q[100]=-1,J[70]=J[100]=1,O[70]=O[100]=1,k[70]=k[100]=0,A[70]=A[100]=0,L[101]=L[69]=0,R[101]=R[69]=1,z[101]=z[69]=0,O[101]=O[69]=1,k[101]=k[69]=0,A[101]=A[69]=0,Y[149]=Y[21]=0,X[149]=X[21]=1,Z[149]=Z[21]=1,j[149]=j[21]=-1,M[149]=M[21]=0,N[149]=N[21]=0,U[86]=U[84]=-1,W[86]=W[84]=0,G[86]=G[84]=1,K[86]=K[84]=0,q[86]=q[84]=-1,J[86]=J[84]=1,P[89]=P[81]=0,F[89]=F[81]=-1,I[89]=I[81]=0,B[89]=B[81]=1,V[89]=V[81]=0,H[89]=H[81]=1,P[96]=P[74]=0,F[96]=F[74]=1,I[96]=I[74]=0,L[96]=L[74]=-1,R[96]=R[74]=0,z[96]=z[74]=1,K[96]=K[74]=1,q[96]=q[74]=0,J[96]=J[74]=0,O[96]=O[74]=1,k[96]=k[74]=0,A[96]=A[74]=1,P[24]=P[146]=0,F[24]=F[146]=-1,I[24]=I[146]=1,U[24]=U[146]=1,W[24]=W[146]=0,G[24]=G[146]=1,B[24]=B[146]=0,V[24]=V[146]=1,H[24]=H[146]=1,j[24]=j[146]=0,M[24]=M[146]=-1,N[24]=N[146]=0,L[6]=L[164]=-1,R[6]=R[164]=0,z[6]=z[164]=1,U[6]=U[164]=-1,W[6]=W[164]=0,G[6]=G[164]=0,Y[6]=Y[164]=0,X[6]=X[164]=-1,Z[6]=Z[164]=1,K[6]=K[164]=1,q[6]=q[164]=0,J[6]=J[164]=0,B[129]=B[41]=0,V[129]=V[41]=1,H[129]=H[41]=1,Y[129]=Y[41]=0,X[129]=X[41]=1,Z[129]=Z[41]=0,O[129]=O[41]=-1,k[129]=k[41]=0,A[129]=A[41]=0,j[129]=j[41]=0,M[129]=M[41]=-1,N[129]=N[41]=0,U[66]=U[104]=0,W[66]=W[104]=1,G[66]=G[104]=0,B[66]=B[104]=-1,V[66]=V[104]=0,H[66]=H[104]=1,K[66]=K[104]=0,q[66]=q[104]=-1,J[66]=J[104]=0,O[66]=O[104]=0,k[66]=k[104]=-1,A[66]=A[104]=1,P[144]=P[26]=-1,F[144]=F[26]=0,I[144]=I[26]=0,Y[144]=Y[26]=1,X[144]=X[26]=0,Z[144]=Z[26]=1,K[144]=K[26]=0,q[144]=q[26]=1,J[144]=J[26]=1,j[144]=j[26]=-1,M[144]=M[26]=0,N[144]=N[26]=1,L[36]=L[134]=0,R[36]=R[134]=1,z[36]=z[134]=1,U[36]=U[134]=0,W[36]=W[134]=1,G[36]=G[134]=0,O[36]=O[134]=0,k[36]=k[134]=-1,A[36]=A[134]=1,j[36]=j[134]=1,M[36]=M[134]=0,N[36]=N[134]=0,P[9]=P[161]=-1,F[9]=F[161]=0,I[9]=I[161]=0,L[9]=L[161]=0,R[9]=R[161]=-1,z[9]=z[161]=0,B[9]=B[161]=1,V[9]=V[161]=0,H[9]=H[161]=0,Y[9]=Y[161]=1,X[9]=X[161]=0,Z[9]=Z[161]=1,P[136]=0,F[136]=1,I[136]=1,L[136]=0,R[136]=1,z[136]=0,U[136]=-1,W[136]=0,G[136]=1,B[136]=-1,V[136]=0,H[136]=0,Y[136]=0,X[136]=-1,Z[136]=0,K[136]=0,q[136]=-1,J[136]=1,O[136]=1,k[136]=0,A[136]=0,j[136]=1,M[136]=0,N[136]=1,P[34]=0,F[34]=-1,I[34]=0,L[34]=0,R[34]=-1,z[34]=1,U[34]=1,W[34]=0,G[34]=0,B[34]=1,V[34]=0,H[34]=1,Y[34]=0,X[34]=1,Z[34]=1,K[34]=0,q[34]=1,J[34]=0,O[34]=-1,k[34]=0,A[34]=1,j[34]=-1,M[34]=0,N[34]=0,P[35]=0,F[35]=1,I[35]=1,L[35]=0,R[35]=-1,z[35]=1,U[35]=1,W[35]=0,G[35]=0,B[35]=-1,V[35]=0,H[35]=0,Y[35]=0,X[35]=-1,Z[35]=0,K[35]=0,q[35]=1,J[35]=0,O[35]=-1,k[35]=0,A[35]=1,j[35]=1,M[35]=0,N[35]=1,P[153]=0,F[153]=1,I[153]=1,B[153]=-1,V[153]=0,H[153]=0,Y[153]=0,X[153]=-1,Z[153]=0,j[153]=1,M[153]=0,N[153]=1,L[102]=0,R[102]=-1,z[102]=1,U[102]=1,W[102]=0,G[102]=0,K[102]=0,q[102]=1,J[102]=0,O[102]=-1,k[102]=0,A[102]=1,P[155]=0,F[155]=-1,I[155]=0,B[155]=1,V[155]=0,H[155]=1,Y[155]=0,X[155]=1,Z[155]=1,j[155]=-1,M[155]=0,N[155]=0,L[103]=0,R[103]=1,z[103]=0,U[103]=-1,W[103]=0,G[103]=1,K[103]=0,q[103]=-1,J[103]=1,O[103]=1,k[103]=0,A[103]=0,P[152]=0,F[152]=1,I[152]=1,U[152]=-1,W[152]=0,G[152]=1,B[152]=-1,V[152]=0,H[152]=0,Y[152]=0,X[152]=-1,Z[152]=0,K[152]=0,q[152]=-1,J[152]=1,j[152]=1,M[152]=0,N[152]=1,P[156]=0,F[156]=-1,I[156]=1,U[156]=1,W[156]=0,G[156]=1,B[156]=-1,V[156]=0,H[156]=0,Y[156]=0,X[156]=-1,Z[156]=0,K[156]=0,q[156]=1,J[156]=1,j[156]=-1,M[156]=0,N[156]=1,P[137]=0,F[137]=1,I[137]=1,L[137]=0,R[137]=1,z[137]=0,B[137]=-1,V[137]=0,H[137]=0,Y[137]=0,X[137]=-1,Z[137]=0,O[137]=1,k[137]=0,A[137]=0,j[137]=1,M[137]=0,N[137]=1,P[139]=0,F[139]=1,I[139]=1,L[139]=0,R[139]=-1,z[139]=0,B[139]=1,V[139]=0,H[139]=0,Y[139]=0,X[139]=1,Z[139]=0,O[139]=-1,k[139]=0,A[139]=0,j[139]=1,M[139]=0,N[139]=1,P[98]=0,F[98]=-1,I[98]=0,L[98]=0,R[98]=-1,z[98]=1,U[98]=1,W[98]=0,G[98]=0,B[98]=1,V[98]=0,H[98]=1,K[98]=0,q[98]=1,J[98]=0,O[98]=-1,k[98]=0,A[98]=1,P[99]=0,F[99]=1,I[99]=0,L[99]=0,R[99]=-1,z[99]=1,U[99]=1,W[99]=0,G[99]=0,B[99]=-1,V[99]=0,H[99]=1,K[99]=0,q[99]=-1,J[99]=0,O[99]=1,k[99]=0,A[99]=1,L[38]=0,R[38]=-1,z[38]=1,U[38]=1,W[38]=0,G[38]=0,Y[38]=0,X[38]=1,Z[38]=1,K[38]=0,q[38]=1,J[38]=0,O[38]=-1,k[38]=0,A[38]=1,j[38]=-1,M[38]=0,N[38]=0,L[39]=0,R[39]=1,z[39]=1,U[39]=-1,W[39]=0,G[39]=0,Y[39]=0,X[39]=-1,Z[39]=1,K[39]=0,q[39]=1,J[39]=0,O[39]=-1,k[39]=0,A[39]=1,j[39]=1,M[39]=0,N[39]=0;var Ht=[],Ut=[],Q=[],Wt=[],Gt=[],Kt=[],qt=[],Jt=[];Wt[1]=Gt[1]=18,Wt[169]=Gt[169]=18,Q[4]=Ut[4]=12,Q[166]=Ut[166]=12,Ht[16]=Jt[16]=4,Ht[154]=Jt[154]=4,Kt[64]=qt[64]=22,Kt[106]=qt[106]=22,Q[2]=Kt[2]=17,Wt[2]=Gt[2]=18,Q[168]=Kt[168]=17,Wt[168]=Gt[168]=18,Ht[8]=Wt[8]=9,Ut[8]=Q[8]=12,Ht[162]=Wt[162]=9,Ut[162]=Q[162]=12,Ht[32]=Jt[32]=4,Ut[32]=qt[32]=1,Ht[138]=Jt[138]=4,Ut[138]=qt[138]=1,Gt[128]=Jt[128]=21,Kt[128]=qt[128]=22,Gt[42]=Jt[42]=21,Kt[42]=qt[42]=22,Ut[5]=Gt[5]=14,Ut[165]=Gt[165]=14,Q[20]=Jt[20]=6,Q[150]=Jt[150]=6,Ht[80]=Kt[80]=11,Ht[90]=Kt[90]=11,Wt[65]=qt[65]=3,Wt[105]=qt[105]=3,Ht[160]=Kt[160]=11,Ut[160]=Gt[160]=14,Ht[10]=Kt[10]=11,Ut[10]=Gt[10]=14,Q[130]=Jt[130]=6,Wt[130]=qt[130]=3,Q[40]=Jt[40]=6,Wt[40]=qt[40]=3,Ut[101]=qt[101]=1,Ut[69]=qt[69]=1,Gt[149]=Jt[149]=21,Gt[21]=Jt[21]=21,Q[86]=Kt[86]=17,Q[84]=Kt[84]=17,Ht[89]=Wt[89]=9,Ht[81]=Wt[81]=9,Ht[96]=qt[96]=0,Ut[96]=Kt[96]=15,Ht[74]=qt[74]=0,Ut[74]=Kt[74]=15,Ht[24]=Q[24]=8,Wt[24]=Jt[24]=7,Ht[146]=Q[146]=8,Wt[146]=Jt[146]=7,Ut[6]=Kt[6]=15,Q[6]=Gt[6]=16,Ut[164]=Kt[164]=15,Q[164]=Gt[164]=16,Wt[129]=Jt[129]=7,Gt[129]=qt[129]=20,Wt[41]=Jt[41]=7,Gt[41]=qt[41]=20,Q[66]=qt[66]=2,Wt[66]=Kt[66]=19,Q[104]=qt[104]=2,Wt[104]=Kt[104]=19,Ht[144]=Gt[144]=10,Kt[144]=Jt[144]=23,Ht[26]=Gt[26]=10,Kt[26]=Jt[26]=23,Ut[36]=Jt[36]=5,Q[36]=qt[36]=2,Ut[134]=Jt[134]=5,Q[134]=qt[134]=2,Ht[9]=Gt[9]=10,Ut[9]=Wt[9]=13,Ht[161]=Gt[161]=10,Ut[161]=Wt[161]=13,Ut[37]=Jt[37]=5,Gt[37]=qt[37]=20,Ut[133]=Jt[133]=5,Gt[133]=qt[133]=20,Q[148]=Gt[148]=16,Kt[148]=Jt[148]=23,Q[22]=Gt[22]=16,Kt[22]=Jt[22]=23,Ht[82]=Q[82]=8,Wt[82]=Kt[82]=19,Ht[88]=Q[88]=8,Wt[88]=Kt[88]=19,Ht[73]=qt[73]=0,Ut[73]=Wt[73]=13,Ht[97]=qt[97]=0,Ut[97]=Wt[97]=13,Ht[145]=Wt[145]=9,Gt[145]=Jt[145]=21,Ht[25]=Wt[25]=9,Gt[25]=Jt[25]=21,Ut[70]=qt[70]=1,Q[70]=Kt[70]=17,Ut[100]=qt[100]=1,Q[100]=Kt[100]=17,Ht[34]=Wt[34]=9,Ut[34]=Q[34]=12,Gt[34]=Jt[34]=21,Kt[34]=qt[34]=22,Ht[136]=Jt[136]=4,Ut[136]=qt[136]=1,Q[136]=Kt[136]=17,Wt[136]=Gt[136]=18,Ht[35]=Jt[35]=4,Ut[35]=Q[35]=12,Wt[35]=Gt[35]=18,Kt[35]=qt[35]=22,Ht[153]=Jt[153]=4,Wt[153]=Gt[153]=18,Ut[102]=Q[102]=12,Kt[102]=qt[102]=22,Ht[155]=Wt[155]=9,Gt[155]=Jt[155]=23,Ut[103]=qt[103]=1,Q[103]=Kt[103]=17,Ht[152]=Jt[152]=4,Q[152]=Kt[152]=17,Wt[152]=Gt[152]=18,Ht[156]=Q[156]=8,Wt[156]=Gt[156]=18,Kt[156]=Jt[156]=23,Ht[137]=Jt[137]=4,Ut[137]=qt[137]=1,Wt[137]=Gt[137]=18,Ht[139]=Jt[139]=4,Ut[139]=Wt[139]=13,Gt[139]=qt[139]=20,Ht[98]=Wt[98]=9,Ut[98]=Q[98]=12,Kt[98]=qt[98]=22,Ht[99]=qt[99]=0,Ut[99]=Q[99]=12,Wt[99]=Kt[99]=19,Ut[38]=Q[38]=12,Gt[38]=Jt[38]=21,Kt[38]=qt[38]=22,Ut[39]=Jt[39]=5,Q[39]=Gt[39]=16,Kt[39]=qt[39]=22;var $=[];$[1]=$[169]=Yt,$[4]=$[166]=Xt,$[16]=$[154]=Zt,$[64]=$[106]=Qt,$[168]=$[2]=$t,$[162]=$[8]=en,$[138]=$[32]=tn,$[42]=$[128]=nn,$[5]=$[165]=rn,$[20]=$[150]=an,$[80]=$[90]=on,$[65]=$[105]=sn,$[160]=$[10]=cn,$[130]=$[40]=ln,$[85]=un,$[101]=$[69]=dn,$[149]=$[21]=fn,$[86]=$[84]=pn,$[89]=$[81]=mn,$[96]=$[74]=hn,$[24]=$[146]=gn,$[6]=$[164]=_n,$[129]=$[41]=vn,$[66]=$[104]=yn,$[144]=$[26]=bn,$[36]=$[134]=xn,$[9]=$[161]=Sn,$[37]=$[133]=Cn,$[148]=$[22]=wn,$[82]=$[88]=Tn,$[73]=$[97]=En,$[145]=$[25]=Dn,$[70]=$[100]=On,$[34]=function(e){return[nn(e),en(e)]},$[35]=kn,$[136]=function(e){return[tn(e),$t(e)]},$[153]=function(e){return[Zt(e),Yt(e)]},$[102]=function(e){return[Xt(e),Qt(e)]},$[155]=An,$[103]=jn,$[152]=function(e){return[Zt(e),$t(e)]},$[156]=Mn,$[137]=function(e){return[tn(e),Yt(e)]},$[139]=Nn,$[98]=function(e){return[en(e),Qt(e)]},$[99]=Pn,$[38]=function(e){return[Xt(e),nn(e)]},$[39]=Fn;var Yt=function(e){return[[e.bottomleft,0],[0,0],[0,e.leftbottom]]},Xt=function(e){return[[1,e.rightbottom],[1,0],[e.bottomright,0]]},Zt=function(e){return[[e.topright,1],[1,1],[1,e.righttop]]},Qt=function(e){return[[0,e.lefttop],[0,1],[e.topleft,1]]},$t=function(e){return[[e.bottomright,0],[e.bottomleft,0],[0,e.leftbottom],[0,e.lefttop]]},en=function(e){return[[e.bottomright,0],[e.bottomleft,0],[1,e.righttop],[1,e.rightbottom]]},tn=function(e){return[[1,e.righttop],[1,e.rightbottom],[e.topleft,1],[e.topright,1]]},nn=function(e){return[[0,e.leftbottom],[0,e.lefttop],[e.topleft,1],[e.topright,1]]},rn=function(e){return[[0,0],[0,e.leftbottom],[1,e.rightbottom],[1,0]]},an=function(e){return[[1,0],[e.bottomright,0],[e.topright,1],[1,1]]},on=function(e){return[[1,1],[1,e.righttop],[0,e.lefttop],[0,1]]},sn=function(e){return[[e.bottomleft,0],[0,0],[0,1],[e.topleft,1]]},cn=function(e){return[[1,e.righttop],[1,e.rightbottom],[0,e.leftbottom],[0,e.lefttop]]},ln=function(e){return[[e.topleft,1],[e.topright,1],[e.bottomright,0],[e.bottomleft,0]]},un=function(e){return[[0,0],[0,1],[1,1],[1,0]]},dn=function(e){return[[1,e.rightbottom],[1,0],[0,0],[0,1],[e.topleft,1]]},fn=function(e){return[[e.topright,1],[1,1],[1,0],[0,0],[0,e.leftbottom]]},pn=function(e){return[[1,0],[e.bottomright,0],[0,e.lefttop],[0,1],[1,1]]},mn=function(e){return[[1,1],[1,e.righttop],[e.bottomleft,0],[0,0],[0,1]]},hn=function(e){return[[1,e.righttop],[1,e.rightbottom],[0,e.lefttop],[0,1],[e.topleft,1]]},gn=function(e){return[[1,1],[1,e.righttop],[e.bottomright,0],[e.bottomleft,0],[e.topright,1]]},_n=function(e){return[[1,e.rightbottom],[1,0],[e.bottomright,0],[0,e.leftbottom],[0,e.lefttop]]},vn=function(e){return[[e.topright,1],[e.bottomleft,0],[0,0],[0,e.leftbottom],[e.topleft,1]]},yn=function(e){return[[e.bottomright,0],[e.bottomleft,0],[0,e.lefttop],[0,1],[e.topleft,1]]},bn=function(e){return[[1,1],[1,e.righttop],[0,e.leftbottom],[0,e.lefttop],[e.topright,1]]},xn=function(e){return[[1,e.rightbottom],[1,0],[e.bottomright,0],[e.topleft,1],[e.topright,1]]},Sn=function(e){return[[1,e.righttop],[1,e.rightbottom],[e.bottomleft,0],[0,0],[0,e.leftbottom]]},Cn=function(e){return[[1,e.rightbottom],[1,0],[0,0],[0,e.leftbottom],[e.topleft,1],[e.topright,1]]},wn=function(e){return[[1,1],[1,0],[e.bottomright,0],[0,e.leftbottom],[0,e.lefttop],[e.topright,1]]},Tn=function(e){return[[1,1],[1,e.righttop],[e.bottomright,0],[e.bottomleft,0],[0,e.lefttop],[0,1]]},En=function(e){return[[1,e.righttop],[1,e.rightbottom],[e.bottomleft,0],[0,0],[0,1],[e.topleft,1]]},Dn=function(e){return[[1,1],[1,e.righttop],[e.bottomleft,0],[0,0],[0,e.leftbottom],[e.topright,1]]},On=function(e){return[[1,e.rightbottom],[1,0],[e.bottomright,0],[0,e.lefttop],[0,1],[e.topleft,1]]},kn=function(e){return[[1,e.righttop],[1,e.rightbottom],[e.bottomright,0],[e.bottomleft,0],[0,e.leftbottom],[0,e.lefttop],[e.topleft,1],[e.topright,1]]},An=function(e){return[[1,1],[1,e.righttop],[e.bottomleft,0],[0,0],[0,e.leftbottom],[e.topright,1]]},jn=function(e){return[[1,e.rightbottom],[1,0],[e.bottomright,0],[0,e.lefttop],[0,1],[e.topleft,1]]},Mn=function(e){return[[1,1],[1,e.righttop],[e.bottomright,0],[e.bottomleft,0],[0,e.leftbottom],[0,e.lefttop],[e.topright,1]]},Nn=function(e){return[[1,e.righttop],[1,e.rightbottom],[e.bottomleft,0],[0,0],[0,e.leftbottom],[e.topleft,1],[e.topright,1]]},Pn=function(e){return[[1,e.righttop],[1,e.rightbottom],[e.bottomright,0],[e.bottomleft,0],[0,e.lefttop],[0,1],[e.topleft,1]]},Fn=function(e){return[[1,e.rightbottom],[1,0],[e.bottomright,0],[0,e.leftbottom],[0,e.lefttop],[e.topleft,1],[e.topright,1]]},In=function(e,t,n,r,i=null){let a={type:`FeatureCollection`,features:[]};for(let o=0;o<r.length;o++){let s=r[o],c=Rn(e,t,n,s,i);a.features.push({type:`Feature`,geometry:{type:`MultiLineString`,coordinates:c},properties:[{value:s}]})}return a};function Ln(e,t){return Array.isArray(e)&&Number.isFinite(e[0])&&Number.isFinite(e[1])&&e[0]>1&&e[1]>1?[Math.floor(e[0]),Math.floor(e[1])]:Array.isArray(t)&&t.length>1&&Array.isArray(t[0])&&Array.isArray(t[0][0])&&t[0].length>1?[t.length,t[0].length]:null}var Rn=function(e,t,n,r,i=null){let a=Ln(i,t);if(!a)return[];let o=a[0]*a[1];if(!e||e.length<o||!t||t.length<o)return[];let s=Vn(e,r,a);for(let e=0;e<s.length;e++)for(let r=0;r<s[e].length;r++){let i=Bn(s[e][r][0],s[e][r][1],t,n,a);s[e][r][0]=i[0],s[e][r][1]=i[1]}return s};function zn(e,t,n,r){let[i,a]=t;if(n<0||n>=i||r<0||r>=a)return null;if(Array.isArray(e)&&e.length>0&&Array.isArray(e[0])&&Array.isArray(e[0][0]))return e[n]?.[r]||null;let o=n*a+r;return e?.[o]||null}var Bn=function(e,t,n,r,i){if(r)var a=r[0]+e*r[1]+t*r[2],o=r[3]+e*r[4]+t*r[5];else{if(!i)return[NaN,NaN];let[r,s]=i,c=Math.floor(e),l=Math.ceil(e),u=Math.floor(t),d=Math.ceil(t),f=Math.max(0,Math.min(s-1,c)),p=Math.max(0,Math.min(s-1,l)),m=Math.max(0,Math.min(r-1,u)),h=Math.max(0,Math.min(r-1,d)),g=zn(n,i,h,f),_=zn(n,i,h,p),v=zn(n,i,m,f),y=zn(n,i,m,p);if(!g||!_||!v||!y||!Number.isFinite(g[0])||!Number.isFinite(g[1])||!Number.isFinite(_[0])||!Number.isFinite(_[1])||!Number.isFinite(v[0])||!Number.isFinite(v[1])||!Number.isFinite(y[0])||!Number.isFinite(y[1]))return[NaN,NaN];let b=1-(e-c),x=1-b,S=1-(t-u),C=1-S;var a=v[0]*b*S+g[0]*b*C+y[0]*x*S+_[0]*x*C,o=v[1]*b*S+g[1]*b*C+y[1]*x*S+_[1]*x*C}return[a,o]},Vn=function(e,t,n,r){let i={successCallback:null,progressCallback:null,verbose:!1},a={};r||={};let o=Object.keys(i);for(let e=0;e<o.length;e++){let t=o[e],n=r[t];n??=i[t],a[t]=n}a.verbose&&console.log(`computing isocontour for ${t}`);let s=Yn(Wn(e,t,n));return typeof a.successCallback==`function`&&a.successCallback(s),s};function Hn(e,t,n){return(e-t)/(n-t)}function Un(e,t,n){return t*n+e}function Wn(e,t,n){let r=n[0]-1,i=n[1]-1,a={rows:r,cols:i,cells:[]};for(let u=0;u<r;++u){a.cells[u]=[];for(let r=0;r<i;++r){let i=0,d=e[Un(r,u+1,n[1])],f=e[Un(r+1,u+1,n[1])],p=e[Un(r+1,u,n[1])],m=e[Un(r,u,n[1])];if(isNaN(d)||isNaN(f)||isNaN(p)||isNaN(m))continue;i|=d>=t?8:0,i|=f>=t?4:0,i|=p>=t?2:0,i|=+(m>=t);let h=!1;if(i==5||i==10){let e=(d+f+p+m)/4;i==5&&e<t?(i=10,h=!0):i==10&&e<t&&(i=5,h=!0)}if(i!==0&&i!==15){var o=s=c=l=.5,s,c,l;i==1?(c=1-Hn(t,d,m),s=1-Hn(t,p,m)):i==2?(s=Hn(t,m,p),l=1-Hn(t,f,p)):i==3?(c=1-Hn(t,d,m),l=1-Hn(t,f,p)):i==4?(o=Hn(t,d,f),l=Hn(t,p,f)):i==5?(o=Hn(t,d,f),l=Hn(t,p,f),s=1-Hn(t,p,m),c=1-Hn(t,d,m)):i==6?(s=Hn(t,m,p),o=Hn(t,d,f)):i==7?(c=1-Hn(t,d,m),o=Hn(t,d,f)):i==8?(c=Hn(t,m,d),o=1-Hn(t,f,d)):i==9?(s=1-Hn(t,p,m),o=1-Hn(t,f,d)):i==10?(o=1-Hn(t,f,d),l=1-Hn(t,f,p),s=Hn(t,m,p),c=Hn(t,m,d)):i==11?(o=1-Hn(t,f,d),l=1-Hn(t,f,p)):i==12?(c=Hn(t,m,d),l=Hn(t,p,f)):i==13?(s=1-Hn(t,p,m),l=Hn(t,p,f)):i==14?(c=Hn(t,m,d),s=Hn(t,m,p)):console.log(`Illegal cval detected: ${i}`),a.cells[u][r]={cval:i,flipped:h,top:o,right:l,bottom:s,left:c}}}}return a}function Gn(e){return e.cval==5||e.cval==10}function Kn(e){return e.cval===0||e.cval==15}function qn(e){!Kn(e)&&e.cval!=5&&e.cval!=10&&(e.cval=15)}function Jn(e,t){if(t===`top`)return[e.top,1];if(t===`bottom`)return[e.bottom,0];if(t===`right`)return[1,e.right];if(t===`left`)return[0,e.left]}function Yn(e){let t=[],n=0,{rows:r}=e,{cols:i}=e,a=1e-7;return e.cells.forEach((o,s)=>{o.forEach((o,c)=>{if(o!==void 0&&!Gn(o)&&!Kn(o)){let o=Xn(e.cells,s,c,r,i),l=!1;if(o.info==`mergeable`){let e=o.path[o.path.length-1][0],r=o.path[o.path.length-1][1];for(let i=n-1;i>=0;i--)if(Math.abs(t[i][0][0]-e)<=a&&Math.abs(t[i][0][1]-r)<=a){for(let e=o.path.length-2;e>=0;--e)t[i].unshift(o.path[e]);l=!0;break}}l||(t[n++]=o.path)}})}),t}function Xn(e,t,n,r,i){let a=e.length;e[0].length;let o=[],s=[0,0,1,1,0,0,0,0,-1,0,1,1,-1,0,-1,0],c=[0,-1,0,0,1,1,1,1,0,-1,0,0,0,-1,0,0],l,u,d=[`none`,`left`,`bottom`,`left`,`right`,`none`,`bottom`,`left`,`top`,`top`,`none`,`top`,`right`,`right`,`bottom`,`none`],f=[`none`,`bottom`,`right`,`right`,`top`,`top`,`top`,`top`,`left`,`bottom`,`right`,`right`,`left`,`bottom`,`left`,`none`];e[t][n];let p=e[t][n],{cval:m}=p,h=d[m],g=Jn(p,h);o.push([n+g[0],t+g[1]]),h=f[m],g=Jn(p,h),o.push([n+g[0],t+g[1]]),qn(p);let _=n+s[m],v=t+c[m],y=m,b=0;for(;_>=0&&v>=0&&v<a&&(_!=n||v!=t)&&(p=e[v][_],p!==void 0);){if(b>r*i){console.log(`Infinite loop dectected in Marching Squares. Breaking out`,b);break}if(m=p.cval,m===0||m===15)return{path:o,info:`mergeable`};h=f[m],l=s[m],u=c[m],(m==5||m==10)&&(m==5?p.flipped?c[y]==-1?(h=`left`,l=-1,u=0):(h=`right`,l=1,u=0):s[y]==-1&&(h=`bottom`,l=0,u=-1):m==10&&(p.flipped?s[y]==-1?(h=`top`,l=0,u=1):(h=`bottom`,l=0,u=-1):c[y]==1&&(h=`left`,l=-1,u=0))),g=Jn(p,h),o.push([_+g[0],v+g[1]]),qn(p),_+=l,v+=u,y=m,b+=1}return{path:o,info:`closed`}}var Zn={algorithm:`marchingTriangles`,elevation:0,pickable:!1,widthScale:30,widthMinPixels:2,getWidth:10,parameters:{depthCompare:`always`,cullMode:`back`}};function Qn(e){return Array.isArray(e)&&e.length===1?e[0]:e}function $n(e){if(Array.isArray(e)&&e.length>0&&Array.isArray(e[0])&&Array.isArray(e[0][0])){let t=[];for(let n=0;n<e.length;n+=1)for(let r=0;r<e[n].length;r+=1)t.push(e[n][r]);return t}return e||[]}function er(e,t,n,r,i){let a=$n(e),o=(n||[]).filter(e=>Number.isFinite(e));return a.length<3||o.length===0?{type:`FeatureCollection`,features:[]}:r===`marchingSquares`?(console.log(`ContourLayer method: marchingSquares`),In(t,e,void 0,o,i)):(console.log(`ContourLayer method: marchingTriangles (delaunay)`),Vt(e,t,o,i))}var tr=class extends t.CompositeLayer{initializeState(){this.state={}}shouldUpdateState({changeFlags:e}){return e.propsOrDataChanged}updateState({props:e}){let t=[],n=Ee(e.colorLevels,Qn(e.colors),e.colorType),r=e.contourLevels||e.colorLevels,i=performance.now(),{lines:a}=e;a||=er(e.lonlatGrid||e.projection?.lonlatGrid,e.data,r,e.algorithm,e.shape),a.features.forEach((i,a)=>{let o=i.geometry.coordinates;if(o.length===0)return;let s=i?.properties?.[0]?.value,c=Number.isFinite(s)?s:r[a],l=T.string_to_rgb(n(c)),u=Array(o.length);for(let t=0;t<o.length;t+=1){u[t]=Array(o[t].length);for(let n=0;n<o[t].length;n+=1)u[t][n]=[o[t][n][0],o[t][n][1],e.elevation]}for(let e of u)t.push({polygon:e,color:l})}),console.log(`contour layer: isolines calculated in `,performance.now()-i,`ms`),this.setState({lines:a,isoLines:t})}renderLayers(){let{isoLines:e,lines:t}=this.state,n=new Oe(this.props,{positionFormat:`XYZ`,getPath:e=>e.polygon,getColor:e=>e.color,id:`${this.props.id}-path`,data:e}),r;return this.props.labels?.enabled&&(r=new be({...this.props.labels,id:`${this.props.id}-labels`,lines:t})),[n,r]}};tr.layerName=`ContourLayer`,tr.defaultProps=Zn;var nr=o.WINDING.CLOCKWISE,rr=o.WINDING.COUNTER_CLOCKWISE,ir={isClosed:!0};function ar(e){if(e=e&&e.positions||e,!Array.isArray(e)&&!ArrayBuffer.isView(e))throw Error(`invalid polygon`)}function or(e){return`positions`in e?e.positions:e}function sr(e){return`holeIndices`in e?e.holeIndices:null}function cr(e){return Array.isArray(e[0])}function lr(e){return e.length>=1&&e[0].length>=2&&Number.isFinite(e[0][0])}function ur(e){let t=e[0],n=e[e.length-1];return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]}function dr(e,t,n,r){for(let i=0;i<t;i++)if(e[n+i]!==e[r-t+i])return!1;return!0}function fr(e,t,n,r,i){let a=t,s=n.length;for(let t=0;t<s;t++)for(let i=0;i<r;i++)e[a++]=n[t][i]||0;if(!ur(n))for(let t=0;t<r;t++)e[a++]=n[0][t]||0;return ir.start=t,ir.end=a,ir.size=r,(0,o.modifyPolygonWindingDirection)(e,i,ir),a}function pr(e,t,n,r,i=0,a,s){a||=n.length;let c=a-i;if(c<=0)return t;let l=t;for(let t=0;t<c;t++)e[l++]=n[i+t];if(!dr(n,r,i,a))for(let t=0;t<r;t++)e[l++]=n[i+t];return ir.start=t,ir.end=l,ir.size=r,(0,o.modifyPolygonWindingDirection)(e,s,ir),l}function mr(e,t){ar(e);let n=[],r=[];if(`positions`in e){let{positions:i,holeIndices:a}=e;if(a){let e=0;for(let o=0;o<=a.length;o++)e=pr(n,e,i,t,a[o-1],a[o],o===0?nr:rr),r.push(e);return r.pop(),{positions:n,holeIndices:r}}e=i}if(!cr(e))return pr(n,0,e,t,0,n.length,nr),n;if(!lr(e)){let i=0;for(let[a,o]of e.entries())i=fr(n,i,o,t,a===0?nr:rr),r.push(i);return r.pop(),{positions:n,holeIndices:r}}return fr(n,0,e,t,nr),n}function hr(e,t,n){let r=e.length/3,i=0;for(let a=0;a<r;a++){let o=(a+1)%r;i+=e[a*3+t]*e[o*3+n],i-=e[o*3+t]*e[a*3+n]}return Math.abs(i/2)}function gr(e,t,n,r){let i=e.length/3;for(let a=0;a<i;a++){let i=a*3,o=e[i+0],s=e[i+1],c=e[i+2];e[i+t]=o,e[i+n]=s,e[i+r]=c}}function _r(e,t,n,r){let i=sr(e);i&&=i.map(e=>e/t);let a=or(e),o=r&&t===3;if(n){let e=a.length;a=a.slice();let r=[];for(let i=0;i<e;i+=t){r[0]=a[i],r[1]=a[i+1],o&&(r[2]=a[i+2]);let e=n(r);a[i]=e[0],a[i+1]=e[1],o&&(a[i+2]=e[2])}}if(o){let e=hr(a,0,1),t=hr(a,0,2),r=hr(a,1,2);if(!e&&!t&&!r)return[];e>t&&e>r||(t>r?(n||(a=a.slice()),gr(a,0,2,1)):(n||(a=a.slice()),gr(a,2,0,1)))}return ke(a,i,t)}var vr=class extends t.Tesselator{constructor(e){let{fp64:t,IndexType:n=Uint32Array}=e;super({...e,attributes:{positions:{size:3,type:t?Float64Array:Float32Array},vertexValid:{type:Uint16Array,size:1},indices:{type:n,size:1}}})}get(e){let{attributes:t}=this;return e===`indices`?t.indices&&t.indices.subarray(0,this.vertexCount):t[e]}updateGeometry(e){super.updateGeometry(e);let t=this.buffers.indices;if(t)this.vertexCount=(t.value||t).length;else if(this.data&&!this.getGeometry)throw Error(`missing indices buffer`)}normalizeGeometry(e){if(this.normalize){let t=mr(e,this.positionSize);return this.opts.resolution?(0,o.cutPolygonByGrid)(or(t),sr(t),{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0}):this.opts.wrapLongitude?(0,o.cutPolygonByMercatorBounds)(or(t),sr(t),{size:this.positionSize,maxLatitude:86,edgeTypes:!0}):t}return e}getGeometrySize(e){if(yr(e)){let t=0;for(let n of e)t+=this.getGeometrySize(n);return t}return or(e).length/this.positionSize}getGeometryFromBuffer(e){return this.normalize||!this.buffers.indices?super.getGeometryFromBuffer(e):null}updateGeometryAttributes(e,t){if(e&&yr(e))for(let n of e){let e=this.getGeometrySize(n);t.geometrySize=e,this.updateGeometryAttributes(n,t),t.vertexStart+=e,t.indexStart=this.indexStarts[t.geometryIndex+1]}else{let n=e;this._updateIndices(n,t),this._updatePositions(n,t),this._updateVertexValid(n,t)}}_updateIndices(e,{geometryIndex:t,vertexStart:n,indexStart:r}){let{attributes:i,indexStarts:a,typedArrayManager:o}=this,s=i.indices;if(!s||!e)return;let c=r,l=this.data.attributes?.getTriangleIndices;if(l)a[t+1]=r+l.value.length,i.indices=l.value;else{let l=_r(e,this.positionSize,this.opts.preproject,this.opts.full3d);s=o.allocate(s,r+l.length,{copy:!0});for(let e=0;e<l.length;e++)s[c++]=l[e]+n;a[t+1]=r+l.length,i.indices=s}}_updatePositions(e,{vertexStart:t,geometrySize:n}){let{attributes:{positions:r},positionSize:i}=this;if(!r||!e)return;let a=or(e);for(let e=t,o=0;o<n;e++,o++){let t=a[o*i],n=a[o*i+1],s=i>2?a[o*i+2]:0;r[e*3]=t,r[e*3+1]=n,r[e*3+2]=s}}_updateVertexValid(e,{vertexStart:t,geometrySize:n}){let{positionSize:r}=this,i=this.attributes.vertexValid,a=e&&sr(e);if(e&&e.edgeTypes?i.set(e.edgeTypes,t):i.fill(1,t,t+n),a)for(let e=0;e<a.length;e++)i[t+a[e]/r-1]=0;i[t+n-1]=0}};function yr(e){return Array.isArray(e)&&e.length>0&&!Number.isFinite(e[0])}var br=`uniform solidPolygonUniforms {
|
|
211
|
+
bool extruded;
|
|
212
|
+
bool isWireframe;
|
|
213
|
+
float elevationScale;
|
|
214
|
+
bool hasTexture;
|
|
215
|
+
} solidPolygon;
|
|
216
|
+
`,xr={name:`solidPolygon`,vs:br,fs:br,uniformTypes:{extruded:`f32`,isWireframe:`f32`,elevationScale:`f32`,hasTexture:`f32`}},Sr=`
|
|
217
|
+
in vec4 fillColors;
|
|
218
|
+
in vec4 lineColors;
|
|
219
|
+
in vec3 pickingColors;
|
|
220
|
+
|
|
221
|
+
out vec4 vColor;
|
|
222
|
+
out float pdata;
|
|
223
|
+
out float odata;
|
|
224
|
+
out float v1;
|
|
225
|
+
out float v2;
|
|
226
|
+
out float v3;
|
|
227
|
+
|
|
228
|
+
struct PolygonProps {
|
|
229
|
+
vec3 positions;
|
|
230
|
+
vec3 positions64Low;
|
|
231
|
+
vec3 normal;
|
|
232
|
+
float elevations;
|
|
233
|
+
float vertex1;
|
|
234
|
+
float vertex2;
|
|
235
|
+
float vertex3;
|
|
236
|
+
float polygondata;
|
|
237
|
+
float opacitydata;
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
vec3 project_offset_normal(vec3 vector) {
|
|
241
|
+
if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT ||
|
|
242
|
+
project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {
|
|
243
|
+
// normals generated by the polygon tesselator are in lnglat offsets instead of meters
|
|
244
|
+
return normalize(vector * project.commonUnitsPerWorldUnit);
|
|
245
|
+
}
|
|
246
|
+
return project_normal(vector);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
void calculatePosition(PolygonProps props) {
|
|
250
|
+
vec3 pos = props.positions;
|
|
251
|
+
vec3 pos64Low = props.positions64Low;
|
|
252
|
+
vec3 normal = props.normal;
|
|
253
|
+
vec4 colors = solidPolygon.isWireframe ? lineColors : fillColors;
|
|
254
|
+
pdata = props.polygondata;
|
|
255
|
+
odata = props.opacitydata;
|
|
256
|
+
v1 = props.vertex1;
|
|
257
|
+
v2 = props.vertex2;
|
|
258
|
+
v3 = props.vertex3;
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
geometry.worldPosition = props.positions;
|
|
262
|
+
geometry.pickingColor = pickingColors;
|
|
263
|
+
|
|
264
|
+
if (solidPolygon.extruded) {
|
|
265
|
+
pos.z += props.elevations * solidPolygon.elevationScale;
|
|
266
|
+
}
|
|
267
|
+
gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);
|
|
268
|
+
|
|
269
|
+
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
270
|
+
|
|
271
|
+
if (solidPolygon.extruded) {
|
|
272
|
+
#ifdef IS_SIDE_VERTEX
|
|
273
|
+
normal = project_offset_normal(normal);
|
|
274
|
+
#else
|
|
275
|
+
normal = project_normal(normal);
|
|
276
|
+
#endif
|
|
277
|
+
geometry.normal = normal;
|
|
278
|
+
vec3 lightColor = lighting_getLightColor(colors.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);
|
|
279
|
+
vColor = vec4(lightColor, colors.a * layer.opacity);
|
|
280
|
+
} else {
|
|
281
|
+
vColor = vec4(colors.rgb, colors.a * layer.opacity);
|
|
282
|
+
}
|
|
283
|
+
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
284
|
+
}
|
|
285
|
+
`,Cr=`\
|
|
286
|
+
#version 300 es
|
|
287
|
+
#define SHADER_NAME solid-polygon-layer-vertex-shader
|
|
288
|
+
|
|
289
|
+
in vec3 vertexPositions;
|
|
290
|
+
in vec3 vertexPositions64Low;
|
|
291
|
+
in float elevations;
|
|
292
|
+
in float vertex1;
|
|
293
|
+
in float vertex2;
|
|
294
|
+
in float vertex3;
|
|
295
|
+
in float polygondata;
|
|
296
|
+
in float opacitydata;
|
|
297
|
+
|
|
298
|
+
${Sr}
|
|
299
|
+
|
|
300
|
+
void main(void) {
|
|
301
|
+
PolygonProps props;
|
|
302
|
+
|
|
303
|
+
props.positions = vertexPositions;
|
|
304
|
+
props.positions64Low = vertexPositions64Low;
|
|
305
|
+
props.elevations = elevations;
|
|
306
|
+
props.vertex1 = vertex1;
|
|
307
|
+
props.vertex2 = vertex2;
|
|
308
|
+
props.vertex3 = vertex3;
|
|
309
|
+
props.polygondata = polygondata;
|
|
310
|
+
props.opacitydata = opacitydata;
|
|
311
|
+
props.normal = vec3(0.0, 0.0, 1.0);
|
|
312
|
+
|
|
313
|
+
calculatePosition(props);
|
|
314
|
+
}
|
|
315
|
+
`,wr=`\
|
|
316
|
+
#version 300 es
|
|
317
|
+
#define SHADER_NAME solid-polygon-layer-vertex-shader-side
|
|
318
|
+
#define IS_SIDE_VERTEX
|
|
319
|
+
|
|
320
|
+
in vec2 positions;
|
|
321
|
+
|
|
322
|
+
in vec3 vertexPositions;
|
|
323
|
+
in vec3 nextVertexPositions;
|
|
324
|
+
in vec3 vertexPositions64Low;
|
|
325
|
+
in vec3 nextVertexPositions64Low;
|
|
326
|
+
in float elevations;
|
|
327
|
+
in float vertex1;
|
|
328
|
+
in float vertex2;
|
|
329
|
+
in float vertex3;
|
|
330
|
+
in float polygondata;
|
|
331
|
+
in float opacitydata;
|
|
332
|
+
in float instanceVertexValid;
|
|
333
|
+
|
|
334
|
+
${Sr}
|
|
335
|
+
|
|
336
|
+
void main(void) {
|
|
337
|
+
if(instanceVertexValid < 0.5){
|
|
338
|
+
gl_Position = vec4(0.);
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
PolygonProps props;
|
|
343
|
+
|
|
344
|
+
vec3 pos;
|
|
345
|
+
vec3 pos64Low;
|
|
346
|
+
vec3 nextPos;
|
|
347
|
+
vec3 nextPos64Low;
|
|
348
|
+
|
|
349
|
+
#if RING_WINDING_ORDER_CW == 1
|
|
350
|
+
pos = vertexPositions;
|
|
351
|
+
pos64Low = vertexPositions64Low;
|
|
352
|
+
nextPos = nextVertexPositions;
|
|
353
|
+
nextPos64Low = nextVertexPositions64Low;
|
|
354
|
+
#else
|
|
355
|
+
pos = nextVertexPositions;
|
|
356
|
+
pos64Low = nextVertexPositions64Low;
|
|
357
|
+
nextPos = vertexPositions;
|
|
358
|
+
nextPos64Low = vertexPositions64Low;
|
|
359
|
+
#endif
|
|
360
|
+
|
|
361
|
+
props.positions = mix(pos, nextPos, positions.x);
|
|
362
|
+
props.positions64Low = mix(pos64Low, nextPos64Low, positions.x);
|
|
363
|
+
|
|
364
|
+
props.normal = vec3(
|
|
365
|
+
pos.y - nextPos.y + (pos64Low.y - nextPos64Low.y),
|
|
366
|
+
nextPos.x - pos.x + (nextPos64Low.x - pos64Low.x),
|
|
367
|
+
0.0);
|
|
368
|
+
|
|
369
|
+
props.elevations = elevations * positions.y;
|
|
370
|
+
|
|
371
|
+
calculatePosition(props);
|
|
372
|
+
}
|
|
373
|
+
`,Tr=`#version 300 es
|
|
374
|
+
#define SHADER_NAME solid-polygon-layer-fragment-shader
|
|
375
|
+
|
|
376
|
+
precision highp float;
|
|
377
|
+
|
|
378
|
+
in vec4 vColor;
|
|
379
|
+
in float pdata;
|
|
380
|
+
in float odata;
|
|
381
|
+
in float v1;
|
|
382
|
+
in float v2;
|
|
383
|
+
in float v3;
|
|
384
|
+
|
|
385
|
+
uniform sampler2D sampler;
|
|
386
|
+
out vec4 fragColor;
|
|
387
|
+
|
|
388
|
+
void main(void) {
|
|
389
|
+
fragColor = ( pdata >= 0.0 && pdata <= 1.0 ) ? texture(sampler, vec2(pdata, 0.5)) : vec4(0,0,0,0);
|
|
390
|
+
|
|
391
|
+
if (odata >= 0.0 && odata <= 1.0) {
|
|
392
|
+
fragColor = vec4(fragColor.rgb, fragColor.a * layer.opacity * odata );
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
fragColor = vec4(fragColor.rgb, fragColor.a * layer.opacity );
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
// Fails to compile on some Android devices if geometry is never assigned (#8411)
|
|
400
|
+
geometry.uv = vec2(0.);
|
|
401
|
+
|
|
402
|
+
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
403
|
+
}
|
|
404
|
+
`,Er={},Dr=[0,0,0,255],Or={filled:!0,extruded:!1,wireframe:!1,_normalize:!1,_windingOrder:`CW`,_full3d:!1,triangulationMode:`unstructured`,parameters:{depthCompare:`always`,cullMode:`back`},elevationScale:{type:`number`,min:0,value:1},getPolygon:{type:`accessor`,value:e=>e.polygon},getElevation:{type:`accessor`,value:0},getVertex1:{type:`accessor`,value:-1},getVertex2:{type:`accessor`,value:-1},getVertex3:{type:`accessor`,value:-1},getPolygonData:{type:`accessor`,value:1e3},texture:{type:`image`,value:null,async:!0},getOpacity:{type:`accessor`,value:-1},getFillColor:{type:`accessor`,value:Dr},getLineColor:{type:`accessor`,value:Dr},material:!0},kr={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e},Ar=class extends t.Layer{static defaultProps=Or;static layerName=`ShadedLayer`;state;getShaders(e){return super.getShaders({vs:e===`top`?Cr:wr,fs:Tr,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder===`CCW`?0:1},modules:[t.project32,a.gouraudMaterial,t.picking,xr]})}get wrapLongitude(){return!1}getBounds(){return this.getAttributeManager()?.getBounds([`vertexPositions`])}initializeState(){let{viewport:e}=this.context,{coordinateSystem:n}=this.props,{_full3d:r}=this.props;e.isGeospatial&&n===t.COORDINATE_SYSTEM.DEFAULT&&(n=t.COORDINATE_SYSTEM.LNGLAT);let i;n===t.COORDINATE_SYSTEM.LNGLAT&&(i=r?e.projectPosition.bind(e):e.projectFlat.bind(e)),this.setState({numInstances:0,emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1}),polygonTesselator:new vr({preproject:i,fp64:this.use64bitPositions(),IndexType:Uint32Array})});let a=this.getAttributeManager();a.remove([`instancePickingColors`]),a.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:!0},vertexPositions:{size:3,type:`float64`,stepMode:`dynamic`,fp64:this.use64bitPositions(),transition:kr,accessor:`getPolygon`,update:this.calculatePositions,noAlloc:!0,shaderAttributes:{nextVertexPositions:{vertexOffset:1}}},instanceVertexValid:{size:1,type:`uint16`,stepMode:`instance`,update:this.calculateVertexValid,noAlloc:!0},polygondata:{size:1,stepMode:`dynamic`,transition:kr,accessor:`getPolygonData`},opacitydata:{size:1,stepMode:`dynamic`,transition:kr,accessor:`getOpacity`},vertex1:{size:1,stepMode:`dynamic`,transition:kr,accessor:`getVertex1`},vertex2:{size:1,stepMode:`dynamic`,transition:kr,accessor:`getVertex2`},vertex3:{size:1,stepMode:`dynamic`,transition:kr,accessor:`getVertex3`},elevations:{size:1,stepMode:`dynamic`,transition:kr,accessor:`getElevation`},fillColors:{size:this.props.colorFormat.length,type:`unorm8`,stepMode:`dynamic`,transition:kr,accessor:`getFillColor`,defaultValue:Dr},lineColors:{size:this.props.colorFormat.length,type:`unorm8`,stepMode:`dynamic`,transition:kr,accessor:`getLineColor`,defaultValue:Dr},pickingColors:{size:4,type:`uint8`,stepMode:`dynamic`,accessor:(e,{index:t,target:n})=>this.encodePickingColor(e&&e.__source?e.__source.index:t,n)}})}getPickingInfo(e){let t=super.getPickingInfo(e),{index:n}=t,r=this.props.data;return r[0]&&r[0].__source&&(t.object=r.find(e=>e.__source.index===n)),t}disablePickingIndex(e){let t=this.props.data;if(t[0]&&t[0].__source)for(let n=0;n<t.length;n++)t[n].__source.index===e&&this._disablePickingIndex(n);else super.disablePickingIndex(e)}draw({uniforms:e}){let{extruded:t,filled:n,wireframe:r,elevationScale:i}=this.props,{topModel:a,sideModel:o,wireframeModel:s,polygonTesselator:c}=this.state,l={extruded:!!t,elevationScale:i,isWireframe:!1,hasTexture:!0};s&&r&&(s.setInstanceCount(c.instanceCount-1),s.shaderInputs.setProps({solidPolygon:{...l,isWireframe:!0}}),s.draw(this.context.renderPass)),o&&n&&(o.setInstanceCount(c.instanceCount-1),o.shaderInputs.setProps({solidPolygon:l}),o.draw(this.context.renderPass)),a&&n&&(a.setVertexCount(c.vertexCount),a.shaderInputs.setProps({solidPolygon:l}),a.draw(this.context.renderPass))}updateState(e){super.updateState(e);let{props:t,oldProps:n,changeFlags:r}=e,i=t.colors!==n.colors||t.colorLevels!==n.colorLevels||t.colorType!==n.colorType;(t.data!==n.data||i)&&(console.log(`Updating Buffers!`),this.setBuffers()),t.lonlatGrid!==n.lonlatGrid&&(console.log(`Updating geometry!`),this.updateGeometry(e));let a=this.getAttributeManager();(r.extensionsChanged||t.filled!==n.filled||t.extruded!==n.extruded)&&(this.state.models?.forEach(e=>e.destroy()),this.setState(this._getModels()),a.invalidateAll()),i&&(console.log(`Updating Texture!`),this.setTexture())}setBuffers(){let{lonlatGrid:e}=this.props,t=this.props.shape,n=this.props.triangulationMode,r=e.flat(),i=`${r[0]}-${r[1]}-${r[2]}-${r[r.length-1]}-${e.length}-${n}`,a=this.props.ndata||T.normalize(this.props.data,this.props.colorLevels,this.props.colorType),o=Ft.triangulate(a,`data`,t,1,0,1,n);if(!Er?.[i]?.vertices){let r=performance.now();Er[i]={},[Er[i].vertices,Er[i].triangleIndices]=Ft.triangulate(e,`positions`,t,3,this.props.elevation,1,n),console.log(`Triangulate Time:`,performance.now()-r),Er[i].startIndices=new Uint32Array([0])}let s={length:Er[i].startIndices.length,startIndices:Er[i].startIndices,attributes:{getPolygon:{value:Er[i].vertices,size:3},getTriangleIndices:{value:Er[i].triangleIndices,size:1},getPolygonData:{value:o,size:1}}};if(this.props.odata||this.props.nodata){let e=this.props.nodata||T.normalize(this.props.odata,[0,100],`linear`);s.attributes.getOpacity=Ft.triangulate(e,`data`,t,1,1,.01,n)}Object.assign(this.props,{data:s})}setTexture(){let{emptyTexture:e,topModel:t}=this.state,n=[];this.props.colors.forEach(e=>{n.push(...T.string_to_rgb(e))});let r=this.props.colorType===`scaleLinear`?`linear`:`nearest`,i=this.context.device.createTexture({width:n.length/4,height:1,data:new Uint8Array(n),sampler:{minFilter:r,magFilter:r,addressModeU:`clamp-to-edge`,addressModeV:`clamp-to-edge`}});t&&(t.setBindings({sampler:i||e}),t.shaderInputs.setProps({solidPolygon:{hasTexture:!!i}}))}updateGeometry({props:e,oldProps:t,changeFlags:n}){if(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getPolygon)){let{polygonTesselator:t}=this.state,r=e.data.attributes||{};t.updateGeometry({data:e.data,normalize:e._normalize,geometryBuffer:r.getPolygon,buffers:r,getGeometry:e.getPolygon,positionFormat:e.positionFormat,wrapLongitude:e.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:n.dataChanged,full3d:e._full3d}),this.setState({numInstances:t.instanceCount,startIndices:t.vertexStarts}),n.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(){let{id:e,filled:t,extruded:n}=this.props,r,a,o;if(t){let t=this.getShaders(`top`);t.defines.NON_INSTANCED_MODEL=1;let n=this.getAttributeManager().getBufferLayouts({isInstanced:!1});r=new i.Model(this.context.device,{...t,id:`${e}-top`,topology:`triangle-list`,bufferLayout:n,isIndexed:!0,userData:{excludeAttributes:{instanceVertexValid:!0}}})}if(n){let t=this.getAttributeManager().getBufferLayouts({isInstanced:!0});a=new i.Model(this.context.device,{...this.getShaders(`side`),id:`${e}-side`,bufferLayout:t,geometry:new i.Geometry({topology:`triangle-strip`,attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,1,1,0,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}}),o=new i.Model(this.context.device,{...this.getShaders(`side`),id:`${e}-wireframe`,bufferLayout:t,geometry:new i.Geometry({topology:`line-strip`,attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}})}return{models:[a,o,r].filter(Boolean),topModel:r,sideModel:a,wireframeModel:o}}calculateIndices(e){let{polygonTesselator:t}=this.state;e.startIndices=t.indexStarts,e.value=t.get(`indices`)}calculatePositions(e){let{polygonTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get(`positions`)}calculateVertexValid(e){e.value=this.state.polygonTesselator.get(`vertexValid`)}},jr=`data:image/png;base64,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`,Mr=e=>`barb${Math.floor(e/5)*5}`,Nr={},Pr=e=>3-Math.floor((e+2.5)/50),Fr=e=>Math.floor((e+2.5)%50/5);for(let e=0;e<=175;e+=5)Nr[`barb${e}`]={x:Fr(e)*100,y:Pr(e)*100,width:100,anchorY:11,anchorX:67,height:100,mask:!0};var Ir={sizeScale:25,elevation:0,angleOffset:0,billboard:!1,getColor:e=>e.color||[0,0,0,255],getLabel:e=>e.label,getWeight:e=>e.weight||1,getPosition:e=>e.position,parameters:{depthCompare:`always`,cullMode:`front`},triangulationMode:`quadkey`,shape:null,spacingScale:1},Lr=class extends t.CompositeLayer{initializeState(){this.state={zoom:9999,data:[],bounds:null}}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:t,changeFlags:n}){super.updateState({props:e,oldProps:t,changeFlags:n});let{viewport:r}=this.context,{zoom:i}=r,a=performance.now(),{yMin:o,yMax:s,xMin:c,xMax:l}=_e.getViewportBounds(r),u=s-o,d=l-c,f=u*.3,p=d*.3;if(!n.propsOrDataChanged){let e=this.state.bounds,t=e&&(o<e.yMin||s>e.yMax||c<e.xMin||l>e.xMax);if(!i||Math.abs(i-this.state.zoom)<.5&&!t)return}function m(e){return((e+180)%360+360)%360-180}let{lonlatGrid:h,dataDir:g,dataMag:_,triangulationMode:v,shape:y}=e,b=e.sizeScale*i**.25,x=[];if((v||`quadkey`)===`quadkey`&&Array.isArray(y)&&y.length===2){let[t,n]=y,{latPerPixel:i,lonPerPixel:a}=_e.getLatLonPerPixel(r),u=t,d=n,m=Math.floor(t/2),v=Math.floor(n/2),b=m*n+v,S=NaN,C=NaN,w=h[b];if(w&&Array.isArray(w)){if(m<t-1){let e=h[(m+1)*n+v];e&&Array.isArray(e)&&(S=Math.abs(e[1]-w[1]))}if(!Number.isFinite(S)&&m>0){let e=h[(m-1)*n+v];e&&Array.isArray(e)&&(S=Math.abs(w[1]-e[1]))}if(v<n-1){let e=h[m*n+(v+1)];e&&Array.isArray(e)&&(C=Math.abs(e[0]-w[0]))}if(!Number.isFinite(C)&&v>0){let e=h[m*n+(v-1)];e&&Array.isArray(e)&&(C=Math.abs(w[0]-e[0]))}}if(!Number.isFinite(S)||S===0){let e=h[0],r=h[(t-1)*n+0];e&&r&&(S=Math.abs(r[1]-e[1])/t)}if(!Number.isFinite(C)||C===0){let e=h[0],t=h[0*n+(n-1)];e&&t&&(C=Math.abs(t[0]-e[0])/n)}let T=1/S,E=1/C,ee=e.sizeScale*1.5*e.spacingScale,te=1/(T*i),ne=1/(E*a),re=Math.max(Math.round(ee/te),1),ie=Math.max(Math.round(ee/ne),1);Math.ceil(u/ie),Math.ceil(d/re);for(let t=0;t<u;t+=ie)for(let r=0;r<d;r+=re){let i=t*n+r,a=h[i],u=a[0],d=a[1],m=_[i],v=g[i];d<o-f||d>s+f||u<c-p||u>l+p||!Number.isFinite(u)||!Number.isFinite(d)||!Number.isFinite(m)||!Number.isFinite(v)||x.push({position:[u,d,e.elevation],speed:m,angle:-v+180+e.angleOffset})}}else{let t=24*e.spacingScale,n=Math.max(1,25/b*t),i=Math.ceil(n*1.5),a=Math.max(1,n),o=new Map;for(let t=0;t<h.length;t+=1){let s=h[t];if(!s||!Array.isArray(s)||s.length<2)continue;let c=s[0],l=s[1],u=_[t],d=g[t];if(!Number.isFinite(c)||!Number.isFinite(l)||!Number.isFinite(u)||!Number.isFinite(d))continue;let f=m(c),p=r.project([f,l]),v=p[0],y=p[1];if(v<-i||y<-i||v>r.width+i||y>r.height+i)continue;let b=Math.floor(v/a),S=Math.floor(y/a),C=!1;for(let e=-1;e<=1&&!C;e+=1)for(let t=-1;t<=1&&!C;t+=1){let r=`${b+e}_${S+t}`;if(o.has(r)){let e=o.get(r);Math.hypot(e[0]-v,e[1]-y)<n&&(C=!0)}}C||(o.set(`${b}_${S}`,[v,y]),x.push({position:[c,l,e.elevation],speed:u,angle:-d+180+e.angleOffset}))}}console.log(`vector layer: processed data in `,performance.now()-a,`ms`),this.setState({zoom:i,data:x,sizeScale:b,bounds:{yMin:o-f,yMax:s+f,xMin:c-p,xMax:l+p}})}renderLayers(){let{data:e,sizeScale:t}=this.state;if(e.length)return new n.IconLayer(this.props,{id:`${this.props.id}-icon`,data:e,getIcon:e=>Mr(e.speed),getAngle:e=>e.angle,getPosition:e=>e.position,iconAtlas:jr,iconMapping:Nr,collisionEnabled:!1,sizeScale:t,pickable:!1,collisionTestProps:{sizeScale:t}})}};Lr.layerName=`VectorLayer`,Lr.defaultProps=Ir;var Rr=`#version 300 es
|
|
405
|
+
#define SHADER_NAME particle_layer_update_transform_vertex_shader
|
|
406
|
+
|
|
407
|
+
precision highp float;
|
|
408
|
+
|
|
409
|
+
in vec3 sourcePosition;
|
|
410
|
+
out vec3 targetPosition;
|
|
411
|
+
|
|
412
|
+
uniform sampler2D bitmapTexture;
|
|
413
|
+
uniform sampler2D noiseTexture;
|
|
414
|
+
|
|
415
|
+
const vec2 DROP_POSITION = vec2(0.0);
|
|
416
|
+
const float PI = 3.141592653589793;
|
|
417
|
+
const float DEG2RAD = 0.017453292519943295;
|
|
418
|
+
const float RAD2DEG = 57.29577951308232;
|
|
419
|
+
const float R_EARTH = 6370972.0;
|
|
420
|
+
const float NOISE_TEX_SIZE = 256.0;
|
|
421
|
+
const float PARTICLE_ELEVATION = 100.0; // meters
|
|
422
|
+
|
|
423
|
+
// Optimized hash functions using pre-computed noise texture
|
|
424
|
+
// Much faster than computing sin() per particle
|
|
425
|
+
float hash1D(float n) {
|
|
426
|
+
vec2 uv = vec2(fract(n * 0.00390625), fract(n * 0.015625));
|
|
427
|
+
return texture(noiseTexture, uv).r;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
float hash(vec2 p) {
|
|
431
|
+
vec2 uv = fract(p * 0.00390625);
|
|
432
|
+
return texture(noiseTexture, uv).g;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
vec2 noise2D(vec2 p) {
|
|
436
|
+
vec2 uv = fract(p * 0.00390625);
|
|
437
|
+
vec4 n = texture(noiseTexture, uv);
|
|
438
|
+
return n.rg * 2.0 - 1.0;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
float rad(float d) { return d * DEG2RAD; }
|
|
442
|
+
float deg(float r) { return r * RAD2DEG; }
|
|
443
|
+
|
|
444
|
+
vec3 llToNormal(vec2 llDeg) {
|
|
445
|
+
float lon = rad(llDeg.x);
|
|
446
|
+
float lat = rad(llDeg.y);
|
|
447
|
+
float cl = cos(lat);
|
|
448
|
+
return vec3(cl * cos(lon), cl * sin(lon), sin(lat));
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
float greatCircleDistance(vec2 pos1, vec2 pos2) {
|
|
452
|
+
float lat1 = rad(pos1.y), lon1 = rad(pos1.x);
|
|
453
|
+
float lat2 = rad(pos2.y), lon2 = rad(pos2.x);
|
|
454
|
+
float dLat = lat2 - lat1;
|
|
455
|
+
float dLon = lon2 - lon1;
|
|
456
|
+
if (abs(dLon) > PI) dLon = dLon > 0.0 ? dLon - 2.0 * PI : dLon + 2.0 * PI;
|
|
457
|
+
float a = sin(dLat * 0.5); a *= a;
|
|
458
|
+
float b = sin(dLon * 0.5); b *= b;
|
|
459
|
+
float c = 2.0 * atan(sqrt(a + cos(lat1) * cos(lat2) * b), sqrt(1.0 - a - cos(lat1) * cos(lat2) * b));
|
|
460
|
+
return deg(c);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
float hemisphereVisibility(vec2 llDeg, vec2 centerLLDeg) {
|
|
464
|
+
float d = dot(llToNormal(llDeg), llToNormal(centerLLDeg));
|
|
465
|
+
// Smooth fade from ~110° back side
|
|
466
|
+
return smoothstep(-0.342, 0.0, d); // -0.342 ≈ cos(110°)
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
bool isGlobalData(vec4 b) {
|
|
470
|
+
float lonSpan = b.z - b.x;
|
|
471
|
+
float latSpan = b.w - b.y;
|
|
472
|
+
return lonSpan >= 350.0 && latSpan >= 170.0;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
float wrapLongitude(float lng) {
|
|
476
|
+
return mod(lng + 180.0, 360.0) - 180.0;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
// Adapts longitude to the bounds domain (handles 0-360 vs -180/180)
|
|
480
|
+
float adjustLon(float lon, vec4 b) {
|
|
481
|
+
if (b.z > 180.0 && lon < 0.0) {
|
|
482
|
+
return lon + 360.0;
|
|
483
|
+
}
|
|
484
|
+
return lon;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
bool isInDataBounds(vec2 pos, vec4 b) {
|
|
488
|
+
if (pos.y < b.y || pos.y > b.w) return false;
|
|
489
|
+
if (isGlobalData(b)) return true;
|
|
490
|
+
|
|
491
|
+
float px = adjustLon(pos.x, b);
|
|
492
|
+
return px >= b.x && px <= b.z;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
bool isInViewportBounds(vec2 pos, vec4 vb) {
|
|
496
|
+
if (pos.y < vb.y || pos.y > vb.w) return false;
|
|
497
|
+
|
|
498
|
+
float lng = mod(pos.x + 180.0, 360.0) - 180.0;
|
|
499
|
+
float minLng = mod(vb.x + 180.0, 360.0) - 180.0;
|
|
500
|
+
float maxLng = mod(vb.z + 180.0, 360.0) - 180.0;
|
|
501
|
+
|
|
502
|
+
// If viewport crosses dateline
|
|
503
|
+
return (minLng <= maxLng) ? (lng >= minLng && lng <= maxLng) : (lng >= minLng || lng <= maxLng);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
vec2 getUV(vec2 pos, vec4 b) {
|
|
507
|
+
float v = clamp((pos.y - b.w) / (b.y - b.w), 0.0, 1.0);
|
|
508
|
+
float u;
|
|
509
|
+
if (isGlobalData(b)) {
|
|
510
|
+
float minLon = b.x;
|
|
511
|
+
float offsetLon = pos.x - minLon;
|
|
512
|
+
float lon360 = mod(offsetLon, 360.0);
|
|
513
|
+
if (lon360 < 0.0) lon360 += 360.0;
|
|
514
|
+
u = clamp(lon360 / 360.0, 0.0, 1.0);
|
|
515
|
+
} else {
|
|
516
|
+
float px = adjustLon(pos.x, b);
|
|
517
|
+
float lonSpan = max(1e-6, b.z - b.x);
|
|
518
|
+
u = clamp((px - b.x) / lonSpan, 0.0, 1.0);
|
|
519
|
+
}
|
|
520
|
+
return vec2(u, v);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
vec2 destinationPoint(vec2 fromLL, float distMeters, float bearingDegrees) {
|
|
524
|
+
float d = distMeters / R_EARTH;
|
|
525
|
+
float r = rad(bearingDegrees);
|
|
526
|
+
float y1 = rad(fromLL.y);
|
|
527
|
+
float x1 = rad(fromLL.x);
|
|
528
|
+
|
|
529
|
+
float siny2 = sin(y1) * cos(d) + cos(y1) * sin(d) * cos(r);
|
|
530
|
+
float y2 = asin(siny2);
|
|
531
|
+
float y = sin(r) * sin(d) * cos(y1);
|
|
532
|
+
float x = cos(d) - sin(y1) * siny2;
|
|
533
|
+
float x2 = x1 + atan(y, x);
|
|
534
|
+
|
|
535
|
+
return vec2(deg(x2), deg(y2));
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
vec2 spawnOnGlobeRadius(float particleIndex) {
|
|
539
|
+
float phase = sin(bitmap.time * 0.15 + particleIndex * 0.0073) * 0.5 + 0.5;
|
|
540
|
+
|
|
541
|
+
vec2 rnd = vec2(
|
|
542
|
+
hash1D(particleIndex * 0.013 + phase * 2.1),
|
|
543
|
+
hash1D(particleIndex * 0.017 + phase * 3.7)
|
|
544
|
+
);
|
|
545
|
+
|
|
546
|
+
float rMeters = sqrt(max(1e-6, rnd.x)) * max(0.0, bitmap.viewportGlobeRadius);
|
|
547
|
+
float bearing = rnd.y * 360.0;
|
|
548
|
+
|
|
549
|
+
vec2 pos = destinationPoint(bitmap.viewportCenter, rMeters, bearing);
|
|
550
|
+
|
|
551
|
+
pos += noise2D(vec2(particleIndex * 0.031, bitmap.time * 0.001)) * 0.25;
|
|
552
|
+
pos.y = clamp(pos.y, bitmap.bounds.y, bitmap.bounds.w);
|
|
553
|
+
pos.x = isGlobalData(bitmap.bounds) ? wrapLongitude(pos.x) : clamp(pos.x, bitmap.bounds.x, bitmap.bounds.z);
|
|
554
|
+
|
|
555
|
+
return pos;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
bool hasWindDataAt(vec2 pos) {
|
|
559
|
+
vec2 uv = getUV(pos, bitmap.bounds);
|
|
560
|
+
return texture(bitmapTexture, uv).a >= 0.5;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
bool onFrontHemisphere(vec2 llDeg, vec2 centerLLDeg, float threshold) {
|
|
564
|
+
return dot(llToNormal(llDeg), llToNormal(centerLLDeg)) >= threshold;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
vec2 advectOnGlobe(vec2 currentPos, vec2 speed, float particleIndex, float dt) {
|
|
568
|
+
float latRad = rad(clamp(currentPos.y, -89.9, 89.9));
|
|
569
|
+
float cosLat = max(1e-6, cos(latRad));
|
|
570
|
+
|
|
571
|
+
float sig = hash1D(particleIndex * 0.0239);
|
|
572
|
+
float speedVar = 0.7 + 0.6 * hash1D(particleIndex * 0.019 + 4.5);
|
|
573
|
+
float temporalVar = 0.9 + 0.2 * sin(bitmap.time * 0.05 * (1.0 + sig * 0.5) + sig * 6.28318);
|
|
574
|
+
|
|
575
|
+
float dLat = speed.y * bitmap.speedFactor * dt * speedVar * temporalVar;
|
|
576
|
+
float dLon = speed.x * bitmap.speedFactor * dt * speedVar * temporalVar / cosLat;
|
|
577
|
+
|
|
578
|
+
vec2 turb = noise2D(vec2(currentPos.x * 0.1 + bitmap.time * 0.01, currentPos.y * 0.1 + particleIndex * 0.001)) * 0.02;
|
|
579
|
+
float speedMag = length(speed);
|
|
580
|
+
if (speedMag > 0.001) {
|
|
581
|
+
turb *= min(1.0, speedMag * 10.0);
|
|
582
|
+
turb *= cosLat;
|
|
583
|
+
}
|
|
584
|
+
dLat += turb.y * bitmap.speedFactor * dt;
|
|
585
|
+
dLon += turb.x * bitmap.speedFactor * dt / cosLat;
|
|
586
|
+
|
|
587
|
+
vec2 randomWalk = noise2D(vec2(particleIndex * 0.027, bitmap.time * 0.003)) * 0.001;
|
|
588
|
+
dLat += randomWalk.y;
|
|
589
|
+
dLon += randomWalk.x;
|
|
590
|
+
|
|
591
|
+
vec2 newPos = vec2(currentPos.x + dLon, currentPos.y + dLat);
|
|
592
|
+
|
|
593
|
+
if (newPos.y > 90.0) { newPos.y = 180.0 - newPos.y; newPos.x += 180.0; }
|
|
594
|
+
else if (newPos.y < -90.0) { newPos.y = -180.0 - newPos.y; newPos.x += 180.0; }
|
|
595
|
+
|
|
596
|
+
newPos.x = wrapLongitude(newPos.x);
|
|
597
|
+
return newPos;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
bool shouldDropParticle(float particleIndex, float particleAge, vec2 currentPos, vec2 centerLL) {
|
|
601
|
+
float lifeVar = hash1D(particleIndex * 0.01 + 0.5) * 0.4 + 0.8;
|
|
602
|
+
float adjustedMaxAge = bitmap.maxAge * lifeVar;
|
|
603
|
+
|
|
604
|
+
float cycleLength = adjustedMaxAge + 3.0 + hash1D(particleIndex * 0.017 + 1.3) * 5.0;
|
|
605
|
+
float timeOffset = hash1D(particleIndex * 0.023 + 2.7) * cycleLength;
|
|
606
|
+
bool ageCycle = abs(mod(particleIndex + timeOffset, cycleLength) - mod(bitmap.time * 0.5, cycleLength)) < 0.5;
|
|
607
|
+
|
|
608
|
+
bool drop = ageCycle;
|
|
609
|
+
|
|
610
|
+
if (bitmap.isGlobe == 1) {
|
|
611
|
+
if (bitmap.cullBackside == 1) {
|
|
612
|
+
float cullProbability = 1.0 - hemisphereVisibility(currentPos, centerLL);
|
|
613
|
+
if (hash1D(particleIndex * 0.013 + bitmap.time * 0.002) < cullProbability) drop = true;
|
|
614
|
+
}
|
|
615
|
+
if (!isInDataBounds(currentPos, bitmap.bounds)) drop = true;
|
|
616
|
+
if (greatCircleDistance(currentPos, centerLL) > 90.0) drop = true;
|
|
617
|
+
} else {
|
|
618
|
+
bool boundsCull = !isInViewportBounds(currentPos, bitmap.viewportBounds) ||
|
|
619
|
+
!isInDataBounds(currentPos, bitmap.bounds);
|
|
620
|
+
if (boundsCull) drop = true;
|
|
621
|
+
}
|
|
622
|
+
return drop;
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
void main() {
|
|
626
|
+
float particleIndex = mod(float(gl_VertexID), bitmap.numParticles);
|
|
627
|
+
float particleAge = floor(float(gl_VertexID) / bitmap.numParticles);
|
|
628
|
+
|
|
629
|
+
if (particleAge > 0.0) { return; }
|
|
630
|
+
|
|
631
|
+
bool isNewParticle = (sourcePosition.xy == DROP_POSITION);
|
|
632
|
+
|
|
633
|
+
if (isNewParticle) {
|
|
634
|
+
vec2 position = DROP_POSITION;
|
|
635
|
+
if (bitmap.isGlobe == 1) {
|
|
636
|
+
bool found = false;
|
|
637
|
+
for (int attempt = 0; attempt < 6; attempt++) {
|
|
638
|
+
float offset = float(attempt) * bitmap.numParticles;
|
|
639
|
+
vec2 candidate = spawnOnGlobeRadius(particleIndex + offset);
|
|
640
|
+
bool visible = bitmap.cullBackside == 0 ||
|
|
641
|
+
onFrontHemisphere(candidate, bitmap.viewportCenter, -0.1);
|
|
642
|
+
if (visible && hasWindDataAt(candidate)) {
|
|
643
|
+
position = candidate;
|
|
644
|
+
found = true;
|
|
645
|
+
break;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
if (!found) {
|
|
649
|
+
targetPosition.xy = DROP_POSITION;
|
|
650
|
+
targetPosition.z = 0.0;
|
|
651
|
+
return;
|
|
652
|
+
}
|
|
653
|
+
} else {
|
|
654
|
+
bool found = false;
|
|
655
|
+
// Prefer keeping particles inside the current viewport to preserve on-screen density.
|
|
656
|
+
for (int attempt = 0; attempt < 10; attempt++) {
|
|
657
|
+
float a = float(attempt);
|
|
658
|
+
vec2 rnd = vec2(
|
|
659
|
+
hash1D(particleIndex * 0.041 + 0.73 + a * 13.17 + bitmap.time * 0.001),
|
|
660
|
+
hash1D(particleIndex * 0.053 + 1.91 + a * 17.39 + bitmap.time * 0.001)
|
|
661
|
+
);
|
|
662
|
+
vec2 candidate = mix(bitmap.bounds.xy, bitmap.bounds.zw, rnd);
|
|
663
|
+
if (isInViewportBounds(candidate, bitmap.viewportBounds) && hasWindDataAt(candidate)) {
|
|
664
|
+
position = candidate;
|
|
665
|
+
found = true;
|
|
666
|
+
break;
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
// Fallback: still spawn in data mesh even if viewport intersection is tiny.
|
|
670
|
+
if (!found) {
|
|
671
|
+
for (int attempt = 0; attempt < 6; attempt++) {
|
|
672
|
+
float a = float(attempt + 10);
|
|
673
|
+
vec2 rnd = vec2(
|
|
674
|
+
hash1D(particleIndex * 0.041 + 0.73 + a * 13.17 + bitmap.time * 0.001),
|
|
675
|
+
hash1D(particleIndex * 0.053 + 1.91 + a * 17.39 + bitmap.time * 0.001)
|
|
676
|
+
);
|
|
677
|
+
vec2 candidate = mix(bitmap.bounds.xy, bitmap.bounds.zw, rnd);
|
|
678
|
+
if (hasWindDataAt(candidate)) {
|
|
679
|
+
position = candidate;
|
|
680
|
+
found = true;
|
|
681
|
+
break;
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
if (!found) {
|
|
686
|
+
targetPosition = vec3(DROP_POSITION, 0.0);
|
|
687
|
+
return;
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
targetPosition = vec3(position, PARTICLE_ELEVATION);
|
|
691
|
+
return;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
if (shouldDropParticle(particleIndex, particleAge, sourcePosition.xy, bitmap.viewportCenter)) {
|
|
695
|
+
targetPosition = vec3(DROP_POSITION, 0.0); // Keep dropped particles at z=0 for detection
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
vec2 currentPos = sourcePosition.xy;
|
|
700
|
+
|
|
701
|
+
vec2 uvPos = currentPos;
|
|
702
|
+
if (isGlobalData(bitmap.bounds)) {
|
|
703
|
+
float lon360 = mod(uvPos.x, 360.0);
|
|
704
|
+
if (lon360 < 0.0) lon360 += 360.0;
|
|
705
|
+
uvPos.x = lon360;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
vec2 uv = getUV(uvPos, bitmap.bounds);
|
|
709
|
+
vec4 wind = texture(bitmapTexture, uv);
|
|
710
|
+
|
|
711
|
+
// Drop particles with no data
|
|
712
|
+
if (wind.a < 0.5) {
|
|
713
|
+
targetPosition = vec3(DROP_POSITION, 0.0);
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
vec2 newPos;
|
|
718
|
+
if (bitmap.isGlobe == 1) {
|
|
719
|
+
newPos = advectOnGlobe(currentPos, wind.xy, particleIndex, 1.0);
|
|
720
|
+
if (bitmap.cullBackside == 1 && hemisphereVisibility(newPos, bitmap.viewportCenter) < 0.1) {
|
|
721
|
+
targetPosition = vec3(DROP_POSITION, 0.0);
|
|
722
|
+
return;
|
|
723
|
+
}
|
|
724
|
+
} else {
|
|
725
|
+
float lat = clamp(currentPos.y, -85.0, 85.0);
|
|
726
|
+
float cosLat = cos(rad(lat));
|
|
727
|
+
|
|
728
|
+
float sig = hash1D(particleIndex * 0.0239);
|
|
729
|
+
float speedVar = 0.7 + 0.6 * hash1D(particleIndex * 0.019 + 4.5);
|
|
730
|
+
float temporalVar = 0.9 + 0.2 * sin(bitmap.time * 0.05 * (1.0 + sig * 0.5) + sig * 6.28318);
|
|
731
|
+
vec2 speed = wind.xy * (speedVar * temporalVar);
|
|
732
|
+
|
|
733
|
+
vec2 turb = noise2D(vec2(currentPos.x * 0.1 + bitmap.time * 0.01, currentPos.y * 0.1 + particleIndex * 0.001)) * 0.02;
|
|
734
|
+
float sMag = length(speed);
|
|
735
|
+
if (sMag > 0.001) turb *= min(1.0, sMag * 10.0);
|
|
736
|
+
speed += turb;
|
|
737
|
+
|
|
738
|
+
vec2 randomWalk = noise2D(vec2(particleIndex * 0.027, bitmap.time * 0.003)) * 0.0001;
|
|
739
|
+
|
|
740
|
+
newPos = currentPos + vec2(
|
|
741
|
+
(speed.x + randomWalk.x) * bitmap.speedFactor / cosLat,
|
|
742
|
+
(speed.y + randomWalk.y) * bitmap.speedFactor
|
|
743
|
+
);
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
if (isGlobalData(bitmap.bounds)) {
|
|
747
|
+
newPos.x = wrapLongitude(newPos.x);
|
|
748
|
+
newPos.y = clamp(newPos.y, bitmap.bounds.y, bitmap.bounds.w);
|
|
749
|
+
} else {
|
|
750
|
+
if (!isInDataBounds(newPos, bitmap.bounds)) {
|
|
751
|
+
targetPosition = vec3(DROP_POSITION, 0.0);
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
newPos.x = clamp(newPos.x, bitmap.bounds.x, bitmap.bounds.z);
|
|
755
|
+
newPos.y = clamp(newPos.y, bitmap.bounds.y, bitmap.bounds.w);
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
if (!hasWindDataAt(newPos)) {
|
|
759
|
+
targetPosition = vec3(DROP_POSITION, 0.0);
|
|
760
|
+
return;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
targetPosition = vec3(newPos, PARTICLE_ELEVATION);
|
|
764
|
+
}
|
|
765
|
+
`,zr={name:`bitmap`,vs:`uniform bitmapUniforms {
|
|
766
|
+
float numParticles;
|
|
767
|
+
float maxAge;
|
|
768
|
+
float speedFactor;
|
|
769
|
+
float time;
|
|
770
|
+
float seed;
|
|
771
|
+
vec4 viewportBounds;
|
|
772
|
+
float viewportZoomChangeFactor;
|
|
773
|
+
vec4 bounds;
|
|
774
|
+
vec2 viewportCenter;
|
|
775
|
+
int cullBackside;
|
|
776
|
+
int isGlobe;
|
|
777
|
+
float viewportGlobeRadius;
|
|
778
|
+
float minWindSpeed;
|
|
779
|
+
int ringBufferIndex;
|
|
780
|
+
} bitmap;
|
|
781
|
+
`,uniformTypes:{numParticles:`f32`,maxAge:`f32`,speedFactor:`f32`,time:`f32`,seed:`f32`,viewportBounds:`vec4<f32>`,viewportZoomChangeFactor:`f32`,bounds:`vec4<f32>`,viewportCenter:`vec2<f32>`,cullBackside:`i32`,isGlobe:`i32`,viewportGlobeRadius:`f32`,minWindSpeed:`f32`,ringBufferIndex:`i32`}},Br=new Map,Vr=50,Hr=6370972,Ur=null;function Wr(){if(!Ur){Ur=new Float32Array(256*256*4);for(let e=0;e<256*256;e++){let t=e*4,n=e%256,r=Math.floor(e/256);Ur[t]=Math.abs(Math.sin(n*12.9898+r*78.233)*43758.5453)%1,Ur[t+1]=Math.abs(Math.sin(n*93.9898+r*67.345)*24634.6345)%1,Ur[t+2]=Math.abs(Math.sin(n*45.164+r*23.789)*65432.1234)%1,Ur[t+3]=Math.abs(Math.sin(n*78.456+r*12.567)*87654.3456)%1}}return Ur}function Gr(e){let t=typeof e==`string`?e:JSON.stringify(e),n=0,r,i;if(t.length===0)return n.toString();for(r=0;r<t.length;r++)i=t.charCodeAt(r),n=(n<<5)-n+i,n|=0;return n.toString()}function Kr(e,t){if(Br.size>=Vr){let e=Br.keys().next().value;e&&Br.delete(e)}Br.set(e,t)}function qr(e){if(!e||e.length!==4)return!1;let[t,n,r,i]=e,a=r-t,o=i-n;return a>=350&&o>=170}function Jr(e){return e/180*Math.PI}function Yr(e,t){let n=e*Math.PI/180;return[-t*Math.sin(n),-t*Math.cos(n)]}function Xr(e,t){let n=t-e;for(;n>180;)n-=360;for(;n<-180;)n+=360;return n}function Zr(e,t,n){return Math.min(n,Math.max(t,e))}function Qr(e,t,n=Hr){let r=n,i=Jr(e[1]),a=Jr(e[0]),o=Jr(t[1]),s=Jr(t[0]),c=o-i,l=s-a;Math.abs(l)>Math.PI&&(l=l>0?l-2*Math.PI:l+2*Math.PI);let u=Math.sin(c/2)*Math.sin(c/2)+Math.cos(i)*Math.cos(o)*Math.sin(l/2)*Math.sin(l/2);return r*(2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u)))}function $r(e){let[t,n,r,i]=e.getBounds(),a=(r-t)*.2,o=(i-n)*.2,s=t-a,c=r+a,l=Math.max(n-o,-90),u=Math.min(i+o,90);return c-s>360?[-180,l,180,u]:(s=(s+180)%360-180,c=(c+180)%360-180,[s,l,c,u])}function ei(e){let t=[e.longitude,e.latitude],n=[Qr(t,e.unproject([e.width/2,0])),Qr(t,e.unproject([0,e.height/2]))];return e.width>e.height?n.push(Qr(t,e.unproject([e.width/4,e.height/2])),Qr(t,e.unproject([e.width*3/4,e.height/2])),Qr(t,e.unproject([e.width,e.height/2]))):n.push(Qr(t,e.unproject([e.width/2,e.height/4])),Qr(t,e.unproject([e.width/2,e.height*3/4])),Qr(t,e.unproject([e.width/2,e.height]))),Math.max(...n)}var ti=[255,255,255,255],ni={...n.LineLayer.defaultProps,image:{type:`image`,value:null,async:!0},numParticles:{type:`number`,min:1,max:1e5,value:1e4},maxAge:{type:`number`,min:1,max:255,value:50},speedFactor:{type:`number`,min:0,max:255,value:3},color:{type:`color`,value:ti},width:{type:`number`,value:1.2},animate:{type:`boolean`,value:!0},bounds:void 0,coordinateSystem:t.COORDINATE_SYSTEM.LNGLAT,wrapLongitude:!0,trailLength:{type:`number`,min:2,max:100,value:22},fadeTrails:{type:`boolean`,value:!0},parameters:{depthCompare:`always`,depthWriteEnabled:!0,cullMode:`none`}},ri=class extends n.LineLayer{boundsCache=null;_sourcePositions64Low=new Float32Array([0,0,0]);_targetPositions64Low=new Float32Array([0,0,0]);_pickingColors=new Float32Array([0,0,0]);_widths=new Float32Array([1]);getShaders(){let e=super.getShaders(),{numParticles:t,trailLength:n=22,maxAge:r}=this.props,i=Math.min(n,r);return{...e,inject:{"vs:#decl":`
|
|
782
|
+
out float drop;
|
|
783
|
+
out float trailAge;
|
|
784
|
+
out float particleVariation;
|
|
785
|
+
const vec2 DROP_POSITION = vec2(0);
|
|
786
|
+
|
|
787
|
+
float hash(float n) {
|
|
788
|
+
return fract(sin(n) * 43758.5453123);
|
|
789
|
+
}
|
|
790
|
+
`,"vs:#main-start":`
|
|
791
|
+
// Check for dropped particles (at origin) or invalid segments
|
|
792
|
+
bool isDropped = (length(instanceSourcePositions.xy) < 0.001) ||
|
|
793
|
+
(length(instanceTargetPositions.xy) < 0.001);
|
|
794
|
+
|
|
795
|
+
// Check for unreasonably long segments (data edge artifacts)
|
|
796
|
+
// Handle dateline wraparound: if longitude difference > 180, wrap it
|
|
797
|
+
vec2 diff = instanceTargetPositions.xy - instanceSourcePositions.xy;
|
|
798
|
+
if (abs(diff.x) > 180.0) {
|
|
799
|
+
diff.x = diff.x > 0.0 ? diff.x - 360.0 : diff.x + 360.0;
|
|
800
|
+
}
|
|
801
|
+
float segmentLength = length(diff);
|
|
802
|
+
bool isTooLong = segmentLength > 20.0; // Keep tails while filtering obvious artifacts
|
|
803
|
+
|
|
804
|
+
drop = float(isDropped || isTooLong);
|
|
805
|
+
|
|
806
|
+
// For instanced rendering: gl_InstanceID gives us which trail segment
|
|
807
|
+
// instances 0..numParticles-1 = age 0 segments (connecting age 0 to age 1)
|
|
808
|
+
// instances numParticles..2*numParticles-1 = age 1 segments, etc.
|
|
809
|
+
float particleIndex = mod(float(gl_InstanceID), ${t}.0);
|
|
810
|
+
float ageIndex = floor(float(gl_InstanceID) / ${t}.0);
|
|
811
|
+
trailAge = ageIndex / ${Math.max(1,i-1)}.0;
|
|
812
|
+
|
|
813
|
+
particleVariation = hash(particleIndex);
|
|
814
|
+
`,"fs:#decl":`
|
|
815
|
+
in float drop;
|
|
816
|
+
in float trailAge;
|
|
817
|
+
in float particleVariation;
|
|
818
|
+
`,"fs:#main-end":`
|
|
819
|
+
if (drop > 0.5) discard;
|
|
820
|
+
|
|
821
|
+
${this.props.fadeTrails?`
|
|
822
|
+
// Age-based fade: head (trailAge=0) is opaque, tail (trailAge=1) fades out
|
|
823
|
+
float fadeVariation = 0.8 + particleVariation * 0.4;
|
|
824
|
+
float trailFade = 1.0 - smoothstep(0.0, fadeVariation, trailAge);
|
|
825
|
+
fragColor.a = max(0.35, trailFade * trailFade);
|
|
826
|
+
`:``}
|
|
827
|
+
`}}}shouldResetParticles(e,t){if(!t)return!1;let n=Math.abs(e.zoom-t.zoom);return e.projection?.mode!==`globe`&&n>3}getNumInstances(){if(this.state?.numTrailSegments)return this.state.numTrailSegments;let{numParticles:e,trailLength:t=22,maxAge:n}=this.props;return e*(Math.min(t,n)-1)}initializeState(){super.initializeState();let e=this.getAttributeManager();e.remove([`instanceSourcePositions`,`instanceTargetPositions`,`instanceColors`,`instanceWidths`]),e.addInstanced({instanceSourcePositions:{size:3,type:`float32`,noAlloc:!0},instanceTargetPositions:{size:3,type:`float32`,noAlloc:!0},instanceColors:{size:4,type:`uint8`,normalized:!0,noAlloc:!0,defaultValue:[...this.props.color.map(e=>e/255)]}}),this._setupState()}_toLonLatPoint(e){return!Array.isArray(e)||e.length<2?[NaN,NaN]:[Number(e[0]),Number(e[1])]}_getGridCacheKey(e,t,n){if(!e.length)return`${t}x${n}-empty`;let r=e[0],i=e[Math.floor(e.length/2)]||r,a=e[e.length-1]||r;return Gr(`${t}x${n}-${r.join(`,`)}-${i.join(`,`)}-${a.join(`,`)}`)}_resolveGrid(){let e=this.props.lonlatGrid;if(!Array.isArray(e)||e.length===0)return null;let t=e[0],n=Array.isArray(t)&&t.length>0&&Array.isArray(t[0]),r=[],i=0,a=0;if(n){if(i=e.length,a=Array.isArray(e[0])?e[0].length:0,i<=0||a<=0)return null;r=Array(i*a);let t=0;for(let n=0;n<i;n++){let i=e[n];if(!Array.isArray(i)||i.length<a)return null;for(let e=0;e<a;e++)r[t++]=this._toLonLatPoint(i[e])}}else{r=e.map(e=>this._toLonLatPoint(e)),Array.isArray(this.props.shape)&&Number.isFinite(this.props.shape[0])&&Number.isFinite(this.props.shape[1])?(i=Math.max(1,Math.floor(this.props.shape[0])),a=Math.max(1,Math.floor(this.props.shape[1]))):(i=1,a=r.length);let t=i*a;if(t<=0||r.length<t)return null;r.length!==t&&(r=r.slice(0,t))}return{points:r,rows:i,cols:a,gridKey:this._getGridCacheKey(r,i,a)}}_isFinitePoint(e){return Array.isArray(e)&&e.length>=2&&Number.isFinite(e[0])&&Number.isFinite(e[1])}_adjustLonForBounds(e,t,n){return Number.isFinite(e)?n>180&&e<0?e+360:t<-180&&e>180?e-360:e:e}_buildMeshTriangles(e){let t=`${e.gridKey}-triangles`,n=Br.get(t);if(n?.triangles)return n.triangles;let{points:r,rows:i,cols:a}=e,o=[];if(i>1&&a>1)for(let e=0;e<i-1;e++)for(let t=0;t<a-1;t++){let n=e*a+t,i=n+1,s=(e+1)*a+t,c=s+1;if(!this._isFinitePoint(r[n])||!this._isFinitePoint(r[i])||!this._isFinitePoint(r[s])||!this._isFinitePoint(r[c]))continue;let l=r[n],u=r[i],d=r[s],f=r[c],p=Math.abs(Xr(l[0],u[0])),m=Math.abs(Xr(d[0],f[0]));p>120||m>120||(o.push([n,i,s]),o.push([i,c,s]))}else if(r.length>=3){let e=[],t=!1;for(let n of r){if(!this._isFinitePoint(n)){t=!0;break}e.push(n[0],n[1])}if(!t){let t=ke(e);for(let e=0;e+2<t.length;e+=3)o.push([t[e],t[e+1],t[e+2]])}}return Kr(t,{triangles:o}),o}_getWindTextureSize(e,t,n,r,i){if(e>1&&t>1)return{width:Zr(Math.round(t),64,2048),height:Zr(Math.round(e),64,2048)};let a=Zr(Math.round(Math.sqrt(Math.max(1,n))*8),64,1024),o=r>0&&i>0?r/i:1;return{width:Zr(Math.round(a*Math.sqrt(o)),64,2048),height:Zr(Math.round(a/Math.sqrt(o)),64,2048)}}_createTrailLines(){let{numParticles:e,maxAge:t=50,trailLength:n=22}=this.props,r=Math.min(n,t),i=[];for(let t=0;t<e;t++)for(let n=0;n<r-1;n++){let r=t+n*e,a=t+(n+1)*e;i.push({sourcePosition:[0,0,0],targetPosition:[0,0,0],sourceIndex:r,targetIndex:a,age:n,particleId:t})}return i}_getDataFingerprint(e,t){let n=e=>{if(!e?.length)return`0`;let t=e.length;return`${t}-${e[0]}-${e[Math.floor(t/2)]}-${e[t-1]}`},r=`${n(e)}|${n(t)}`,i=0;for(let e=0;e<r.length;e++)i=(i<<5)-i+r.charCodeAt(e),i|=0;return i.toString()}_createWindTexture(){let{dataDir:e,dataMag:t}=this.props,n=this._resolveGrid();if(!n)return null;let{points:r,rows:i,cols:a,gridKey:o}=n,s=`${o}-${this._getDataFingerprint(e,t)}-texture`,c=Br.get(s);if(c?.texture)return c.texture;let{minLng:l,minLat:u,maxLng:d,maxLat:f}=this._getBoundsFromGrid(r,o),p=Math.max(1e-6,d-l),m=Math.max(1e-6,f-u),{width:h,height:g}=this._getWindTextureSize(i,a,r.length,p,m),_=`scratch-${h}x${g}`,v=Br.get(_)?.uvData||new Float32Array(h*g*4);Br.has(_)||Kr(_,{uvData:v}),v.fill(0);let y=.02,b=qr([l,u,d,f]),x=(e,t)=>Math.sin(e*12.9898+t*78.233)*43758.5453%1,S=this._buildMeshTriangles(n),C=new Float32Array(r.length),w=new Float32Array(r.length),T=new Float32Array(r.length),E=new Float32Array(r.length),ee=new Uint8Array(r.length);for(let n=0;n<r.length;n++){let i=r[n];if(!this._isFinitePoint(i)){C[n]=NaN,w[n]=NaN;continue}let a=this._adjustLonForBounds(i[0],l,d),o=i[1];C[n]=(a-l)/p*(h-1),w[n]=(f-o)/m*(g-1);let s=Number(e?.[n]),c=Number(t?.[n]);if(Number.isFinite(s)&&Number.isFinite(c)&&c>=0){let[e,t]=Yr(s,c);T[n]=e,E[n]=t,ee[n]=1}}for(let e=0;e<S.length;e++){let[t,n,r]=S[e];if(!ee[t]||!ee[n]||!ee[r])continue;let i=C[t],a=w[t],o=C[n],s=w[n],c=C[r],l=w[r];if(!Number.isFinite(i)||!Number.isFinite(a)||!Number.isFinite(o)||!Number.isFinite(s)||!Number.isFinite(c)||!Number.isFinite(l))continue;let u=(s-l)*(i-c)+(c-o)*(a-l);if(!Number.isFinite(u)||Math.abs(u)<1e-8)continue;let d=Zr(Math.floor(Math.min(i,o,c)),0,h-1),f=Zr(Math.ceil(Math.max(i,o,c)),0,h-1),p=Zr(Math.floor(Math.min(a,s,l)),0,g-1),m=Zr(Math.ceil(Math.max(a,s,l)),0,g-1);for(let e=p;e<=m;e++)for(let p=d;p<=f;p++){let d=p+.5,f=e+.5,m=((s-l)*(d-c)+(c-o)*(f-l))/u,g=((l-a)*(d-c)+(i-c)*(f-l))/u,_=1-m-g;if(m<-1e-4||g<-1e-4||_<-1e-4)continue;let y=(e*h+p)*4;v[y]=m*T[t]+g*T[n]+_*T[r],v[y+1]=m*E[t]+g*E[n]+_*E[r],v[y+2]=0,v[y+3]=1}}for(let e=0;e<g;e++)for(let t=0;t<h;t++){let n=(e*h+t)*4;v[n+3]<.5||(v[n]+=(x(t*.1,e*.1)-.5)*y,v[n+1]+=(x(t*.1+100,e*.1+100)-.5)*y)}let te=this.context.device.createTexture({width:h,height:g,data:v,format:`rgba32float`,sampler:{minFilter:`linear`,magFilter:`linear`,addressModeU:b?`repeat`:`clamp-to-edge`,addressModeV:`clamp-to-edge`}});return Kr(s,{texture:te}),te}_getBoundsFromGrid(e,t){let n=`${t}-bounds`,r=Br.get(n);if(r?.bounds)return r.bounds;let i=-1/0,a=1/0,o=-1/0,s=1/0;for(let t of e){let[e,n]=t;!Number.isFinite(e)||!Number.isFinite(n)||(e>i&&(i=e),e<a&&(a=e),n>o&&(o=n),n<s&&(s=n))}(!Number.isFinite(a)||!Number.isFinite(i)||!Number.isFinite(s)||!Number.isFinite(o))&&(a=-180,i=180,s=-90,o=90);let c={maxLng:i,minLng:a,maxLat:o,minLat:s};return Kr(n,{bounds:c}),c}_setupState(){let e=this._resolveGrid(),{minLng:t,minLat:n,maxLng:r,maxLat:i}=e?this._getBoundsFromGrid(e.points,e.gridKey):{minLng:-180,minLat:-90,maxLng:180,maxLat:90},a=[t,n,r,i];(isNaN(t)||isNaN(r)||isNaN(n)||isNaN(i))&&(a=[-180,-90,180,90]);let o=qr(a);this.setState({bounds:a,trailLines:this._createTrailLines(),isGlobalData:o}),this._setupTransformFeedback()}updateState(e){super.updateState(e);let{props:t,oldProps:n}=e,r=this.state.initialized&&n.color&&(t.color[0]!==n.color[0]||t.color[1]!==n.color[1]||t.color[2]!==n.color[2]||t.color[3]!==n.color[3]),i=t.numParticles!==n.numParticles||t.maxAge!==n.maxAge||t.width!==n.width||t.trailLength!==n.trailLength||r,a=t.image!==n.image||t.dataDir!==n.dataDir||t.dataMag!==n.dataMag||t.lonlatGrid!==n.lonlatGrid||t.shape!==n.shape;i?this._setupState():a&&this.state.initialized&&this._updateWindTexture()}finalizeState(e){this._deleteTransformFeedback(),super.finalizeState(e)}_updateWindTexture(){let{dataDir:e,dataMag:t}=this.props,n=this._resolveGrid();if(!n)return;let{points:r,gridKey:i}=n,{minLng:a,minLat:o,maxLng:s,maxLat:c}=this._getBoundsFromGrid(r,i),l=[a,o,s,c];(isNaN(a)||isNaN(s)||isNaN(o)||isNaN(c))&&(l=[-180,-90,180,90]);let u=qr(l),d=`${i}-${this._getDataFingerprint(e,t)}-texture`,f=Br.get(d);f?.texture&&(f.texture.destroy(),Br.delete(d));let p=this.state.texture;p&&p!==this.props.image&&p!==f?.texture&&p.destroy();let m=this.props.image||this._createWindTexture();m&&typeof m!=`string`&&this.setState({texture:m,bounds:l,isGlobalData:u})}_getEffectiveBounds(){let e=this.props.bounds?.join(`-`)||`state`;if(this.boundsCache?.key===e)return this.boundsCache.bounds;let t;return t=this.state?.bounds?this.state.bounds:this.props.bounds&&this.props.bounds.length===4?this.props.bounds:[-180,-90,180,90],this.boundsCache={key:e,bounds:t},t}_lastStepFrame=-1;draw({uniforms:e}){if(!this.state.initialized)return;let{model:t,sourcePositions:n,targetPositions:r,colors:i,needsAttributeBind:a}=this.state;if(!n||!r||!i)return;let o=Math.floor(performance.now());this.props.animate&&o!==this._lastStepFrame&&(this._lastStepFrame=o,this.step()),t&&a&&(this._widths[0]!==this.props.width&&(this._widths[0]=this.props.width),t.setAttributes?.({instanceSourcePositions:n,instanceTargetPositions:r,instanceColors:i}),t.setConstantAttributes?.({instanceSourcePositions64Low:this._sourcePositions64Low,instanceTargetPositions64Low:this._targetPositions64Low,instancePickingColors:this._pickingColors,instanceWidths:this._widths}),this.state.needsAttributeBind=!1),super.draw({uniforms:e})}_setupTransformFeedback(){this.state.initialized&&this._deleteTransformFeedback();let{numParticles:e,color:t,maxAge:n,trailLength:r=22}=this.props,a=this.props.image||this._createWindTexture();if(!a||typeof a==`string`)return;let o=e*n,s=e*(n-1),c=e*(Math.min(r,n)-1),l=this.context.device.createBuffer(new Float32Array(o*3)),u=this.context.device.createBuffer(new Float32Array(o*3));this.context.device.createBuffer({byteLength:(o-e)*3*4});let d=this.context.device.createTexture({width:256,height:256,data:Wr(),format:`rgba32float`,sampler:{minFilter:`linear`,magFilter:`linear`,addressModeU:`repeat`,addressModeV:`repeat`}}),f=new Uint8Array(o*4),p=t[0],m=t[1],h=t[2],g=t[3]??255;for(let e=0;e<o;e++){let t=e*4;f[t]=p,f[t+1]=m,f[t+2]=h,f[t+3]=g}let _=this.context.device.createBuffer({data:f}),v=new i.BufferTransform(this.context.device,{attributes:{sourcePosition:l},bufferLayout:[{name:`sourcePosition`,format:`float32x3`}],feedbackBuffers:{targetPosition:u},vs:Rr,varyings:[`targetPosition`],modules:[zr],vertexCount:e}),y=new Float32Array(o*3);this.setState({initialized:!0,numInstances:o,numAgedInstances:s,numTrailSegments:c,sourcePositions:l,targetPositions:u,colors:_,transform:v,texture:a,noiseTexture:d,previousViewportZoom:0,previousTime:0,needsAttributeBind:!0,uniformHolder:{bitmap:{}},zeroPositions:y,ringBufferIndex:0});let{model:b}=this.state;b&&(b.setAttributes?.({instanceSourcePositions:l,instanceTargetPositions:u,instanceColors:_}),b.setConstantAttributes?.({instanceSourcePositions64Low:this._sourcePositions64Low,instanceTargetPositions64Low:this._targetPositions64Low,instancePickingColors:this._pickingColors,instanceWidths:this._widths}))}_runTransformFeedback(){if(!this.state.initialized)return;let{transform:e,sourcePositions:t,targetPositions:n,texture:r,noiseTexture:i}=this.state;if(!e||!t||!n||!r||!i)return;let{viewport:a}=this.context,{numParticles:o,speedFactor:s,maxAge:c}=this.props,{previousTime:l,previousViewportZoom:u,numAgedInstances:d,ringBufferIndex:f}=this.state,p=performance.now();if(p===l)return;let m=+(a?.projection?.mode===`globe`),h=this._getEffectiveBounds(),g,_,v=0,y=a?.longitude??0,b=a?.latitude??0;g=[((y+180)%360+360)%360-180,b];let x=ei(a),S=$r(a);_=Math.max(1,2**((u-a.zoom)*1.5)),v=+(m>0);let C=.95+.1*Math.sin(p*.001),w;w=s*C/(700+1.9**(a.zoom+6));let T=Math.sin(p*1e-4)*999+Math.cos(p*13e-5)*777,E=this.state.uniformHolder.bitmap||={};if(E.bitmapTexture=r,E.noiseTexture=i,E.viewportBounds=S,E.viewportZoomChangeFactor=_,E.bounds=h,E.viewportCenter=g,E.cullBackside=v,E.numParticles=o,E.maxAge=c,E.speedFactor=w,E.time=p,E.seed=Math.abs(T),E.isGlobe=m,E.viewportGlobeRadius=x,E.minWindSpeed=1.5,E.ringBufferIndex=f,e?.model){try{e.model.shaderInputs?.setProps?.({bitmap:E}),e.run({clearColor:!1,clearDepth:!1,clearStencil:!1,depthReadOnly:!0,stencilReadOnly:!0})}catch(e){console.warn(`ParticleLayer transform error:`,e);return}try{let r=this.context.device.createCommandEncoder();r.copyBufferToBuffer({sourceBuffer:t,sourceOffset:0,destinationBuffer:n,destinationOffset:o*4*3,size:d*4*3});let i=r.finish();this.context.device.submit(i),r.destroy(),this.state.sourcePositions=n,this.state.targetPositions=t,e.model.setAttributes({sourcePosition:n}),e.transformFeedback.setBuffers({targetPosition:t});let{numTrailSegments:a}=this.state,s=this.context.device.createCommandEncoder();s.copyBufferToBuffer({sourceBuffer:this.state.sourcePositions,sourceOffset:o*3*4,destinationBuffer:this.state.targetPositions,destinationOffset:0,size:a*3*4});let c=s.finish();this.context.device.submit(c),s.destroy()}catch(e){console.warn(`ParticleLayer buffer copy error:`,e);return}this.state.needsAttributeBind=!0,this.state.previousViewportZoom=a.zoom,this.state.previousTime=p}}_resetTransformFeedback(){if(!this.state.initialized)return;let{sourcePositions:e,targetPositions:t,zeroPositions:n}=this.state;n&&(e.write(n),t.write(n),this.state.needsAttributeBind=!0)}_deleteTransformFeedback(){if(!this.state.initialized)return;this.setState({initialized:!1});let{sourcePositions:e,targetPositions:t,colors:n,transform:r,texture:i,noiseTexture:a}=this.state;if(e?.destroy(),t?.destroy(),n?.destroy(),r?.destroy(),a?.destroy(),i&&i!==this.props.image){let e=!1;for(let[t,n]of Br.entries())if(n.texture===i){e=!0;break}e||i.destroy()}this.setState({sourcePositions:null,targetPositions:null,colors:null,transform:null,noiseTexture:null})}step(){this._runTransformFeedback(),this.setNeedsRedraw()}clear(){this._resetTransformFeedback(),this.setNeedsRedraw()}};ri.layerName=`ParticleLayer`,ri.defaultProps=ni;var ii=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],ai=1,oi=8,si=new Uint32Array(96),ci=class e{static from(t){if(!t||t.byteLength===void 0||t.buffer)throw Error(`Data must be an instance of ArrayBuffer or SharedArrayBuffer.`);let[n,r]=new Uint8Array(t,0,2);if(n!==219)throw Error(`Data does not appear to be in a KDBush format.`);let i=r>>4;if(i!==ai)throw Error(`Got v${i} data when expected v${ai}.`);let a=ii[r&15];if(!a)throw Error(`Unrecognized array type.`);let[o]=new Uint16Array(t,2,1),[s]=new Uint32Array(t,4,1);return new e(s,o,a,void 0,t)}constructor(e,t=64,n=Float64Array,r=ArrayBuffer,i){if(isNaN(e)||e<0)throw Error(`Unexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=n,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;let a=ii.indexOf(this.ArrayType),o=e*2*this.ArrayType.BYTES_PER_ELEMENT,s=e*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-s%8)%8;if(a<0)throw Error(`Unexpected typed array class: ${n}.`);if(i)this.data=i,this.ids=new this.IndexArrayType(i,oi,e),this.coords=new n(i,oi+s+c,e*2),this._pos=e*2,this._finished=!0;else{let i=this.data=new r(oi+o+s+c);this.ids=new this.IndexArrayType(i,oi,e),this.coords=new n(i,oi+s+c,e*2),this._pos=0,this._finished=!1,new Uint8Array(i,0,2).set([219,(ai<<4)+a]),new Uint16Array(i,2,1)[0]=t,new Uint32Array(i,4,1)[0]=e}}add(e,t){let n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=e,this.coords[this._pos++]=t,n}finish(){let e=this._pos>>1;if(e!==this.numItems)throw Error(`Added ${e} items when expected ${this.numItems}.`);return li(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,n,r){if(!this._finished)throw Error(`Data not yet indexed - call index.finish().`);let{ids:i,coords:a,nodeSize:o}=this;si[0]=0,si[1]=i.length-1,si[2]=0;let s=3,c=[];for(;s>0;){let l=si[--s],u=si[--s],d=si[--s];if(u-d<=o){for(let o=d;o<=u;o++){let s=a[2*o],l=a[2*o+1];s>=e&&s<=n&&l>=t&&l<=r&&c.push(i[o])}continue}let f=d+u>>1,p=a[2*f],m=a[2*f+1];p>=e&&p<=n&&m>=t&&m<=r&&c.push(i[f]),(l===0?e<=p:t<=m)&&(si[s++]=d,si[s++]=f-1,si[s++]=1-l),(l===0?n>=p:r>=m)&&(si[s++]=f+1,si[s++]=u,si[s++]=1-l)}return c}within(e,t,n){let r=[];return this.withinInto(e,t,n,r),r}withinInto(e,t,n,r){if(!this._finished)throw Error(`Data not yet indexed - call index.finish().`);let{ids:i,coords:a,nodeSize:o}=this;si[0]=0,si[1]=i.length-1,si[2]=0;let s=3,c=0,l=n*n;for(;s>0;){let u=si[--s],d=si[--s],f=si[--s];if(d-f<=o){for(let n=f;n<=d;n++)pi(a[2*n],a[2*n+1],e,t)<=l&&(r[c++]=i[n]);continue}let p=f+d>>1,m=a[2*p],h=a[2*p+1];pi(m,h,e,t)<=l&&(r[c++]=i[p]),(u===0?e-n<=m:t-n<=h)&&(si[s++]=f,si[s++]=p-1,si[s++]=1-u),(u===0?e+n>=m:t+n>=h)&&(si[s++]=p+1,si[s++]=d,si[s++]=1-u)}return c}};function li(e,t,n,r,i,a){if(i-r<=n)return;let o=r+i>>1;ui(e,t,o,r,i,a),li(e,t,n,r,o-1,1-a),li(e,t,n,o+1,i,1-a)}function ui(e,t,n,r,i,a){for(;i>r;){if(i-r>600){let o=i-r+1,s=n-r+1,c=Math.log(o),l=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*l*(o-l)/o)*(s-o/2<0?-1:1);ui(e,t,n,Math.max(r,Math.floor(n-s*l/o+u)),Math.min(i,Math.floor(n+(o-s)*l/o+u)),a)}let o=t[2*n+a],s=r,c=i;for(di(e,t,r,n),t[2*i+a]>o&&di(e,t,r,i);s<c;){for(di(e,t,s,c),s++,c--;t[2*s+a]<o;)s++;for(;t[2*c+a]>o;)c--}t[2*r+a]===o?di(e,t,r,c):(c++,di(e,t,c,i)),c<=n&&(r=c+1),n<=c&&(i=c-1)}}function di(e,t,n,r){fi(e,n,r),fi(t,2*n,2*r),fi(t,2*n+1,2*r+1)}function fi(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function pi(e,t,n,r){let i=e-n,a=t-r;return i*i+a*a}var mi={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},hi=Math.fround||(e=>(t=>(e[0]=+t,e[0])))(new Float32Array(1)),gi=2,_i=3,vi=4,yi=5,bi=6,xi=class{constructor(e){this.options=Object.assign(Object.create(mi),e),this.trees=Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){let{log:t,minZoom:n,maxZoom:r}=this.options;t&&console.time(`total time`);let i=`prepare ${e.length} points`;t&&console.time(i),this.points=e;let a=[];for(let t=0;t<e.length;t++){let n=e[t];if(!n.geometry)continue;let[r,i]=n.geometry.coordinates,o=hi(wi(r)),s=hi(Ti(i));a.push(o,s,1/0,t,-1,1),this.options.reduce&&a.push(0)}let o=this.trees[r+1]=this._createTree(a);t&&console.timeEnd(i);for(let e=r;e>=n;e--){let n=+Date.now();o=this.trees[e]=this._createTree(this._cluster(o,e)),t&&console.log(`z%d: %d clusters in %dms`,e,o.numItems,+Date.now()-n)}return t&&console.timeEnd(`total time`),this}getClusters(e,t){let n=((e[0]+180)%360+360)%360-180,r=Math.max(-90,Math.min(90,e[1])),i=e[2]===180?180:((e[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)n=-180,i=180;else if(n>i){let e=this.getClusters([n,r,180,a],t),o=this.getClusters([-180,r,i,a],t);return e.concat(o)}let o=this.trees[this._limitZoom(t)],s=o.range(wi(n),Ti(a),wi(i),Ti(r)),c=o.data,l=[];for(let e of s){let t=this.stride*e;l.push(c[t+yi]>1?Si(c,t,this.clusterProps):this.points[c[t+_i]])}return l}getChildren(e){let t=this._getOriginId(e),n=this._getOriginZoom(e),r=`No cluster with the specified id.`,i=this.trees[n];if(!i)throw Error(r);let a=i.data;if(t*this.stride>=a.length)throw Error(r);let o=this.options.radius/(this.options.extent*2**(n-1)),s=a[t*this.stride],c=a[t*this.stride+1],l=i.within(s,c,o),u=[];for(let t of l){let n=t*this.stride;a[n+vi]===e&&u.push(a[n+yi]>1?Si(a,n,this.clusterProps):this.points[a[n+_i]])}if(u.length===0)throw Error(r);return u}getLeaves(e,t,n){t||=10,n||=0;let r=[];return this._appendLeaves(r,e,t,n,0),r}getTile(e,t,n){let r=this.trees[this._limitZoom(e)],i=2**e,{extent:a,radius:o}=this.options,s=o/a,c=(n-s)/i,l=(n+1+s)/i,u={features:[]};return this._addTileFeatures(r.range((t-s)/i,c,(t+1+s)/i,l),r.data,t,n,i,u),t===0&&this._addTileFeatures(r.range(1-s/i,c,1,l),r.data,i,n,i,u),t===i-1&&this._addTileFeatures(r.range(0,c,s/i,l),r.data,-1,n,i,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){let n=this.getChildren(e);if(t++,n.length!==1)break;e=n[0].properties.cluster_id}return t}_appendLeaves(e,t,n,r,i){let a=this.getChildren(t);for(let t of a){let a=t.properties;if(a&&a.cluster?i+a.point_count<=r?i+=a.point_count:i=this._appendLeaves(e,a.cluster_id,n,r,i):i<r?i++:e.push(t),e.length===n)break}return i}_createTree(e){let t=new ci(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let n=0;n<e.length;n+=this.stride)t.add(e[n],e[n+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,n,r,i,a){for(let o of e){let e=o*this.stride,s=t[e+yi]>1,c,l,u;if(s)c=Ci(t,e,this.clusterProps),l=t[e],u=t[e+1];else{let n=this.points[t[e+_i]];c=n.properties;let[r,i]=n.geometry.coordinates;l=wi(r),u=Ti(i)}let d={type:1,geometry:[[Math.round(this.options.extent*(l*i-n)),Math.round(this.options.extent*(u*i-r))]],tags:c},f;f=s||this.options.generateId?t[e+_i]:this.points[t[e+_i]].id,f!==void 0&&(d.id=f),a.features.push(d)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){let{radius:n,extent:r,reduce:i,minPoints:a}=this.options,o=n/(r*2**t),s=e.data,c=[],l=this.stride;for(let n=0;n<s.length;n+=l){if(s[n+gi]<=t)continue;s[n+gi]=t;let r=s[n],u=s[n+1],d=e.within(s[n],s[n+1],o),f=s[n+yi],p=f;for(let e of d){let n=e*l;s[n+gi]>t&&(p+=s[n+yi])}if(p>f&&p>=a){let e=r*f,a=u*f,o,m=-1,h=((n/l|0)<<5)+(t+1)+this.points.length;for(let r of d){let c=r*l;if(s[c+gi]<=t)continue;s[c+gi]=t;let u=s[c+yi];e+=s[c]*u,a+=s[c+1]*u,s[c+vi]=h,i&&(o||(o=this._map(s,n,!0),m=this.clusterProps.length,this.clusterProps.push(o)),i(o,this._map(s,c)))}s[n+vi]=h,c.push(e/p,a/p,1/0,h,-1,p),i&&c.push(m)}else{for(let e=0;e<l;e++)c.push(s[n+e]);if(p>1)for(let e of d){let n=e*l;if(!(s[n+gi]<=t)){s[n+gi]=t;for(let e=0;e<l;e++)c.push(s[n+e])}}}}return c}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,n){if(e[t+yi]>1){let r=this.clusterProps[e[t+bi]];return n?Object.assign({},r):r}let r=this.points[e[t+_i]].properties,i=this.options.map(r);return n&&i===r?Object.assign({},i):i}};function Si(e,t,n){return{type:`Feature`,id:e[t+_i],properties:Ci(e,t,n),geometry:{type:`Point`,coordinates:[Ei(e[t]),Di(e[t+1])]}}}function Ci(e,t,n){let r=e[t+yi],i=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?`${Math.round(r/100)/10}k`:r,a=e[t+bi],o=a===-1?{}:Object.assign({},n[a]);return Object.assign(o,{cluster:!0,cluster_id:e[t+_i],point_count:r,point_count_abbreviated:i})}function wi(e){return e/360+.5}function Ti(e){let t=Math.sin(e*Math.PI/180),n=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return n<0?0:n>1?1:n}function Ei(e){return(e-.5)*360}function Di(e){let t=(180-e*360)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function Oi(e){return e===0?``:e<10?`marker-${e}`:e<100?`marker-${Math.floor(e/10)}0`:`marker-100`}function ki(e){return Math.min(100,e)/200+1}var Ai=class extends t.CompositeLayer{state;shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:t,changeFlags:n}){let r=n.dataChanged||e.sizeScale!==t.sizeScale;if(r){let t=new xi({maxZoom:16,radius:e.sizeScale*Math.sqrt(2)});t.load(e.data.map(t=>({geometry:{coordinates:e.getPosition(t)},properties:t}))),this.setState({index:t})}let i=Math.floor(this.context.viewport.zoom);(r||i!==this.state.z)&&this.setState({data:this.state.index.getClusters([-180,-85,180,85],i),z:i})}getPickingInfo({info:e,mode:t}){let n=e.object?.properties;if(n){let r;return n.cluster&&t!==`hover`&&(r=this.state.index.getLeaves(n.cluster_id,25).map(e=>e.properties)),{...e,object:n,objects:r}}return{...e,object:void 0}}renderLayers(){let{data:e}=this.state,{iconAtlas:t,iconMapping:r,sizeScale:i}=this.props;return new n.IconLayer({data:e,iconAtlas:t,iconMapping:r,sizeScale:i,getPosition:e=>e.geometry.coordinates,getIcon:e=>Oi(e.properties.cluster?e.properties.point_count:1),getSize:e=>ki(e.properties.cluster?e.properties.point_count:1)},this.getSubLayerProps({id:`icon`}))}},ji=[5,4,3,2,1,.9,.8,.7,.6,.5,.4,.3,.2,.1,.05,.025,.01,0],Mi=[2e6,1e6,8e5,6e5,4e5,2e5,1e5,5e4,25e3,1e4,5e3,4e3,3e3,2e3,500,0];function Ni(e,t=!1){let n=performance.now(),r={},i=[],a=[...e];for(let e in ji){let o=parseFloat(ji[e]),s=Mi[e];if(r[o]=new ne,r[o]=Pi(r[o],a,o,s,i),t){let e=r[o].all();console.log(`citylist:`,o,e.length,a.length,Math.round(performance.now()-n))}}let o={};for(let e of ji){o[e]=[];let t=r[e].all();for(let n of t)o[e].push(n.idx)}for(let e in ji){if(e==0)continue;let t=o[ji[e-1]],n=o[ji[e]],r=t.filter(e=>!n.includes(e));for(let t=e-1;t>=0;t--)o[ji[t]]=o[ji[t]].filter(e=>!r.includes(e))}let s={};performance.now();for(let t in o){let n=[];t=parseFloat(t);for(let r of o[t]){let{name:i}=e[r],a=i.length*t/2;n.push({minX:parseFloat(e[r].lon)-a,maxX:parseFloat(e[r].lon)+a,minY:parseFloat(e[r].lat)-t,maxY:parseFloat(e[r].lat)+t,...e[r]})}s[t]=new ne,s[t].load(n)}return console.log(`Progressive Disclosure Creation Time:`,performance.now()-n),s}function Pi(e,t,n,r){for(let i=0;i<t.length;i++){let{name:a,population:o,lon:s,lat:c}=t[i],l=t[i].ignorePopulation??!1;if(s=parseFloat(s),c=parseFloat(c),o=parseFloat(o),!l&&o<r)continue;let u=a.length*n/2,d={minX:s-u,maxX:s+u,minY:c-n,maxY:c+n,idx:i};e.collides(d)||e.insert(d)}return e}var Fi={elevation:0,cityBaseScale:14,cityPadding:1,fontFamily:`Open Sans, sans-serif`,billboard:!0,backgroundPadding:[4,1],getTextAnchor:`middle`,getAlignmentBaseline:`bottom`,getPixelOffset:[0,10],characterSet:`auto`,fontSettings:{sdf:!0,radius:12,cutoff:.25,buffer:10,smoothing:.2},outlineWidth:4,outlineColor:[0,0,0,255],fontWeight:`700`,getColor:e=>e.color||[255,255,255,255],getLabel:e=>e.label,getWeight:e=>e.weight||1,getPosition:e=>e.position,parameters:{depthCompare:`always`,cullMode:`none`}},Ii=e=>{let{population:t}=e,n=.85;return t>1e6?n=1.1:t>1e5?n=1:t>5e4?n=.9:t>0&&(n=.85),n},Li=500,Ri,zi,Bi=class extends t.CompositeLayer{initializeState(){this.state={tagsCache:{},tags:[],lastTimeout:void 0,lastTrigger:performance.now()}}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:t,changeFlags:n}){if(!n.viewportChanged&&!n.propsOrDataChanged)return;super.updateState({props:e,oldProps:t,changeFlags:n});let r=0;n.viewportChanged&&(r=performance.now()-this.state.lastTrigger,r=r<Li?Li-r:0),clearTimeout(this.state?.lastTimeout),this.state.lastTimeout=setTimeout(()=>{let t=performance.now(),{cityList:n,dataLabels:r}=e,i=n?.length;(!Ri||i!==zi)&&(Ri=Ni(e.cityList)),zi=i;let{viewport:a}=this.context,o=a.bearing||0,{latPerPixel:s}=_e.getLatLonPerPixel(a),c=_e.getCities(a,Ri,ji,e.cityBaseScale,e.cityPadding),l=[];for(let t in c){let n=Number(c[t].lat),i=Number(c[t].lon),{name:a}=c[t],{population:o}=c[t],s,u=``;if(r){let{data:t,decimals:a=0,units:o=``,interpolate:c=!0,valueFormatter:l,readoutFunction:d,readoutOptions:f}=r;if(typeof d==`function`&&(s=d(n,i,t,{...f,interpolate:f?.interpolate??c,units:o})),e.isTiming&&Number.isFinite(s)){let t=new Date(e.initDate);t.setHours(t.getHours()+Number(s)),u=T.formatdate(t,`timing`,e.settings)}else if(typeof l==`function`){let e=l(s,{lat:n,lon:i,data:t,decimals:a,units:o,interpolate:c,readoutOptions:f});u=e==null?``:`${e}`}else typeof s==`string`?u=s:s!=null&&!Number.isNaN(s)&&(u=`${T.roundto(s,a)}${o}`)}l.push({value:u,lat:n,lon:i,name:a,population:o})}let u;u=a.zoom>3?1:a.zoom<=1?.85:.07500000000000001*a.zoom+.7749999999999999,this.setState({cityData:l,zoomScale:u,latPerPixel:s,bearing:o,lastTrigger:t})},r)}renderLayers(){let{cityData:e,zoomScale:t,latPerPixel:r,bearing:i}=this.state,{elevation:a}=this.props,o=this.props.cityBaseScale,{viewport:s}=this.context,{zoom:c}=s,l=s.latitude,u=s.longitude,d=[new n.TextLayer(this.props,{id:`${this.props.id}-tagmap-layer`,data:e?.filter(e=>_e.isFeatureVisibleOnGlobe(l,u,e.lat,e.lon,c))||!1,getText:e=>e.name,getPosition:e=>[Number(e.lon),Number(e.lat),a],getSize:e=>o*Ii(e)*t})];return this.props.dataLabels&&d.push(new n.TextLayer(this.props,{id:`${this.props.id}-tagmap-dataLabels`,data:e?.filter(e=>_e.isFeatureVisibleOnGlobe(l,u,e.lat,e.lon,c)||!1),fontWeight:`700`,outlineWidth:3,getText:e=>e.value,getPosition:e=>{let t=i*Math.PI/180,n=Ii(e),s=r*o*n*1;return[Number(e.lon)+Math.sin(t)*s,Number(e.lat)+Math.cos(t)*s,a]},getSize:e=>o*Ii(e)*t*1.5})),d}};Bi.layerName=`CitiesLayer`,Bi.defaultProps=Fi;var Vi={type:Oe,props:{lineWidthUnits:`widthUnits`,lineWidthScale:`widthScale`,lineWidthMinPixels:`widthMinPixels`,lineWidthMaxPixels:`widthMaxPixels`,lineJointRounded:`jointRounded`,lineCapRounded:`capRounded`,lineMiterLimit:`miterLimit`,lineBillboard:`billboard`,getLineColor:`getColor`,getLineWidth:`getWidth`}};function Hi(e,t){let{transitions:n,updateTriggers:r}=e.props,i={updateTriggers:{},transitions:n&&{getPosition:n.geometry}};for(let a in t){let o=t[a],s=e.props[a];a.startsWith(`get`)&&(s=e.getSubLayerAccessor(s),i.updateTriggers[o]=r[a],n&&(i.transitions[o]=n[a])),i[o]=s}return i}var Ui=class extends n.GeoJsonLayer{static defaultProps={...n.GeoJsonLayer.defaultProps,parameters:{depthCompare:`always`,cullMode:`back`}};initializeState(){super.initializeState()}_renderLineLayers(){let{extruded:e,stroked:t}=this.props,{layerProps:n}=this.state,r=`polygons-stroke`,i=`linestrings`,a=!e&&t&&this.shouldRenderSubLayer(r,n.polygonsOutline?.data)&&this.getSubLayerClass(r,Vi.type),o=this.shouldRenderSubLayer(i,n.lines?.data)&&this.getSubLayerClass(i,Vi.type);if(a||o){let e=Hi(this,Vi.props);return[a&&new a(e,this.getSubLayerProps({id:r,updateTriggers:e.updateTriggers}),n.polygonsOutline),o&&new o(e,this.getSubLayerProps({id:i,updateTriggers:e.updateTriggers}),n.lines)]}return null}};Ui.layerName=`WizardGeoJsonLayer`;function Wi(e,t){return{"0,P":{color:[255,193,7,150],cirtext:`W`,label:`Wildfire Pending`},"0,C":{color:[25,135,84,150],cirtext:`W`,label:`Wildfire Completed`},"1,P":{color:[255,193,7,150],cirtext:`P`,label:`Prescribed Pending`},"1,C":{color:[25,135,84,150],cirtext:`P`,label:`Prescribed Completed`},"2,P":{color:[255,193,7,150],cirtext:`M`,label:`Marine Pending`},"2,C":{color:[25,135,84,150],cirtext:`M`,label:`Marine Completed`},"3,P":{color:[255,193,7,150],cirtext:`H`,label:`Hazmat Pending`},"4,P":{color:[255,193,7,150],cirtext:`H`,label:`Hazmat Pending`},"8,P":{color:[255,193,7,150],cirtext:`H`,label:`Hazmat Pending`},"3,C":{color:[25,135,84,150],cirtext:`H`,label:`Hazmat Completed`},"4,C":{color:[25,135,84,150],cirtext:`H`,label:`Hazmat Completed`},"8,C":{color:[25,135,84,150],cirtext:`H`,label:`Hazmat Completed`},"5,P":{color:[255,193,7,150],cirtext:`S`,label:`SAR Pending`},"6,P":{color:[255,193,7,150],cirtext:`S`,label:`SAR Pending`},"9,P":{color:[255,193,7,150],cirtext:`S`,label:`SAR Pending`},"5,C":{color:[25,135,84,150],cirtext:`S`,label:`SAR Completed`},"6,C":{color:[25,135,84,150],cirtext:`S`,label:`SAR Completed`},"9,C":{color:[25,135,84,150],cirtext:`S`,label:`SAR Completed`},"7,P":{color:[255,193,7,150],cirtext:`O`,label:`Other Pending`},"7,C":{color:[25,135,84,150],cirtext:`O`,label:`Other Completed`}}[`${e},${t}`]||{color:[0,0,0,150],label:`N/A`}}var Gi={data:`https://mapservices.weather.noaa.gov/vector/rest/services/fire_weather/nws_fire_weather_spot/MapServer/0/query?outFields=*&where=1%3D1&orderByFields=rfill%20ASC&geometryPrecision=3&f=geojson`,pointType:`circle+text`,getText:e=>{let{cirtext:t}=Wi(e.properties.tid,e.properties.stat);return t},getSize:60,getPointRadius:20,pointRadiusUnits:`pixels`,radiusScale:6,getColor:[0,0,0,255],getTextAnchor:`middle`,getAlignmentBaseline:`center`,getTextColor:[0,0,0,255],getFillColor:e=>{let{color:t}=Wi(e.properties.tid,e.properties.stat);return t},textFontFamily:`Open Sans, sans-serif`,textFontWeight:`700`,getTextSize:20,textSizeUnits:`pixels`,getTextBorderColor:[0,0,0,255],getTextBorderWidth:4,getElevation:0,elevationScale:1,parameters:{depthTest:!0,depthCompare:`always`,cullMode:`none`},onSpotClick:null,pickingFunction:e=>{if(e.object){let{tid:t,stat:n,name:r,type:i,rmade:a,rfill:o,deliverdtg:s,wfo:l,snumunum:u}=e.object.properties,d=[];if(r&&d.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Name:`}),` `,r,(0,c.jsx)(`br`,{})]},`name`)),t&&n){let{label:e,color:r}=Wi(t,n);d.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Type:`}),(0,c.jsxs)(`span`,{style:{color:`rgb(${r[0]},${r[1]},${r[2]})`},children:[` `,e]}),(0,c.jsx)(`br`,{})]},`type`))}if(a&&d.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Request Made:`}),` `,a,(0,c.jsx)(`br`,{})]},`request`)),s&&d.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Deliver Time:`}),` `,s,(0,c.jsx)(`br`,{})]},`deliver`)),l&&d.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Forecast Office:`}),` `,l,(0,c.jsx)(`br`,{})]},`office`)),u){let e=`https://spot.weather.gov/forecasts/${u}`;d.push((0,c.jsxs)(`div`,{className:`spot-forecast-link`,children:[(0,c.jsx)(`strong`,{children:`Link:`}),` `,(0,c.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>{e.stopPropagation()},children:`Spot Forecast`}),(0,c.jsx)(`br`,{})]},`spot-link`))}return{readout:d,coordinates:[e.coordinate[0],e.coordinate[1]],object:e.object,isPersistent:e.type===`click`}}return{readout:null}}},Ki=class extends t.CompositeLayer{renderLayers(){return new n.GeoJsonLayer(this.props,{id:`${this.props.id}-geojson`,onClick:this.props.onClick})}};Ki.defaultProps=Gi,Ki.layerName=`SpotLayer`;var qi=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='100px'%20height='136px'%20viewBox='0%200%20100%20135'%20version='1.1'%3e%3cg%20id='surface1'%3e%3cpath%20style='%20stroke:none;fill-rule:nonzero;fill:rgb(90.588235%25,22.352941%25,0%25);fill-opacity:1;'%20d='M%2055.019531%201.535156%20C%2055.199219%202.085938%2055.167969%202.484375%2055.066406%203.050781%20C%2055.039062%203.226562%2055.011719%203.398438%2054.980469%203.574219%20C%2054.917969%203.925781%2054.859375%204.277344%2054.796875%204.628906%20C%2054.230469%208.03125%2054.128906%2011.449219%2054.140625%2014.890625%20C%2054.140625%2015.089844%2054.140625%2015.289062%2054.140625%2015.496094%20C%2054.152344%2018.804688%2054.277344%2022.066406%2054.6875%2025.347656%20C%2054.703125%2025.464844%2054.71875%2025.578125%2054.730469%2025.695312%20C%2055.917969%2035.320312%2058.238281%2044.777344%2061.464844%2053.925781%20C%2061.816406%2053.402344%2062.070312%2052.863281%2062.332031%2052.296875%20C%2062.441406%2052.0625%2062.546875%2051.828125%2062.65625%2051.597656%20C%2062.714844%2051.472656%2062.769531%2051.351562%2062.828125%2051.226562%20C%2063.972656%2048.769531%2065.191406%2046.398438%2066.589844%2044.070312%20C%2066.742188%2043.816406%2066.894531%2043.558594%2067.046875%2043.300781%20C%2069.035156%2039.96875%2071.367188%2036.863281%2073.863281%2033.890625%20C%2074%2033.722656%2074.140625%2033.558594%2074.285156%2033.386719%20C%2075.464844%2031.988281%2076.710938%2030.679688%2078.015625%2029.394531%20C%2078.335938%2029.074219%2078.660156%2028.753906%2078.980469%2028.433594%20C%2080.027344%2027.390625%2081.078125%2026.394531%2082.246094%2025.484375%20C%2082.617188%2025.191406%2082.964844%2024.878906%2083.316406%2024.558594%20C%2086.722656%2021.539062%2090.792969%2019.097656%2094.765625%2016.882812%20C%2095.046875%2016.722656%2095.328125%2016.558594%2095.609375%2016.394531%20C%2095.742188%2016.316406%2095.875%2016.238281%2096.011719%2016.160156%20C%2096.125%2016.089844%2096.242188%2016.023438%2096.363281%2015.953125%20C%2096.671875%2015.824219%2096.671875%2015.824219%2097.167969%2015.988281%20C%2097.042969%2016.113281%2097.042969%2016.113281%2096.914062%2016.238281%20C%2096.527344%2016.621094%2096.140625%2017.003906%2095.753906%2017.382812%20C%2095.621094%2017.515625%2095.488281%2017.644531%2095.351562%2017.777344%20C%2094.542969%2018.578125%2093.777344%2019.398438%2093.035156%2020.257812%20C%2092.882812%2020.429688%2092.730469%2020.601562%2092.578125%2020.773438%20C%2090.496094%2023.128906%2088.605469%2025.65625%2086.921875%2028.304688%20C%2086.859375%2028.398438%2086.800781%2028.492188%2086.738281%2028.589844%20C%2082.332031%2035.519531%2079.726562%2043.261719%2079.761719%2051.484375%20C%2079.761719%2051.628906%2079.761719%2051.777344%2079.761719%2051.929688%20C%2079.769531%2054.21875%2079.878906%2056.4375%2080.308594%2058.6875%20C%2080.335938%2058.84375%2080.367188%2059%2080.394531%2059.160156%20C%2081.59375%2065.671875%2084.15625%2071.628906%2086.855469%2077.636719%20C%2087.441406%2078.9375%2088.007812%2080.242188%2088.5625%2081.558594%20C%2088.640625%2081.738281%2088.71875%2081.917969%2088.796875%2082.101562%20C%2089.5625%2083.941406%2090.074219%2085.835938%2090.339844%2087.808594%20C%2090.359375%2087.941406%2090.378906%2088.074219%2090.398438%2088.207031%20C%2090.457031%2088.605469%2090.507812%2089.003906%2090.558594%2089.402344%20C%2090.574219%2089.515625%2090.589844%2089.632812%2090.605469%2089.753906%20C%2091.660156%2098.429688%2089.808594%20108.707031%2084.339844%20115.71875%20C%2082.507812%20118.011719%2080.503906%20120.136719%2078.160156%20121.917969%20C%2078.050781%20122.003906%2077.941406%20122.085938%2077.828125%20122.171875%20C%2074.722656%20124.546875%2071.398438%20126.402344%2067.914062%20128.160156%20C%2067.792969%20128.21875%2067.671875%20128.28125%2067.546875%20128.34375%20C%2066.144531%20129.054688%2064.726562%20129.738281%2063.304688%20130.417969%20C%2063.148438%20130.492188%2062.992188%20130.570312%2062.828125%20130.648438%20C%2062.085938%20131%2061.34375%20131.332031%2060.578125%20131.628906%20C%2059.996094%20131.855469%2059.496094%20132.105469%2058.988281%20132.472656%20C%2058.355469%20132.921875%2058.355469%20132.921875%2057.996094%20132.921875%20C%2057.941406%20133.03125%2057.886719%20133.140625%2057.828125%20133.25%20C%2057.160156%20133.164062%2056.789062%20132.976562%2056.269531%20132.554688%20C%2056.089844%20132.410156%2056.089844%20132.410156%2055.910156%20132.261719%20C%2055.617188%20132.019531%2055.328125%20131.773438%2055.039062%20131.523438%20C%2053.289062%20130.140625%2050.949219%20129.566406%2048.832031%20128.980469%20C%2048.316406%20128.835938%2047.804688%20128.6875%2047.292969%20128.535156%20C%2043.160156%20127.328125%2038.953125%20126.695312%2034.695312%20126.105469%20C%2027.628906%20125.125%2027.628906%20125.125%2024.359375%20124.085938%20C%2024.179688%20124.027344%2024.003906%20123.972656%2023.820312%20123.917969%20C%2020.761719%20122.929688%2018.183594%20121.507812%2015.847656%20119.292969%20C%2015.738281%20119.195312%2015.625%20119.101562%2015.511719%20119.003906%20C%2014.320312%20117.929688%2013.539062%20116.539062%2012.707031%20115.183594%20C%2012.621094%20115.050781%2012.539062%20114.914062%2012.453125%20114.777344%20C%208.5625%20108.476562%205.246094%20101.691406%204.109375%2094.328125%20C%204.078125%2094.121094%204.078125%2094.121094%204.046875%2093.910156%20C%202.847656%2085.726562%205.261719%2077.785156%207.570312%2070.019531%20C%2011.027344%2058.394531%2013.136719%2046.890625%2012.582031%2034.710938%20C%2012.574219%2034.558594%2012.566406%2034.40625%2012.5625%2034.25%20C%2012.429688%2031.386719%2012.15625%2028.550781%2011.824219%2025.707031%20C%2011.691406%2024.550781%2011.613281%2023.390625%2011.546875%2022.230469%20C%2012.046875%2022.710938%2012.492188%2023.175781%2012.878906%2023.75%20C%2012.964844%2023.878906%2013.054688%2024.007812%2013.144531%2024.140625%20C%2013.234375%2024.273438%2013.324219%2024.410156%2013.417969%2024.546875%20C%2013.609375%2024.832031%2013.800781%2025.113281%2013.996094%2025.398438%20C%2014.085938%2025.53125%2014.179688%2025.667969%2014.273438%2025.804688%20C%2014.570312%2026.238281%2014.878906%2026.65625%2015.195312%2027.074219%20C%2017.640625%2030.386719%2019.660156%2034.0625%2021.632812%2037.667969%20C%2021.769531%2037.917969%2021.769531%2037.917969%2021.910156%2038.175781%20C%2023.390625%2040.871094%2024.800781%2043.585938%2026.09375%2046.371094%20C%2026.179688%2046.550781%2026.261719%2046.730469%2026.347656%2046.917969%20C%2028.78125%2052.179688%2030.945312%2057.550781%2033.070312%2062.941406%20C%2033.320312%2063.578125%2033.574219%2064.210938%2033.835938%2064.84375%20C%2033.878906%2064.960938%2033.925781%2065.074219%2033.976562%2065.191406%20C%2034.101562%2065.496094%2034.226562%2065.796875%2034.351562%2066.101562%20C%2034.523438%2066.570312%2034.523438%2066.570312%2034.523438%2067.066406%20C%2034.632812%2067.066406%2034.742188%2067.066406%2034.855469%2067.066406%20C%2034.859375%2066.964844%2034.863281%2066.867188%2034.867188%2066.761719%20C%2034.984375%2064.960938%2035.332031%2063.203125%2035.660156%2061.429688%20C%2035.691406%2061.25%2035.726562%2061.074219%2035.757812%2060.890625%20C%2038.773438%2044.445312%2042.28125%2027.65625%2055.019531%201.535156%20Z%20M%2055.019531%201.535156%20'/%3e%3cpath%20style='%20stroke:none;fill-rule:nonzero;fill:rgb(90.588235%25,87.843137%25,0%25);fill-opacity:1;'%20d='M%2047.914062%2063.945312%20C%2047.964844%2063.945312%2048.019531%2063.945312%2048.078125%2063.945312%20C%2048.066406%2064.054688%2048.054688%2064.167969%2048.042969%2064.28125%20C%2047.6875%2068.070312%2047.746094%2071.882812%2048.574219%2075.605469%20C%2048.609375%2075.777344%2048.648438%2075.945312%2048.6875%2076.121094%20C%2050.164062%2082.699219%2053.597656%2094.394531%2058.492188%2099.253906%20C%2058.582031%2098.949219%2058.675781%2098.644531%2058.765625%2098.335938%20C%2058.855469%2098.050781%2058.941406%2097.765625%2059.027344%2097.480469%20C%2059.296875%2096.59375%2059.558594%2095.707031%2059.820312%2094.816406%20C%2064.261719%2079.753906%2064.261719%2079.753906%2069.234375%2076.917969%20C%2069.480469%2076.835938%2069.480469%2076.835938%2069.730469%2076.753906%20C%2069.496094%2077.242188%2069.222656%2077.6875%2068.925781%2078.140625%20C%2067.855469%2079.929688%2067.636719%2081.703125%2067.675781%2083.753906%20C%2067.675781%2083.871094%2067.675781%2083.984375%2067.679688%2084.105469%20C%2067.757812%2090.925781%2070.570312%2097.472656%2073.078125%20103.738281%20C%2073.628906%20105.113281%2074.160156%20106.496094%2074.65625%20107.894531%20C%2074.703125%20108.023438%2074.746094%20108.15625%2074.796875%20108.289062%20C%2075.796875%20111.164062%2076.078125%20113.488281%2074.695312%20116.332031%20C%2073.164062%20119.332031%2071.007812%20121.867188%2068.742188%20124.34375%20C%2068.449219%20124.664062%2068.164062%20124.996094%2067.882812%20125.328125%20C%2065.839844%20127.632812%2063.605469%20129.492188%2060.949219%20131.058594%20C%2060.796875%20131.167969%2060.796875%20131.167969%2060.640625%20131.28125%20C%2060.640625%20131.386719%2060.640625%20131.496094%2060.640625%20131.609375%20C%2060.527344%20131.664062%2060.417969%20131.714844%2060.300781%20131.769531%20C%2060.152344%20131.84375%2060.007812%20131.914062%2059.855469%20131.988281%20C%2059.636719%20132.09375%2059.636719%20132.09375%2059.414062%20132.203125%20C%2058.984375%20132.417969%2058.984375%20132.417969%2058.621094%20132.703125%20C%2058.324219%20132.921875%2058.324219%20132.921875%2057.996094%20132.921875%20C%2057.941406%20133.03125%2057.886719%20133.140625%2057.828125%20133.25%20C%2057.164062%20133.160156%2056.78125%20132.976562%2056.257812%20132.5625%20C%2056.078125%20132.421875%2056.078125%20132.421875%2055.894531%20132.277344%20C%2055.515625%20131.9375%2055.515625%20131.9375%2055.191406%20131.480469%20C%2054.507812%20130.648438%2053.449219%20130.234375%2052.5%20129.761719%20C%2052.390625%20129.707031%2052.277344%20129.648438%2052.167969%20129.59375%20C%2049.492188%20128.238281%2046.742188%20127.070312%2043.988281%20125.886719%20C%2042.027344%20125.042969%2040.089844%20124.148438%2038.160156%20123.234375%20C%2038.007812%20123.160156%2037.851562%20123.085938%2037.695312%20123.011719%20C%2034.445312%20121.46875%2031.410156%20119.765625%2028.902344%20117.15625%20C%2028.769531%20117.023438%2028.636719%20116.890625%2028.5%20116.753906%20C%2028.359375%20116.617188%2028.222656%20116.476562%2028.078125%20116.335938%20C%2027.9375%20116.203125%2027.9375%20116.203125%2027.789062%20116.066406%20C%2024.269531%20112.714844%2021.671875%20107.890625%2021.53125%20102.996094%20C%2021.515625%2099.28125%2022.265625%2095.769531%2023.195312%2092.191406%20C%2024.53125%2087.035156%2025.308594%2081.898438%2025.597656%2076.589844%20C%2025.878906%2077.007812%2026.015625%2077.285156%2026.167969%2077.746094%20C%2026.210938%2077.878906%2026.257812%2078.007812%2026.300781%2078.144531%20C%2026.347656%2078.285156%2026.398438%2078.425781%2026.445312%2078.570312%20C%2028.183594%2083.59375%2030.945312%2087.773438%2034.523438%2091.699219%20C%2034.601562%2091.785156%2034.679688%2091.871094%2034.761719%2091.960938%20C%2035.441406%2092.710938%2036.132812%2093.449219%2036.828125%2094.1875%20C%2037.6875%2095.105469%2038.539062%2096.035156%2039.367188%2096.984375%20C%2039.445312%2097.074219%2039.523438%2097.160156%2039.601562%2097.25%20C%2040.078125%2097.800781%2040.503906%2098.371094%2040.917969%2098.960938%20C%2041.019531%2099.109375%2041.125%2099.257812%2041.230469%2099.410156%20C%2041.308594%2099.519531%2041.386719%2099.632812%2041.464844%2099.746094%20C%2041.472656%2099.648438%2041.476562%2099.550781%2041.484375%2099.445312%20C%2043.15625%2069.152344%2043.15625%2069.152344%2047.914062%2063.945312%20Z%20M%2047.914062%2063.945312%20'/%3e%3cpath%20style='%20stroke:none;fill-rule:nonzero;fill:rgb(90.588235%25,54.509804%25,0%25);fill-opacity:1;'%20d='M%2050.722656%2025.347656%20C%2050.777344%2025.347656%2050.832031%2025.347656%2050.886719%2025.347656%20C%2050.917969%2026.402344%2050.851562%2027.421875%2050.726562%2028.46875%20C%2050.121094%2033.535156%2050.03125%2038.636719%2050.019531%2043.734375%20C%2050.019531%2043.929688%2050.019531%2044.125%2050.015625%2044.328125%20C%2049.992188%2051.167969%2050.574219%2058.226562%2052.707031%2064.765625%20C%2052.75%2064.902344%2052.792969%2065.039062%2052.839844%2065.179688%20C%2054.351562%2069.816406%2056.574219%2074.777344%2060.144531%2078.234375%20C%2060.164062%2078.0625%2060.1875%2077.894531%2060.207031%2077.722656%20C%2060.363281%2076.734375%2060.6875%2075.804688%2061%2074.855469%20C%2061.035156%2074.746094%2061.074219%2074.636719%2061.109375%2074.523438%20C%2064.253906%2064.929688%2067.953125%2053.804688%2075.847656%2047.027344%20C%2075.847656%2047.597656%2075.660156%2047.976562%2075.425781%2048.488281%20C%2074.847656%2049.773438%2074.355469%2051.0625%2073.976562%2052.417969%20C%2073.9375%2052.546875%2073.898438%2052.675781%2073.859375%2052.808594%20C%2073.121094%2055.558594%2072.953125%2058.398438%2072.972656%2061.230469%20C%2072.972656%2061.714844%2072.972656%2062.203125%2072.96875%2062.6875%20C%2072.964844%2064.949219%2073.191406%2067.132812%2073.53125%2069.363281%20C%2073.5625%2069.566406%2073.589844%2069.769531%2073.617188%2069.980469%20C%2073.980469%2072.550781%2074.535156%2075.0625%2075.183594%2077.574219%20C%2075.222656%2077.71875%2075.257812%2077.863281%2075.296875%2078.011719%20C%2076.09375%2081.128906%2077.054688%2084.1875%2078.066406%2087.242188%20C%2078.265625%2087.839844%2078.464844%2088.441406%2078.664062%2089.042969%20C%2079.230469%2090.769531%2079.800781%2092.496094%2080.390625%2094.214844%20C%2081.265625%2096.796875%2081.992188%2099.328125%2082.292969%20102.046875%20C%2082.308594%20102.183594%2082.324219%20102.324219%2082.339844%20102.464844%20C%2082.902344%20107.792969%2082.632812%20113.660156%2079.152344%20118.027344%20C%2078.878906%20118.34375%2078.605469%20118.65625%2078.324219%20118.960938%20C%2078.230469%20119.066406%2078.136719%20119.171875%2078.039062%20119.277344%20C%2077.71875%20119.625%2077.398438%20119.972656%2077.074219%20120.316406%20C%2076.972656%20120.425781%2076.871094%20120.535156%2076.769531%20120.648438%20C%2076.148438%20121.300781%2075.503906%20121.902344%2074.816406%20122.488281%20C%2074.476562%20122.78125%2074.148438%20123.089844%2073.820312%20123.398438%20C%2071.65625%20125.332031%2069.230469%20126.945312%2066.75%20128.449219%20C%2066.332031%20128.710938%2065.925781%20128.984375%2065.515625%20129.257812%20C%2064.703125%20129.773438%2063.851562%20130.1875%2062.984375%20130.601562%20C%2062.851562%20130.667969%2062.714844%20130.730469%2062.578125%20130.796875%20C%2061.875%20131.125%2061.253906%20131.367188%2060.472656%20131.445312%20C%2061.015625%20130.855469%2061.632812%20130.445312%2062.300781%20130.015625%20C%2064.953125%20128.289062%2067.171875%20126.109375%2069.234375%20123.726562%20C%2069.382812%20123.554688%2069.53125%20123.386719%2069.679688%20123.214844%20C%2072.464844%20119.996094%2075.898438%20115.921875%2075.558594%20111.421875%20C%2075.410156%20110.222656%2074.945312%20109.085938%2074.523438%20107.957031%20C%2074.484375%20107.855469%2074.445312%20107.75%2074.40625%20107.644531%20C%2073.566406%20105.390625%2072.707031%20103.148438%2071.832031%20100.910156%20C%2070.996094%2098.769531%2070.203125%2096.617188%2069.492188%2094.429688%20C%2069.425781%2094.226562%2069.359375%2094.023438%2069.292969%2093.8125%20C%2068.261719%2090.59375%2067.546875%2087.511719%2067.503906%2084.121094%20C%2067.5%2083.894531%2067.496094%2083.667969%2067.492188%2083.441406%20C%2067.441406%2081.101562%2067.96875%2079.132812%2069.398438%2077.246094%20C%2069.453125%2077.140625%2069.507812%2077.03125%2069.566406%2076.917969%20C%2069.335938%2077.070312%2069.101562%2077.21875%2068.871094%2077.371094%20C%2068.746094%2077.453125%2068.617188%2077.539062%2068.484375%2077.625%20C%2067.660156%2078.191406%2067.039062%2078.769531%2066.464844%2079.585938%20C%2066.394531%2079.6875%2066.324219%2079.789062%2066.25%2079.894531%20C%2062.761719%2084.929688%2061%2091.019531%2059.429688%2096.867188%20C%2059.265625%2097.476562%2059.089844%2098.082031%2058.914062%2098.691406%20C%2058.863281%2098.867188%2058.8125%2099.042969%2058.761719%2099.222656%20C%2058.726562%2099.34375%2058.691406%2099.460938%2058.65625%2099.582031%20C%2058.144531%2098.984375%2057.746094%2098.359375%2057.378906%2097.664062%20C%2057.324219%2097.558594%2057.265625%2097.453125%2057.207031%2097.347656%20C%2057.023438%2097.003906%2056.84375%2096.660156%2056.664062%2096.320312%20C%2056.597656%2096.199219%2056.535156%2096.082031%2056.472656%2095.960938%20C%2052.898438%2089.222656%2049.890625%2082.242188%2048.242188%2074.785156%20C%2048.191406%2074.554688%2048.191406%2074.554688%2048.140625%2074.324219%20C%2047.433594%2071.074219%2047.53125%2067.402344%2047.914062%2064.109375%20C%2041.558594%2073.902344%2042.164062%2088.839844%2041.632812%20100.074219%20C%2041.277344%2099.640625%2040.929688%2099.203125%2040.589844%2098.757812%20C%2039.5%2097.339844%2038.316406%2096.042969%2037.082031%2094.75%20C%2036.703125%2094.347656%2036.34375%2093.933594%2035.984375%2093.519531%20C%2035.652344%2093.144531%2035.3125%2092.78125%2034.96875%2092.417969%20C%2034.003906%2091.390625%2033.082031%2090.34375%2032.210938%2089.234375%20C%2032.132812%2089.140625%2032.054688%2089.042969%2031.976562%2088.941406%20C%2029.140625%2085.328125%2027.199219%2081.429688%2025.761719%2077.082031%20C%2025.746094%2077.3125%2025.746094%2077.3125%2025.726562%2077.546875%20C%2025.300781%2083.097656%2024.273438%2088.355469%2022.976562%2093.765625%20C%2021.476562%20100.054688%2020.96875%20106.039062%2024.503906%20111.78125%20C%2025.695312%20113.621094%2027.117188%20115.21875%2028.675781%20116.761719%20C%2028.914062%20117.003906%2029.152344%20117.246094%2029.382812%20117.496094%20C%2031.265625%20119.5%2033.757812%20120.824219%2036.175781%20122.082031%20C%2036.304688%20122.152344%2036.433594%20122.21875%2036.566406%20122.289062%20C%2039.777344%20123.960938%2043.117188%20125.363281%2046.433594%20126.808594%20C%2048.621094%20127.761719%2050.789062%20128.742188%2052.914062%20129.832031%20C%2053.089844%20129.921875%2053.265625%20130.015625%2053.449219%20130.109375%20C%2054.667969%20130.746094%2054.667969%20130.746094%2054.855469%20131.117188%20C%2054.246094%20130.9375%2053.695312%20130.707031%2053.128906%20130.429688%20C%2050.515625%20129.242188%2047.617188%20128.640625%2044.84375%20127.933594%20C%2044.699219%20127.898438%2044.558594%20127.859375%2044.410156%20127.824219%20C%2043.996094%20127.71875%2043.582031%20127.613281%2043.167969%20127.507812%20C%2043.046875%20127.476562%2042.921875%20127.445312%2042.792969%20127.414062%20C%2042.132812%20127.25%2041.480469%20127.109375%2040.804688%20127.011719%20C%2040.804688%20126.902344%2040.804688%20126.792969%2040.804688%20126.679688%20C%2040.503906%20126.660156%2040.503906%20126.660156%2040.199219%20126.636719%20C%2039.136719%20126.519531%2038.128906%20126.21875%2037.105469%20125.921875%20C%2036.902344%20125.863281%2036.695312%20125.804688%2036.484375%20125.742188%20C%2029.792969%20123.785156%2025.03125%20120.792969%2020.640625%20115.347656%20C%2020.496094%20115.179688%2020.347656%20115.007812%2020.203125%20114.839844%20C%2015.679688%20109.609375%2012.914062%20103.800781%2013.410156%2096.8125%20C%2013.480469%2096.304688%2013.582031%2095.8125%2013.699219%2095.3125%20C%2013.746094%2095.101562%2013.792969%2094.890625%2013.839844%2094.671875%20C%2014.644531%2091.269531%2016.007812%2087.988281%2017.230469%2084.71875%20C%2017.484375%2084.035156%2017.742188%2083.351562%2017.996094%2082.667969%20C%2018.039062%2082.546875%2018.085938%2082.425781%2018.128906%2082.304688%20C%2018.875%2080.285156%2019.339844%2078.191406%2019.8125%2076.097656%20C%2019.839844%2075.972656%2019.871094%2075.847656%2019.898438%2075.71875%20C%2021.296875%2069.460938%2021.089844%2062.273438%2019.722656%2056.035156%20C%2019.648438%2055.570312%2019.648438%2055.570312%2019.8125%2055.074219%20C%2019.886719%2055.21875%2019.957031%2055.363281%2020.035156%2055.515625%20C%2020.785156%2057.011719%2021.542969%2058.511719%2022.300781%2060.007812%20C%2023.046875%2061.488281%2023.796875%2062.96875%2024.542969%2064.449219%20C%2025.039062%2065.433594%2025.539062%2066.421875%2026.039062%2067.410156%20C%2028.234375%2071.75%2030.40625%2076.085938%2032.375%2080.53125%20C%2032.503906%2080.816406%2032.632812%2081.105469%2032.761719%2081.390625%20C%2033.046875%2082.03125%2033.332031%2082.671875%2033.613281%2083.3125%20C%2033.660156%2083.421875%2033.707031%2083.527344%2033.757812%2083.636719%20C%2035.742188%2088.15625%2035.742188%2088.15625%2036.011719%2089.402344%20C%2036.035156%2089.242188%2036.058594%2089.085938%2036.085938%2088.925781%20C%2036.753906%2084.660156%2037.46875%2080.398438%2038.253906%2076.148438%20C%2038.332031%2075.722656%2038.414062%2075.296875%2038.492188%2074.867188%20C%2039.492188%2069.410156%2040.621094%2063.984375%2041.839844%2058.570312%20C%2042.011719%2057.8125%2042.179688%2057.054688%2042.351562%2056.292969%20C%2042.550781%2055.394531%2042.753906%2054.496094%2042.953125%2053.597656%20C%2042.984375%2053.464844%2043.015625%2053.328125%2043.042969%2053.191406%20C%2043.730469%2050.125%2044.460938%2047.074219%2045.226562%2044.03125%20C%2045.265625%2043.878906%2045.304688%2043.726562%2045.34375%2043.570312%20C%2046.886719%2037.441406%2048.519531%2031.28125%2050.722656%2025.347656%20Z%20M%2050.722656%2025.347656%20'/%3e%3cpath%20style='%20stroke:none;fill-rule:nonzero;fill:rgb(99.607843%25,99.607843%25,61.568627%25);fill-opacity:1;'%20d='M%2026.425781%2091.699219%20C%2027.089844%2092.320312%2027.648438%2093.003906%2028.21875%2093.714844%20C%2029.796875%2095.699219%2031.449219%2097.632812%2033.164062%2099.503906%20C%2033.472656%2099.847656%2033.777344%20100.191406%2034.082031%20100.539062%20C%2036.058594%20102.785156%2038.136719%20105.058594%2040.433594%20106.992188%20C%2040.746094%20107.253906%2041.054688%20107.519531%2041.359375%20107.785156%20C%2042.589844%20108.859375%2043.839844%20109.886719%2045.148438%20110.863281%20C%2045.742188%20111.3125%2046.332031%20111.773438%2046.921875%20112.230469%20C%2046.949219%20111.945312%2046.949219%20111.945312%2046.980469%20111.660156%20C%2047.488281%20106.898438%2048.132812%20102.242188%2049.398438%2097.613281%20C%2049.453125%2097.613281%2049.507812%2097.613281%2049.566406%2097.613281%20C%2049.589844%2097.753906%2049.617188%2097.898438%2049.644531%2098.046875%20C%2050.960938%20104.9375%2053.917969%20111.40625%2058.160156%20116.992188%20C%2058.636719%20115.535156%2058.820312%20114.074219%2059%20112.558594%20C%2059.683594%20106.847656%2061.195312%20102.160156%2065.929688%2098.433594%20C%2066.09375%2098.378906%2066.257812%2098.324219%2066.425781%2098.269531%20C%2066.390625%2098.367188%2066.351562%2098.464844%2066.316406%2098.566406%20C%2065.449219%20101.363281%2065.851562%20104.359375%2066.589844%20107.136719%20C%2066.636719%20107.320312%2066.683594%20107.5%2066.730469%20107.6875%20C%2067.09375%20109.082031%2067.515625%20110.449219%2067.96875%20111.8125%20C%2070.175781%20118.445312%2070.175781%20118.445312%2068.738281%20121.589844%20C%2067.980469%20123.050781%2066.902344%20124.195312%2065.761719%20125.367188%20C%2065.609375%20125.539062%2065.609375%20125.539062%2065.453125%20125.714844%20C%2063.980469%20127.300781%2062.023438%20128.488281%2060.121094%20129.492188%20C%2060.007812%20129.554688%2059.894531%20129.613281%2059.78125%20129.675781%20C%2059.464844%20129.835938%2059.144531%20129.984375%2058.820312%20130.128906%20C%2058.640625%20130.214844%2058.460938%20130.296875%2058.273438%20130.382812%20C%2057.339844%20130.5%2056.699219%20130.109375%2055.878906%20129.699219%20C%2055.566406%20129.550781%2055.253906%20129.402344%2054.945312%20129.25%20C%2054.792969%20129.179688%2054.640625%20129.105469%2054.480469%20129.027344%20C%2053.914062%20128.761719%2053.332031%20128.535156%2052.746094%20128.308594%20C%2052.234375%20128.105469%2051.75%20127.863281%2051.257812%20127.617188%20C%2051.03125%20127.5%2050.804688%20127.386719%2050.582031%20127.273438%20C%2050.449219%20127.207031%2050.320312%20127.144531%2050.1875%20127.074219%20C%2049.320312%20126.640625%2048.449219%20126.210938%2047.582031%20125.777344%20C%2047.25%20125.613281%2046.921875%20125.449219%2046.589844%20125.285156%20C%2045.292969%20124.640625%2045.292969%20124.640625%2043.992188%20124%20C%2030.625%20117.46875%2030.625%20117.46875%2028.699219%20111.90625%20C%2028.316406%20110.386719%2028.207031%20108.976562%2028.246094%20107.414062%20C%2028.253906%20106.988281%2028.257812%20106.5625%2028.265625%20106.136719%20C%2028.265625%20106.027344%2028.269531%20105.917969%2028.269531%20105.808594%20C%2028.328125%20101.957031%2028.375%2098.21875%2027.25%2094.492188%20C%2027.207031%2094.347656%2027.167969%2094.207031%2027.121094%2094.058594%20C%2026.957031%2093.503906%2026.777344%2092.960938%2026.570312%2092.421875%20C%2026.425781%2092.027344%2026.425781%2092.027344%2026.425781%2091.699219%20Z%20M%2026.425781%2091.699219%20'/%3e%3c/g%3e%3c/svg%3e`,Ji=e=>{let{IncidentSize:t}=e.properties,n=25;return t>1e5?n=50:t>1e4?n=40:t>5e3?n=30:t>0&&(n=25),n};function Yi(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}var Xi=e=>Number.isNaN(parseInt(e,10))?null:Yi(parseInt(e,10)),Zi={incidents:`active`,pointType:`icon+text`,iconAtlas:qi,iconMapping:{marker:{x:0,y:0,width:100,height:136,anchorY:0}},getIconSize:Ji,getIcon:()=>`marker`,parameters:{depthTest:!1,depthCompare:`always`,cullMode:`front`},pickingFunction:e=>{if(e.object){let{IncidentName:t,IncidentSize:n,IncidentTypeCategory:r,PercentContained:i,EstimatedCostToDate:a,TotalIncidentPersonnel:o}=e.object.properties,s=[];t&&s.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Incident Name:`}),` `,t,(0,c.jsx)(`br`,{})]},`name`));let l=Xi(n);l&&s.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Incident Size:`}),` `,l,` acres`,(0,c.jsx)(`br`,{})]},`size`));let u=Xi(i);u&&s.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Percent Contained:`}),` `,u,(0,c.jsx)(`br`,{})]},`contained`)),r&&s.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Incident Type:`}),` `,r,(0,c.jsx)(`br`,{})]},`type`));let d=Xi(a);d&&s.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Estimated Cost:`}),` `,d,(0,c.jsx)(`br`,{})]},`cost`));let f=Xi(o);return f&&s.push((0,c.jsxs)(`div`,{children:[(0,c.jsx)(`strong`,{children:`Total Personnel:`}),` `,f,(0,c.jsx)(`br`,{})]},`personnel`)),{readout:s}}return{readout:null}}},Qi=class extends t.CompositeLayer{renderLayers(){return new n.GeoJsonLayer(this.props,{id:`${this.props.id}-geojson`})}};Qi.defaultProps=Zi,Qi.layerName=`NIFCLayer`;var $i=(e,t,n)=>{let r={precipitation:{Above:[[40,85,23,255],[40,85,61,255],[0,142,64,255],[58,123,95,255],[72,174,56,255],[148,205,126,255],[179,217,171,255],[255,255,255,0]],Below:[[79,47,47,255],[128,64,0,255],[147,70,57,255],[155,80,49,255],[187,109,51,255],[216,167,80,255],[240,212,147,255],[255,255,255,0]]},temperature:{Above:[[98,34,40,255],[138,47,56,255],[204,48,71,255],[199,46,40,255],[220,86,47,255],[227,139,74,255],[231,177,104,255],[255,255,255,0]],Below:[[28,19,66,255],[34,24,82,255],[47,64,111,255],[0,92,161,255],[56,159,219,255],[119,181,226,255],[160,192,223,255],[255,255,255,0]]}},i;e.includes(`temp`)&&(i=`temperature`),e.includes(`prcp`)&&(i=`precipitation`),i||console.log(`Unknown color template:`,e);let a=r[i]||{},o=[90,80,70,60,50,40,33];if(t===`Above`||t===`Below`){let e=a[t]||[];for(let t=0;t<o.length;t+=1)if(n>=o[t])return e[t]||[255,255,255,0];return e[e.length-1]||[255,255,255,0]}return[0,0,0,0]},ea={getFillColor:e=>$i((void 0).legend.layerType,e.properties.cat,e.properties.prob,e),getLineColor:[0,0,0],parameters:{depthTest:!1,depthCompare:`always`,cullMode:`back`},pickingFunction:e=>{let t=1704070800*1e3;if(e.object){let{properties:n}=e.object,r=new Date(n.start_date),i=new Date(n.end_date),a=e=>e instanceof Date&&!Number.isNaN(e)?e.toLocaleString(`en-US`,{weekday:`short`,year:`numeric`,month:`short`,day:`numeric`,timeZone:`UTC`}):`Not available`,o=r.getTime()>t?a(r):`Not available`,s=i.getTime()>t?a(i):`Not available`;return{readout:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`strong`,{children:`Category:`}),` `,n.cat||`Not available`,(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Probability:`}),` `,`${n.prob}%`||`Not available`,(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Valid:`}),` `,o,` - `,s]})}}return{readout:null}}},ta=class extends t.CompositeLayer{renderLayers(){return new n.GeoJsonLayer(this.props,{id:`${this.props.id}-geojson`,getFillColor:e=>$i(this.props.legend.layerType,e.properties.cat,e.properties.prob)})}};ta.defaultProps=ea,ta.layerName=`CPCLayer`;var na=e=>({2:[192,232,192],3:[127,197,127],4:[246,246,127],5:[230,194,127],6:[230,127,127],8:[255,127,255]})[e.properties.dn]||[255,255,255];function ra(e){return e===`Not available`||!e?`Day Not Available`:`Day ${e.split(`_`)[0].replace(/\D/g,``)||`Not Available`}`}function ia(e){if(!e||e===`Not available`||e.length!==12)return`Not available`;let t=e.slice(0,4),n=e.slice(4,6),r=e.slice(6,8),i=`${e.slice(8,10)}:${e.slice(10,12)}`,a=new Date(`${t}-${n}-${r}T${i}:00Z`);return Number.isNaN(a.getTime())?`Not available`:`${i}Z ${new Intl.DateTimeFormat(`en-US`,{weekday:`short`}).format(a)} ${n}/${r}`}var aa={getFillColor:na,getLineColor:[0,0,0],parameters:{depthTest:!1,depthCompare:`always`,cullMode:`back`},pickingFunction:e=>{if(e.object){let t={2:`General Thunderstorm`,3:`Marginal`,4:`Slight`,5:`Enhanced`,6:`Moderate`,8:`High`}[e.object.properties.dn]||`Not available`,n=e.object.properties.idp_source||`Not available`,r=e.object.properties.valid||`Not available`,i=e.object.properties.expire||`Not available`;return{readout:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`strong`,{children:[ra(n),` Categorical Outlook`]}),(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Valid:`}),` `,ia(r),` - `,ia(i),(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Category:`}),` `,t,(0,c.jsx)(`br`,{})]})}}return{readout:null}}},oa=class extends t.CompositeLayer{renderLayers(){return new n.GeoJsonLayer(this.props,{id:`${this.props.id}-geojson`})}};oa.defaultProps=aa,oa.layerName=`SPCLayer`;var sa={getFillColor:e=>({1:[0,205,0],2:[238,238,0],3:[255,0,0],4:[255,0,255]})[e.properties.dn]||[255,255,255],getLineColor:[0,0,0],parameters:{depthTest:!1,depthCompare:`always`,cullMode:`back`},pickingFunction:e=>{if(e.object){let t={1:`Marginal (At Least 5%)`,2:`Slight (At Least 15%)`,3:`Moderate (At Least 40%)`,4:`High (At Least 70%)`}[e.object.properties.dn]||`Not available`;return{readout:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`strong`,{children:`Outlook:`}),` `,e.object.properties.product||`Not available`,(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Category:`}),` `,t||`Not available`,(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Valid Time:`}),` `,e.object.properties.valid_time||`Not available`]})}}return{readout:null}}},ca=class extends t.CompositeLayer{renderLayers(){return new n.GeoJsonLayer(this.props,{id:`${this.props.id}-geojson`})}};ca.defaultProps=sa,ca.layerName=`WPCLayer`;var la=new Map;function ua(e){let t=JSON.stringify(e.geometry.coordinates),n=e.properties.phenomenon,r=e.properties.significance;return{key:`${t}-${n}-${r}`,coordinates:t,phenomenon:n,significance:r}}function da(e){return e.properties.color?T.hexToRgb(e.properties.color):[255,0,0]}function fa(e){let t=JSON.stringify(e.geometry.coordinates),n=ua(e);if(la.has(t)){let r=la.get(t);return r.phenomenon!==n.phenomenon||r.significance!==n.significance?[...da(e),128]:da(e)}return la.set(t,{phenomenon:n.phenomenon,significance:n.significance}),da(e)}var pa={filled:!0,lineWidthMinPixels:1,getFillColor:fa,getLineColor:e=>e.properties.color?T.hexToRgb(e.properties.color):[255,255,255],getLineWidth:2,stroked:!0,opacity:.5,parameters:{depthTest:!1,depthCompare:`always`,cullMode:`back`},pickingFunction:e=>{let t=1704070800*1e3;if(e.object){let{properties:n}=e.object,r=new Date(n.issuance*1e3),i=new Date(n.end*1e3),a=r.getTime()>t?r.toLocaleString():`Not available`,o=i.getTime()>t?i.toLocaleString():`Not available`;return{readout:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`strong`,{children:`Type:`}),` `,n.phenomenon||`Not available`,(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Significance:`}),` `,n.significance||`Not available`,(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Issued:`}),` `,a,(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Expiration:`}),` `,o]}),dynamicLegend:{color:T.rgb_to_string(da(e.object)),text:`${n.phenomenon} ${n.significance}`}}}return{readout:null}}},ma=class extends t.CompositeLayer{renderLayers(){return new n.GeoJsonLayer(this.props,{id:`${this.props.id}-geojson`})}};ma.defaultProps=pa,ma.layerName=`WWALayer`;var ha={Classic:{isJson:!1,url:`arcgis/navigation`,beforeId:`Ferry/Ferry`,beforeIdLines:`Water point/Sea or ocean`},Charcoal:{isJson:!0,url:{version:8,glyphs:`https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/resources/fonts/{fontstack}/{range}.pbf?token=`,sources:{esri:{type:`vector`,url:`https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer`,tiles:[`https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/{z}/{y}/{x}.pbf?token=`]}},layers:[{id:`Land/Not ice`,type:`fill`,source:`esri`,"source-layer":`Land`,filter:[`==`,`_symbol`,0],layout:{},paint:{"fill-color":`#4e5155`}},{id:`Land/Coastline`,type:`line`,source:`esri`,"source-layer":`Land`,layout:{"line-cap":`round`,"line-join":`round`,visibility:`none`},paint:{"line-color":`#9e9ba8`,"line-width":{stops:[[0,2],[9,2]]}}},{id:`Land/Ice`,type:`fill`,source:`esri`,"source-layer":`Land`,filter:[`==`,`_symbol`,1],layout:{},paint:{"fill-color":`#4e5155`}},{id:`Land/Ice/Coastline`,type:`line`,source:`esri`,"source-layer":`Land`,filter:[`==`,`_symbol`,1],layout:{"line-cap":`round`,"line-join":`round`,visibility:`none`},paint:{"line-color":`#9e9ba8`,"line-width":{stops:[[0,2],[9,2]]}}},{id:`Airport/Airport property`,type:`fill`,source:`esri`,"source-layer":`Airport`,filter:[`==`,`_symbol`,1],minzoom:9,layout:{},paint:{"fill-color":`#2d3947`,"fill-opacity":.15}},{id:`Airport/Airport runway`,type:`fill`,source:`esri`,"source-layer":`Airport`,filter:[`==`,`_symbol`,0],minzoom:11,layout:{},paint:{"fill-color":`#2d3947`}},{id:`Water line small scale`,type:`line`,source:`esri`,"source-layer":`Water line small scale`,minzoom:1,maxzoom:5,layout:{"line-join":`round`},paint:{"line-color":`#292f3d`,"line-width":.5}},{id:`Water line medium scale`,type:`line`,source:`esri`,"source-layer":`Water line medium scale`,minzoom:5,maxzoom:7,layout:{"line-join":`round`},paint:{"line-color":`#292f3d`,"line-width":{base:1.2,stops:[[5,.5],[7,.7]]}}},{id:`Water line large scale`,type:`line`,source:`esri`,"source-layer":`Water line large scale`,minzoom:7,maxzoom:11,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#292f3d`,"line-width":.7}},{id:`Water line/Stream or river`,type:`line`,source:`esri`,"source-layer":`Water line`,filter:[`==`,`_symbol`,0],minzoom:11,layout:{"line-cap":`round`},paint:{"line-color":`#292f3d`,"line-width":{base:1.2,stops:[[11,.7],[14,.7],[17,2]]}}},{id:`Marine area/detail`,type:`fill`,source:`esri`,"source-layer":`Marine area`,layout:{},paint:{"fill-color":`#292f3d`}},{id:`Water area small scale`,type:`fill`,source:`esri`,"source-layer":`Water area small scale`,minzoom:1,maxzoom:5,layout:{},paint:{"fill-color":`#292f3d`}},{id:`Water area medium scale/Lake or river`,type:`fill`,source:`esri`,"source-layer":`Water area medium scale`,filter:[`==`,`_symbol`,0],minzoom:5,maxzoom:7,layout:{},paint:{"fill-color":`#292f3d`}},{id:`Water area large scale/Lake or river`,type:`fill`,source:`esri`,"source-layer":`Water area large scale`,filter:[`==`,`_symbol`,0],minzoom:7,maxzoom:11,layout:{},paint:{"fill-color":`#292f3d`}},{id:`Water area/Lake, river or bay`,type:`fill`,source:`esri`,"source-layer":`Water area`,filter:[`==`,`_symbol`,7],minzoom:11,layout:{},paint:{"fill-color":`#292f3d`}},{id:`Water area/Dam or weir`,type:`fill`,source:`esri`,"source-layer":`Water area`,filter:[`==`,`_symbol`,5],minzoom:11,layout:{},paint:{"fill-color":`#292f3d`,"fill-outline-color":`#292f3d`}},{id:`Boundary line/Disputed admin2/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:8,layout:{"line-join":`round`,visibility:`none`},paint:{"line-color":`#e9ebec`,"line-opacity":.5,"line-dasharray":[2,3],"line-width":1.5},showProperties:!1},{id:`Boundary line/Disputed admin1/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,minzoom:4,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],layout:{"line-join":`round`},paint:{"line-color":`#e9ebec`,"line-opacity":.5,"line-width":{base:1,stops:[[4,2],[6,3.5],[14,7],[17,7]]}},showProperties:!1},{id:`Boundary line/Disputed admin0/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3],[`!in`,`DisputeID`,8,16,90,96,0]],minzoom:4,layout:{"line-join":`round`},paint:{"line-color":`#e9ebec`,"line-opacity":.5,"line-width":{base:1.2,stops:[[6,5],[8,7.5],[14,10],[17,10]]}},showProperties:!1},{id:`Boundary line/Disputed admin0/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3],[`!in`,`DisputeID`,8,16,90,96,0]],minzoom:4,layout:{"line-join":`round`,visibility:`none`},paint:{"line-width":{base:1.2,stops:[[4,1.2],[17,9]]},"line-color":`#e9ebec`,"line-opacity":.7,"line-dasharray":[10,4]},showProperties:!1},{id:`Boundary line/Disputed admin0/0 small`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3],[`!in`,`DisputeID`,8,16,90,96,0]],minzoom:1,maxzoom:4,layout:{"line-join":`round`,visibility:`none`},paint:{"line-width":.75,"line-color":`#e9ebec`,"line-dasharray":[4,3]},showProperties:!1},{id:`Boundary line/Admin1/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:3,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#e9ebec`,"line-width":{base:1,stops:[[3,.75],[6,3.5],[14,7],[17,7]]}},showProperties:!1},{id:`Boundary line/Admin0/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:4,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#e9ebec`,"line-width":{base:1.2,stops:[[6,4],[8,6.5],[14,8],[17,8]]}},showProperties:!1},{id:`Boundary line/Admin2/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:6,layout:{visibility:`none`,"line-join":`round`},paint:{"line-color":`#e9ebec`,"line-width":1.2,"line-dasharray":[2,3]},showProperties:!1},{id:`Boundary line/Admin0/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:4,layout:{"line-cap":`round`,"line-join":`round`,visibility:`none`},paint:{"line-color":`#e9ebec`,"line-width":{base:1.2,stops:[[4,1.5],[14,2.5],[17,2.5]]},"line-dasharray":[8,3]},showProperties:!1},{id:`Boundary line/Admin0/0/Small`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#e9ebec`},maxzoom:4,minzoom:1,showProperties:!1},{id:`Trail or path`,type:`line`,source:`esri`,"source-layer":`Trail or path`,minzoom:15,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":1.6,"line-color":`#fd9a94`}},{id:`Road/Pedestrian`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,9],[`!in`,`Viz`,3]],minzoom:15,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":1.22,"line-color":`#dd7d78`}},{id:`Railroad`,type:`line`,source:`esri`,"source-layer":`Railroad`,layout:{"line-join":`round`},paint:{"line-color":`#f3908a`,"line-width":1.2},minzoom:15},{id:`Ferry/Rail ferry`,type:`line`,source:`esri`,"source-layer":`Ferry`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:15,layout:{"line-join":`round`},paint:{"line-color":`#393f4e`,"line-width":1.2}},{id:`Road/4WD/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,2.22],[17,3.32]]},"line-dasharray":[6,3],"line-color":`#a84f4c`}},{id:`Road/Service/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:14,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[14,2.22],[17,3.32]]}}},{id:`Road/Local/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.4,stops:[[13,2.22],[14,3.58],[17,6.64]]}}},{id:`Road/Minor, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[13,2.22],[15,3.58],[17,5.87]]}}},{id:`Road/Minor/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[12,2.22],[14,3.58],[17,6.64]]}}},{id:`Road/Major, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[13,2.22],[15,3.58],[17,5.87]]}}},{id:`Road/Major/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[10,2.22],[14,5.61],[17,10.97]]}}},{id:`Road/Freeway Motorway, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[10,2.22],[14,3.58],[17,6.64]]}}},{id:`Road/Freeway Motorway/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[8,2.68],[14,5.61],[17,10.97]]}}},{id:`Road/4WD/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,.77],[17,1.53]]},"line-color":`#dd7d78`}},{id:`Road/Service/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,.77],[17,1.79]]},"line-color":`#dd7d78`}},{id:`Road/Local/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[13,1.15],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Minor, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[13,.77],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Minor/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[12,.77],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Major, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[13,.77],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Major/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[10,.77],[14,4.08],[17,7.91]]},"line-color":`#dd7d78`}},{id:`Road/Freeway Motorway, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[10,.77],[14,2.05],[17,3.58]]}}},{id:`Road/Highway/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:7,layout:{"line-join":`round`},paint:{"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[8,.77],[14,4.08],[17,7.91]]}}},{id:`Road/Freeway Motorway/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-join":`round`},paint:{"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[8,.77],[14,4.08],[17,7.91]]}}},{id:`Road tunnel/4WD/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,2.9],[17,4.33]]},"line-dasharray":[6,3],"line-opacity":.5,"line-color":`#a84f4c`}},{id:`Road tunnel/Service/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[14,2.9],[17,4.33]]}}},{id:`Road tunnel/Local/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.4,stops:[[13,2.9],[14,4.67],[17,8.67]]}}},{id:`Road tunnel/Minor, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[13,2.9],[15,4.67],[17,7.67]]}}},{id:`Road tunnel/Minor/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[12,2.9],[14,4.67],[17,8.67]]}}},{id:`Road tunnel/Major, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[13,2.9],[15,4.67],[17,7.67]]}}},{id:`Road tunnel/Major/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[10,2.9],[14,7.33],[17,14.33]]}}},{id:`Road tunnel/Freeway Motorway, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.5,"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[10,2.9],[14,4.67],[17,8.67]]}}},{id:`Road tunnel/Freeway Motorway/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-join":`round`},paint:{"line-opacity":.5,"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[8,3.5],[14,7.33],[17,14.33]]}}},{id:`Road tunnel/4WD/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[14,1],[17,2]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Service/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[14,1],[17,2.33]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Local/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[13,1.5],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Minor, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[13,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Minor/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[12,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Major, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[13,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Major/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[10,1],[14,5.33],[17,10.33]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Freeway Motorway, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`,"line-cap":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[10,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Highway/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:7,layout:{"line-join":`round`},paint:{"line-opacity":.7,"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[8,1],[14,5.33],[17,10.33]]}}},{id:`Road tunnel/Freeway Motorway/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:8,layout:{"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[8,1],[14,5.33],[17,10.33]]},"line-color":`#dd7d78`}},{id:`Road/label/Rectangle white black (Alt)`,type:`symbol`,source:`esri`,"source-layer":`Road/label`,filter:[`all`,[`in`,`_label_class`,8,10,12,14,16,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74],[`!in`,`Viz`,3]],minzoom:14,layout:{"symbol-placement":`line`,"symbol-spacing":800,"text-max-angle":25,"symbol-avoid-edges":!0,"text-font":[`Arial Regular`],"text-size":8.5,"text-max-width":8,"text-field":`{_name}`,"icon-image":`Road/Rectangle white black (Alt)/{_len}`,"icon-rotation-alignment":`viewport`,"text-rotation-alignment":`viewport`,"text-offset":[0,.2],"text-padding":20},paint:{"text-color":`#fedad4`,"text-halo-color":`#8d4543`}},{id:`Road/label/Rectangle white black`,type:`symbol`,source:`esri`,"source-layer":`Road/label`,filter:[`all`,[`in`,`_label_class`,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73],[`!in`,`Viz`,3]],minzoom:14,layout:{"symbol-placement":`line`,"symbol-spacing":800,"text-max-angle":25,"symbol-avoid-edges":!0,"text-font":[`Arial Regular`],"text-size":8.5,"text-max-width":8,"text-field":`{_name}`,"icon-image":`Road/Rectangle white black/{_len}`,"icon-rotation-alignment":`viewport`,"text-rotation-alignment":`viewport`,"text-offset":[0,.2],"text-padding":20},paint:{"text-color":`#fedad4`,"text-halo-color":`#8d4543`}}],metadata:JSON.parse(`{"arcgisStyleUrl":"https://www.arcgis.com/sharing/rest/content/items/b8ef81cfe2094e83b5da44957b315a48/resources/styles/root.json","arcgisOriginalItemTitle":"GG 2nd Attempt","arcgisSpriteData":{"spriteImage":{"__zone_symbol__loadfalse":[{"type":"eventTask","state":"scheduled","source":"HTMLImageElement.addEventListener:load","zone":"angular","runCount":2}]},"spriteJson":{"Water area/Inundated area":{"x":0,"y":0,"width":64,"height":64,"pixelRatio":1,"sdf":false},"Water area/Lake or river intermittent":{"x":64,"y":0,"width":64,"height":64,"pixelRatio":1,"sdf":false},"Water area/Swamp or marsh":{"x":128,"y":0,"width":64,"height":64,"pixelRatio":1,"sdf":false},"Special area of interest/Sand":{"x":0,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Special area of interest/Groundcover":{"x":32,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Special area of interest/Rock or gravel":{"x":32,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Water area/Playa":{"x":32,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/1":{"x":64,"y":64,"width":16,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/1":{"x":80,"y":64,"width":16,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/7":{"x":96,"y":64,"width":38,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/7":{"x":134,"y":64,"width":38,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/6":{"x":0,"y":96,"width":34,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/6":{"x":34,"y":96,"width":34,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/5":{"x":68,"y":96,"width":30,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/5":{"x":98,"y":96,"width":30,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/4":{"x":128,"y":96,"width":26,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/4":{"x":154,"y":96,"width":26,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/3":{"x":0,"y":112,"width":24,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/3":{"x":24,"y":112,"width":24,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/2":{"x":48,"y":112,"width":20,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/2":{"x":68,"y":112,"width":20,"height":16,"pixelRatio":1,"sdf":false},"Water line/Levee/0":{"x":88,"y":112,"width":10,"height":12,"pixelRatio":1,"sdf":false}},"spriteImage2x":{"__zone_symbol__loadfalse":[{"type":"eventTask","state":"scheduled","source":"HTMLImageElement.addEventListener:load","zone":"angular","runCount":2}]},"spriteJson2x":{"Water area/Inundated area":{"x":0,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false},"Water area/Lake or river intermittent":{"x":128,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false},"Water area/Swamp or marsh":{"x":256,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false},"Special area of interest/Sand":{"x":0,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Special area of interest/Groundcover":{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Special area of interest/Rock or gravel":{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Water area/Playa":{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/1":{"x":128,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/1":{"x":156,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/7":{"x":184,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/7":{"x":258,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/6":{"x":0,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/6":{"x":66,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/5":{"x":132,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/5":{"x":190,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/4":{"x":248,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/4":{"x":298,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/3":{"x":0,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/3":{"x":44,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/2":{"x":88,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/2":{"x":124,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false},"Water line/Levee/0":{"x":160,"y":222,"width":16,"height":22,"pixelRatio":2,"sdf":false}},"spriteList":[{"x":128,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/1","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZ1+PmaMzAwHyGlnb//c8oXb579zOwhX1ubr7/GP5toqWFTAxMfkW7dm0etZBqoTwapFQLSphBo0E6GqQkh8BooiE5yAhpGA1SQiFEsvxokJIcZIQ0jAYpoRAiWX6EBWmnq6sUM+P/pySHEwkaUJr6JOijWCkAOS3FHy7KEKAAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZ1+PmaMzAwHyGlnb//c8oXb579zOwhX1ubr7/GP5toqWFTAxMfkW7dm0etZBqoTwapFQLSphBo0E6GqQkh8BooiE5yAhpGA1SQiFEsvxokJIcZIQ0jAYpoRAiWX6EBWmnq6sUM+P/pySHEwkaUJr6JOijWCkAOS3FHy7KEKAAAAAASUVORK5CYII=)","background-size":"14px 15px"}},{"x":88,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/2","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAIVJREFUWEdjZBhkgBHknk5XVylmxv9PB9JtJbv2gN0CJnrcHI0ZGJjPDKSDGBj+mpTs2n921EG4Y2E0hAil0NEQGg0hQiFASH40DY2GEKEQICQ/moZGQ4hQCBCSH01DoyFEKAQIyY+modEQIhQChOQHcxoaDF3pv/8Zpct3734G7rkOJgAAF2OpH67+++AAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAIVJREFUWEdjZBhkgBHknk5XVylmxv9PB9JtJbv2gN0CJnrcHI0ZGJjPDKSDGBj+mpTs2n921EG4Y2E0hAil0NEQGg0hQiFASH40DY2GEKEQICQ/moZGQ4hQCBCSH01DoyFEKAQIyY+modEQIhQChOQHcxoaDF3pv/8Zpct3734G7rkOJgAAF2OpH67+++AAAAAASUVORK5CYII=)","background-size":"18px 15px"}},{"x":0,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/3","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3k5XVylmxv9PB7PbS3btAbt1yDj4739G6fLdu5+NOphWyWo0hGkVsjBzR0N4NITRQmA0SYwmidEkQes0MBrCoyGMPwRGy2Fap5DREB4N4dFymNZpYDSER0OYhJoOpLTHzeU/nQONJOtQhqpI0jnAigHcf9kfB5MDLQAAAABJRU5ErkJggg==","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3k5XVylmxv9PB7PbS3btAbt1yDj4739G6fLdu5+NOphWyWo0hGkVsjBzR0N4NITRQmA0SYwmidEkQes0MBrCoyGMPwRGy2Fap5DREB4N4dFymNZpYDSER0OYhJoOpLTHzeU/nQONJOtQhqpI0jnAigHcf9kfB5MDLQAAAABJRU5ErkJggg==)","background-size":"22px 15px"}},{"x":248,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/4","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHdJREFUWEftktEJgDAQxbzdxIk6hhNJd7P0xwEeRKrE/xe8pLX95Kt5x3ns95fvaVcvD1mpoEVWqjH/xSIWgQz4tCCxMdYisTpoaBFIbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpo+BSB+K9iB7sOcB+Yn4bIAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHdJREFUWEftktEJgDAQxbzdxIk6hhNJd7P0xwEeRKrE/xe8pLX95Kt5x3ns95fvaVcvD1mpoEVWqjH/xSIWgQz4tCCxMdYisTpoaBFIbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpo+BSB+K9iB7sOcB+Yn4bIAAAAAElFTkSuQmCC)","background-size":"25px 15px"}},{"x":132,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/5","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGpJREFUWEft1MENgEAMA0HSG6IiyqAidL2B7sMLCnCYVBB7V67lJ1cz57GtV+e8+zlK0E6EEe1Ec2ZBFNHQBqgbCu7zbUQRDW2AuqHgjBF1qRvaAHVDwVld6lI3tAHqhoKzuo+63Qi+5bkBTstwHzqs1nYAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGpJREFUWEft1MENgEAMA0HSG6IiyqAidL2B7sMLCnCYVBB7V67lJ1cz57GtV+e8+zlK0E6EEe1Ec2ZBFNHQBqgbCu7zbUQRDW2AuqHgjBF1qRvaAHVDwVld6lI3tAHqhoKzuo+63Qi+5bkBTstwHzqs1nYAAAAASUVORK5CYII=)","background-size":"29px 15px"}},{"x":0,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/6","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHZJREFUaEPt2LEJgDAQBdC73cSJHMOJJLsZIjaKyNX6UqRK9bn/SJJhHQnk2NZ52v+cx7K1FERECOKsgSAEcRXRRJgIE/F4S1AN1VAN1Xh7QjCCEYxgBCMKHy2whCUsYQlLWBYSgCUsYQnLAhVulncsC6F9/kgH4nlwHzTeD0oAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHZJREFUaEPt2LEJgDAQBdC73cSJHMOJJLsZIjaKyNX6UqRK9bn/SJJhHQnk2NZ52v+cx7K1FERECOKsgSAEcRXRRJgIE/F4S1AN1VAN1Xh7QjCCEYxgBCMKHy2whCUsYQlLWBYSgCUsYQnLAhVulncsC6F9/kgH4nlwHzTeD0oAAAAASUVORK5CYII=)","background-size":"33px 15px"}},{"x":184,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/7","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAIJJREFUaEPt0rENgDAQBEHcG6IiyqAiRG8gdzDE3o83mr+xdSQwZnUd+0v1otF5PyMoeH5QgDSToIJCAcxaVFAogFmLCgoFMGtRQaEAZi0qKBTArEUFhQKYtaigUACzFhUUCmDWooJCAcxaVFAogFmLCgoFMGtRQaEAZi3qLxT2S2cfdjZwH0cx5/YAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAIJJREFUaEPt0rENgDAQBEHcG6IiyqAiRG8gdzDE3o83mr+xdSQwZnUd+0v1otF5PyMoeH5QgDSToIJCAcxaVFAogFmLCgoFMGtRQaEAZi0qKBTArEUFhQKYtaigUACzFhUUCmDWooJCAcxaVFAogFmLCgoFMGtRQaEAZi3qLxT2S2cfdjZwH0cx5/YAAAAASUVORK5CYII=)","background-size":"37px 15px"}},{"x":156,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/1","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZ1+PmaMzAwHyGlnb//c8oXb579zOwhX1ubr7/GP5toqWFTAxMfkW7dm0etZBqoTwapFQLSphBo0E6GqQkh8BooiE5yAhpGA1SQiFEsvxokJIcZIQ0jAYpoRAiWX6EBWmnq6sUM+P/pySHEwkaUJr6JOijWCkAOS3FHy7KEKAAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZ1+PmaMzAwHyGlnb//c8oXb579zOwhX1ubr7/GP5toqWFTAxMfkW7dm0etZBqoTwapFQLSphBo0E6GqQkh8BooiE5yAhpGA1SQiFEsvxokJIcZIQ0jAYpoRAiWX6EBWmnq6sUM+P/pySHEwkaUJr6JOijWCkAOS3FHy7KEKAAAAAASUVORK5CYII=)","background-size":"14px 15px"}},{"x":124,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/2","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAIVJREFUWEdjZBhkgBHknk5XVylmxv9PB9JtJbv2gN0CJnrcHI0ZGJjPDKSDGBj+mpTs2n921EG4Y2E0hAil0NEQGg0hQiFASH40DY2GEKEQICQ/moZGQ4hQCBCSH01DoyFEKAQIyY+modEQIhQChOQHcxoaDF3pv/8Zpct3734G7rkOJgAAF2OpH67+++AAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAIVJREFUWEdjZBhkgBHknk5XVylmxv9PB9JtJbv2gN0CJnrcHI0ZGJjPDKSDGBj+mpTs2n921EG4Y2E0hAil0NEQGg0hQiFASH40DY2GEKEQICQ/moZGQ4hQCBCSH01DoyFEKAQIyY+modEQIhQChOQHcxoaDF3pv/8Zpct3734G7rkOJgAAF2OpH67+++AAAAAASUVORK5CYII=)","background-size":"18px 15px"}},{"x":44,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/3","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3k5XVylmxv9PB7PbS3btAbt1yDj4739G6fLdu5+NOphWyWo0hGkVsjBzR0N4NITRQmA0SYwmidEkQes0MBrCoyGMPwRGy2Fap5DREB4N4dFymNZpYDSER0OYhJoOpLTHzeU/nQONJOtQhqpI0jnAigHcf9kfB5MDLQAAAABJRU5ErkJggg==","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3k5XVylmxv9PB7PbS3btAbt1yDj4739G6fLdu5+NOphWyWo0hGkVsjBzR0N4NITRQmA0SYwmidEkQes0MBrCoyGMPwRGy2Fap5DREB4N4dFymNZpYDSER0OYhJoOpLTHzeU/nQONJOtQhqpI0jnAigHcf9kfB5MDLQAAAABJRU5ErkJggg==)","background-size":"22px 15px"}},{"x":298,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/4","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHdJREFUWEftktEJgDAQxbzdxIk6hhNJd7P0xwEeRKrE/xe8pLX95Kt5x3ns95fvaVcvD1mpoEVWqjH/xSIWgQz4tCCxMdYisTpoaBFIbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpo+BSB+K9iB7sOcB+Yn4bIAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHdJREFUWEftktEJgDAQxbzdxIk6hhNJd7P0xwEeRKrE/xe8pLX95Kt5x3ns95fvaVcvD1mpoEVWqjH/xSIWgQz4tCCxMdYisTpoaBFIbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpo+BSB+K9iB7sOcB+Yn4bIAAAAAElFTkSuQmCC)","background-size":"25px 15px"}},{"x":190,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/5","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGpJREFUWEft1MENgEAMA0HSG6IiyqAidL2B7sMLCnCYVBB7V67lJ1cz57GtV+e8+zlK0E6EEe1Ec2ZBFNHQBqgbCu7zbUQRDW2AuqHgjBF1qRvaAHVDwVld6lI3tAHqhoKzuo+63Qi+5bkBTstwHzqs1nYAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGpJREFUWEft1MENgEAMA0HSG6IiyqAidL2B7sMLCnCYVBB7V67lJ1cz57GtV+e8+zlK0E6EEe1Ec2ZBFNHQBqgbCu7zbUQRDW2AuqHgjBF1qRvaAHVDwVld6lI3tAHqhoKzuo+63Qi+5bkBTstwHzqs1nYAAAAASUVORK5CYII=)","background-size":"29px 15px"}},{"x":66,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/6","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHZJREFUaEPt2LEJgDAQBdC73cSJHMOJJLsZIjaKyNX6UqRK9bn/SJJhHQnk2NZ52v+cx7K1FERECOKsgSAEcRXRRJgIE/F4S1AN1VAN1Xh7QjCCEYxgBCMKHy2whCUsYQlLWBYSgCUsYQnLAhVulncsC6F9/kgH4nlwHzTeD0oAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHZJREFUaEPt2LEJgDAQBdC73cSJHMOJJLsZIjaKyNX6UqRK9bn/SJJhHQnk2NZ52v+cx7K1FERECOKsgSAEcRXRRJgIE/F4S1AN1VAN1Xh7QjCCEYxgBCMKHy2whCUsYQlLWBYSgCUsYQnLAhVulncsC6F9/kgH4nlwHzTeD0oAAAAASUVORK5CYII=)","background-size":"33px 15px"}},{"x":258,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/7","centerColor":{"0":140,"1":70,"2":68,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAIhJREFUaEPt1TESQDAARUG5m3Eix3Ai425MGvVTW/WrNj8yFl8SGLM6tvVO9U+j/bwGqHD4oALSTECBigIxsyhQUeBD5tULWK5eQPLqRSRQoD4IxNQ/ClQUiJlFgYoCMbMoUFEgZhYFKgrEzKJARYGYWRSoKBAziwIVBWJmUaCiQMzeRcX+19kDed5uNGK5/SYAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAIhJREFUaEPt1TESQDAARUG5m3Eix3Ai425MGvVTW/WrNj8yFl8SGLM6tvVO9U+j/bwGqHD4oALSTECBigIxsyhQUeBD5tULWK5eQPLqRSRQoD4IxNQ/ClQUiJlFgYoCMbMoUFEgZhYFKgrEzKJARYGYWRSoKBAziwIVBWJmUaCiQMzeRcX+19kDed5uNGK5/SYAAAAASUVORK5CYII=)","background-size":"37px 15px"}},{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Special area of interest/Groundcover","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"32px 32px"}},{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Special area of interest/Rock or gravel","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"32px 32px"}},{"x":0,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Special area of interest/Sand","centerColor":{"0":50,"1":51,"2":51,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABRhJREFUeF7tm+lSG0EMhBnMaXMZDA8SrmAqxLz/m3CYw+a+UlHxbbEyKmmI/8QDf7bs2dWanh51Szubfmxvv019+FteXpZPNzc3cnx9ff04PLWwsCCfHx4e5Pj2Vru8du7fDykl+W5paUmOt7e3cnx5eamdOz8/X4s7Ekh9MTMzI98sLi7KcTAY1M7gvsS9v7//NGT6BkAxwEN+fX1dTrm6uvp0Jr3r9Tgz1el0ZKjf748l7vT0tMQh7tnZmXzWjB5hgPcPTBwAv3s9WcR6DXlAWOMbGxsyNBwOs9a0FQ+GbG5uyinn5+djYcjq6qrEScUDsLe/Lwx4fn6uTUKr1ZLPj4+Pcnx6egqRYnZ2tjZDes2RtfkeNfGCWyqhVcZSLx0fFUnFA6BlEKSYKXRe62ij0ZBTybZRhsAsGHB3d1ebHOJp5ng5Av9C7tHXwyAYzf9lqkDxAHhrkpkEWfRbX8ca9Rwj16EiMI417f0ejyH4gYuLCzmVnJftA7jRxADQPTwUFWANnZ6efhXs2nV4f7Lt5eVlKC65RdcKXIwRQz2iDLGYmIoHYGd3VxgA8jqbM4Os9SjixAN57TOIx7hVrWnaeD6j2WzKJeQcrTIjOap4ACwfAFIgzoyhsxrJ3HoemYUB9AmIy/cwSTPISigeA/AZrg8oFoBc3SZHoN+oSNTJWTMJQzhaPiMkLR9OWllZqV0y4gOKBYCZRGetDoqFuOXhySEgz0xGnaF1v7m5ORnCb0QZwgRXuYYkWDwAIOJlcywwTiyanVnLVvVH9sZneAxBHWCYVa1yX0u9RnJAcQBYDRFr7a2trckQuk19zfmel9dxyR3kiOvrazlFq0hunwBmUOPoHFE51eIB6B0f17rC3trzdHdra0tOoe6Odoo8ddFd4WjuseLCuFQ8AFYtQFZGb6P1PHJqzVC73ZZJIdvrHGLNmJVb0HXiku2jcc2OUPEAMJNkX42oN+55fOLpzg9Pn2FQdK2j9/gTrSI8CYJ5bk/Q+we98f8OgFz9ZokABPqt63kYZPX4NFA4TdTD8hnMcFS18AMwhLhVDigWgJ8HB+IDcHgnJyee1IfGWcvj7jZTrVJTeD0/78em4gHAB3j1PHU3Ds9DlnErLvFYw9Fus3df4pIjdK9RX1/lgOIB8Lw4a9rq3qLDHuLcB4eJk9P7BKjmGI86O+JyH32djus+G4QZEwvA9s6OqEBUTzVTor253HoeRhGfXWlWPyHahca/8HtS8QCgAnq/HohH156VQ1hzVGvj8hkwA/+S28WuHOs3AGqnqLUXWNfd7CuMdnxggvX0mWoNnxFd05aFhyE4UfYXmj6AgeIAyG2KkkXx4Fo9qObo03tVYFRmvV3femZhBtdpf1L5geIB+HV0JD7A8uK5D0up1ogX3Qnq9QLJ9tazxVyfUXWFiwfA6gpTVYGs7vh4VZk1zj4CGBLdG+Tdj+cR/M5oXLMWKB4AZh7krXeHOC9aBZJ96cpqFcEPEO9ffQY5jLj62aPJgGIA2N3bExWguxvN2hgmENa9OXSYY7Sm0G+XaebBIJgTfW5AXH4n/iQVD8BBtysMwMFF99p4WRnEmTGrl5jbjke/YYbe+ZHrW1LxAHg7RaNVlccI6wkQtcW4dqnn+gy3J1g8AN47uKxh1jw6G+0xWh6euNTzdKi8uJ7P0HuJXQYUB4D39vhI3f3+FnfrfZ++rhm+OpMwgxnT2b7xft+m8fa4lZP0y2DZb49PGgB/AFWursjFdg4fAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABRhJREFUeF7tm+lSG0EMhBnMaXMZDA8SrmAqxLz/m3CYw+a+UlHxbbEyKmmI/8QDf7bs2dWanh51Szubfmxvv019+FteXpZPNzc3cnx9ff04PLWwsCCfHx4e5Pj2Vru8du7fDykl+W5paUmOt7e3cnx5eamdOz8/X4s7Ekh9MTMzI98sLi7KcTAY1M7gvsS9v7//NGT6BkAxwEN+fX1dTrm6uvp0Jr3r9Tgz1el0ZKjf748l7vT0tMQh7tnZmXzWjB5hgPcPTBwAv3s9WcR6DXlAWOMbGxsyNBwOs9a0FQ+GbG5uyinn5+djYcjq6qrEScUDsLe/Lwx4fn6uTUKr1ZLPj4+Pcnx6egqRYnZ2tjZDes2RtfkeNfGCWyqhVcZSLx0fFUnFA6BlEKSYKXRe62ij0ZBTybZRhsAsGHB3d1ebHOJp5ng5Av9C7tHXwyAYzf9lqkDxAHhrkpkEWfRbX8ca9Rwj16EiMI417f0ejyH4gYuLCzmVnJftA7jRxADQPTwUFWANnZ6efhXs2nV4f7Lt5eVlKC65RdcKXIwRQz2iDLGYmIoHYGd3VxgA8jqbM4Os9SjixAN57TOIx7hVrWnaeD6j2WzKJeQcrTIjOap4ACwfAFIgzoyhsxrJ3HoemYUB9AmIy/cwSTPISigeA/AZrg8oFoBc3SZHoN+oSNTJWTMJQzhaPiMkLR9OWllZqV0y4gOKBYCZRGetDoqFuOXhySEgz0xGnaF1v7m5ORnCb0QZwgRXuYYkWDwAIOJlcywwTiyanVnLVvVH9sZneAxBHWCYVa1yX0u9RnJAcQBYDRFr7a2trckQuk19zfmel9dxyR3kiOvrazlFq0hunwBmUOPoHFE51eIB6B0f17rC3trzdHdra0tOoe6Odoo8ddFd4WjuseLCuFQ8AFYtQFZGb6P1PHJqzVC73ZZJIdvrHGLNmJVb0HXiku2jcc2OUPEAMJNkX42oN+55fOLpzg9Pn2FQdK2j9/gTrSI8CYJ5bk/Q+we98f8OgFz9ZokABPqt63kYZPX4NFA4TdTD8hnMcFS18AMwhLhVDigWgJ8HB+IDcHgnJyee1IfGWcvj7jZTrVJTeD0/78em4gHAB3j1PHU3Ds9DlnErLvFYw9Fus3df4pIjdK9RX1/lgOIB8Lw4a9rq3qLDHuLcB4eJk9P7BKjmGI86O+JyH32djus+G4QZEwvA9s6OqEBUTzVTor253HoeRhGfXWlWPyHahca/8HtS8QCgAnq/HohH156VQ1hzVGvj8hkwA/+S28WuHOs3AGqnqLUXWNfd7CuMdnxggvX0mWoNnxFd05aFhyE4UfYXmj6AgeIAyG2KkkXx4Fo9qObo03tVYFRmvV3femZhBtdpf1L5geIB+HV0JD7A8uK5D0up1ogX3Qnq9QLJ9tazxVyfUXWFiwfA6gpTVYGs7vh4VZk1zj4CGBLdG+Tdj+cR/M5oXLMWKB4AZh7krXeHOC9aBZJ96cpqFcEPEO9ffQY5jLj62aPJgGIA2N3bExWguxvN2hgmENa9OXSYY7Sm0G+XaebBIJgTfW5AXH4n/iQVD8BBtysMwMFF99p4WRnEmTGrl5jbjke/YYbe+ZHrW1LxAHg7RaNVlccI6wkQtcW4dqnn+gy3J1g8AN47uKxh1jw6G+0xWh6euNTzdKi8uJ7P0HuJXQYUB4D39vhI3f3+FnfrfZ++rhm+OpMwgxnT2b7xft+m8fa4lZP0y2DZb49PGgB/AFWursjFdg4fAAAAAElFTkSuQmCC)","background-size":"32px 32px"}},{"x":0,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false,"id":"Water area/Inundated area","centerColor":{"0":29,"1":34,"2":36,"3":211},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADAZJREFUeF7tXc1zI1cR7/FKissfgVBla1NIyno0nBIuFEdCAhQBwoVAqvioJBQUFyDAkfAXJBwJJLmFhAMfBSFcgBAqX4RjKgc+TrG0tuXUruwqArF3sSWtB17P69FoNOP5Hs3Ma1/eStqxxtO/X3e/7n7dWlvv/g0AYHz92ifEevXq1UOx0s/Gxsaa+Pfy+s1/sN7T7pSf7Yv1ZHTyMbEe7u9vO68DgLp43dKNn+NVAPfLz98R62R8do9Yrwz6b7iu08Trdtd4HN834WH5+QmuZ5PPiWWws/Mn13X4sqPrj1iXLT0qPz/DyzTz62J9u9d71vO6bvchvM7UnpafX7Du++wHYt3r9x/zuu7WS5c+Ld6vLdWel58v46rBT/A+e9vfle+bzutvbesfxuvqSy/K92+x7hueE+t+f/vL8v2x87pmp6OL141a4xX5fgdXE14Ty+j60WfFOhwOr81c1+xu4nWr2svy/dvxNhkA1uPoqAqAixcvbogHwMxfOPN/I5n/lfOYX681XrUUDLSTMB8A/om/hwFQGNW/GAA47YT4tzI2f2vrQTSd2oWfymcgbT6gD7HX3/6h+9mI1xnY/HMFv9FqGeJ7lxvLZPNbaTD/9PgG+nzocDl/GACKAkAZwfs6e2oJ/uDg8nBGAzAAFAWAQ/B/tEyB9hFpEhTZ56sh+NE18+NCrsNh78Bp8jUGgOIAaOvd11Ni/r/E75ncGH9SrFd2d990+ZcFi/CpLfhms7mK+p4BUO3tnp/qdwDAoBh1XJvPzBfxAf/Y/kL3+eTtkzYmwTdW1n8vNQADwGmqqhboCQOAgXgAMbJ6ajAf4AnxfAb97e9IoITN6hWa+aDBXaQBGADnhXirDgCKNUfI54djvm5gPhwAviVXzOdPzib34S5hZ+cFdxhavE4/n6+Gt0+x/SCVT8wX6Q7UAAyA1As6SqH6bQB4sDBZJU/ezC9eVo8qeSYzSbaMs3pRmT+ajLCSay4bmLiUiwFQWgDUBCJauvELiYxoNXy6gd7y/8PN38zF5jPzMZ8fl/nDvb2+WwMwAOIVcZLNLxXznQBIKvgfS8Z/m5k/tfq+lTwAfxH/a3Tt6F6xhq3epRq+uN4+2XwSPN2p8AEYAHkyv2gAaOnGr2Pa/IIwP/e6/Xgqv2CCJ2dfYwBEPrhRLQC0dTsZlOjETmYRPl9vn5kvNDdl9dwRPj+bT8xv691fUS6AkhsMgHBp3WjefkFVvxMAVmw/5lm9uMwH0L4hvnfQf4vq8meCkh1mfir7fMdDxQgvCR5Aw5yM1tYNBoCCzLcBQJUsUU/pxmV+4CndtJkflM697bYPCSbULtT/LNnyPrGaAImcvZOj/+Ap3cPDw2Onamv6nNLNap/vtvkkeAD4N2oABoDiAJgxvNaLc6t3s2J+a8t4AL9cg2fkPSU7n8/M97T5xPzJ+Ayrt72ygQyA2QYN4dK60tsvi+r3AgALPgPB0/H7+soadea4Q2o4PJ+fdmw/yOaT4Mnnc2oABoCiAFiI4FPf5wM8acUVtqmn0Gz1burevoknqk6O3sWsntvbT5v5JgAW744no7sxiyjz+UH7fLfNd+/2hPAZALGYXxEAtLuGldVzdePKyttPvRlTcuZ79uTxz+dXQ/BEfI0BsK04AKbZwAXV7cfM6lWc+cIq4S5hfIo2/2Aw6LliNrTP/6UM33xefo4RPre377h2xuSLXAA5SwwA0STLr3wb8lX9eQLgv4iY3E/sxGb+U9LbpxrEqN5+KVT+aHyKdftZMZ98PqEBGAAFYj5t93IDAB2HjnpWT9PMrwmE7vV6P/PIJ6TfelURmx/ilDad2/hCHJvv3u1pDACfRowLsvm5A8CLveI9j1O6N6xsndV1m5mfWmw/bGeWVJlPPp9XNhAxwQDIJ8RL3n7ezPcFQN6Cb1+69ClE3FLtd1Ibheu3Hxzbz8jbX31J7rs/KO8Xs3pBzZg8qnczZX5n6wM/wgCvZlJnE89t/pwGYAAEMb+iAGDBF07w7kkroSJ8YZlPvp+tARgAigKABV9twQfNWNIYAIoDwJEMynSfz95+NtPV/Gx+EPOJ+M5sIAMAAKalXLl7+7HG66UBACx7zirCF5v5affeDR3aVUPwNFdRaAAGgILMtwFANXppx/YrwPx/CM04vn6MkzbccxXtrtur63KiKnxU7q3DRvgWovIdE1Utk88AsAZn1lfmVL8aAPDNBk6na9H5/SVETMAs3fIz3/y7xfygWcrvwX77APkwP+1ZylTP4Z8NZAAEDNOuKADe3+1+FZNz0ynazPwKTVR1V3LNaQAGQJDqv1k6fdqdeTh9Wal+cvqnySBlVT6c6+xVfaAmAwAUB4DjrF5JvX2r965fYwb/0G5Yb7/cKj+oJ5MdBzBNjQHg2BNXXfXbBSEUCgaAUD15irPPZ+b7FO+eifeDmE+a384FMAAsTqjCfCcA8Gxd3AifZmrYX2Dv8lvfk2ploXP12OZb5zbe7vWe9Yryuvsz2PUADICNNfHAlter7fTNAYAqQ/b6/ce8EONn85n5kGy6Wtd4HJ+3qzNL2EoeR1Yvks03pxFey+djAKjJ/KnP55MOTIH51Hv3vRbQ7d670U7smPCauH50/Qh777pn7JxTwpV3hC/cRNWiMF9mdX2zgQyAyEWc1QCA3/j0CDbfzfznBHP3+9s0aGHsVDq+LVmY+fiY0p+lPNuZZU4DMADUYD45/TYA/AQPGuAU8EEvcLgSM3/Wn1pMA85pVvdpeTvnRngZALIdW4jz+e4izkQ2vyhNuewWMbWl2vMSMeHO50/r9pn5XszPe4h2RObbySBW/RnZ/LIAgNrEiSgooiKmzQcwf4u+Qr/3JYkuNb39kgieiG/3CWQA2HrcL8QbzuaXEABW9i4j5m+2213x6xv1m16xvgbaMgZerQhf3oJPabra9HQwA6BczE8NAHJeQNR9fpDNb3Y6umB6vdZ4lZk/n3CJHeFLSfBk8u15AQwAI94+v6Sq3waAY3ScXyXPzD4fwMR4waDf+6KXt18i5tfE/bd0gzpw3i//nmI6eykzn3w+e2aQlbGd/tBE0Vp9iQFQhEBPhgCY+fOSCr5Ra6C3LxJZCb39cztwTos3Ix/STMp8a8YSAM0ryHbQRkaCJ5M/nw30CfGGVf0MgJ0X5l2+BGndvADAzB/jLN0ru7tvugRoZfV0OV2tIswnkz/NBjLz1QQAM19N5pOW0xgAigOgrRvvSDRg9W7RnL0E3bj8vH38eyfjs3vQ5g/6b3jafJ/q3cwKOTJ29vy2+SIXwADw2ucrBAAZAAoX4ctrm6cK81tbxgMCf5oGz0gchjqlnUIhz4v4vdNm0QwA3O7lzPwCAKBLlTznxvaZ+X4BHuP76DkB0NnKcGf1FmTza/UlZD4A3CI1AAMgGfNLDgCRspeImKnho6weMz9l5ses3vW1+QBPCPkN+ts0HSxSfwYRCWQAWDr8YUmEkMmdmMwvIABmNkELY/7KutV7V4O75A0Fdd1e0D4/X8H79mRKyHw6qzmXDWQATO7DANFOMVR/bgBgwccT/AKmqD8lbT7VI0Sy+Y5T2tagENL/DABFAcCCV0bwnp1ZNAaA4gBo68auNAMRa/jWXpbX3SHXrKdox5qxEz+0O+ftL2asHsCT0ubTNnXW5iecoi5yAQwAVz5YvOzo6gDAQlRAT55ms7sp/ltjVSPm387MnyLH3YAxcevdjJm/3Fi2zmra2UAGAEpTFeZPAbBl4Nk9vz58zHyr925h5iomtPkkeHEoytIADIBiMT/olHbaAKDKG3cHTmZ+tZkPYP4VNQADoCDefs7MtwHg3gEFMf/0+AYOVDw4uDx0XmvX8EXP6mXSdTu4erckgk9/ijoy/+To3c/M5ALsnEDAdo8B0H0Id83utuvlGanrDYDNza2m+MNuWrvwkgTDzD6fBV96wb8umX+vWA8PD49nNAADoGBOX/qq3xsALPjQgi/pWD3TU/Bk8jUGgOIAaOsGTtYAgFRs/un49G7cJQwGPdcOo1TevipDtEUugAHg3gsDgEoAoPxyrHy+CTAQz288GSHzh3t7/WIwX38Et2uw9Ki8n1D5fFUEX19Zxd2e42wgMAAUYj4B4H+TZZYGHlCT0gAAAABJRU5ErkJggg==)","background-size":"64px 64px"}},{"x":128,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false,"id":"Water area/Lake or river intermittent","centerColor":{"0":46,"1":48,"2":48,"3":255},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"64px 64px"}},{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Water area/Playa","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"32px 32px"}},{"x":256,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false,"id":"Water area/Swamp or marsh","centerColor":{"0":77,"1":79,"2":79,"3":181},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"64px 64px"}},{"x":160,"y":222,"width":16,"height":22,"pixelRatio":2,"sdf":false,"id":"Water line/Levee/0","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAWCAYAAADJqhx8AAAAAXNSR0IArs4c6QAAAK1JREFUOE9jZKAQMFKon2HUAIbRMGAYtGGgrKa58j/Df2v0ZP6fgWHa/Vs32pDFsSZlJXV1E4b/jKeQvfifgeHtX3ZW1UeXL78naABIgZKaxnwGBoYEmOL/DIw5929dn4ruKpyZSUFLS4Lpz79bDAwMvAwMDFfv3bqhz8DA8JdoA8CuUNcsZ/j/v4PhP6PrvdvX92DL+nizs5aWFtuPP//a7926UYyr3BgtDxgYAKveLhcPM+OgAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAWCAYAAADJqhx8AAAAAXNSR0IArs4c6QAAAK1JREFUOE9jZKAQMFKon2HUAIbRMGAYtGGgrKa58j/Df2v0ZP6fgWHa/Vs32pDFsSZlJXV1E4b/jKeQvfifgeHtX3ZW1UeXL78naABIgZKaxnwGBoYEmOL/DIw5929dn4ruKpyZSUFLS4Lpz79bDAwMvAwMDFfv3bqhz8DA8JdoA8CuUNcsZ/j/v4PhP6PrvdvX92DL+nizs5aWFtuPP//a7926UYyr3BgtDxgYAKveLhcPM+OgAAAAAElFTkSuQmCC)","background-size":"8px 11px"}}]},"arcgisQuickEditor":{"land":"#6c6f75","labelTextColor":"#ffffff","labelHaloColor":"#000000","baseColor":"#7c838d","spriteProcessing":true,"labelContrast":4.5,"labelColorMode":"LABELS_MAP_COLORS","colorMode":"CUSTOM","colors":{"water":"#3f495c","land":"#6c6f75","building":"#474b52","road":"#dd7d78","boundaries":"#edeff0"},"road":"#dd7d78","water":"#3f495c","boundaries":"#edeff0"},"arcgisQuickEditorWarning":true,"arcgisEditorExtents":[{"spatialReference":{"wkid":102100},"xmin":-13291652.777350293,"ymin":3143561.5776870735,"xmax":-8989165.329235436,"ymax":5276460.414956065},{"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":-371197.9381234135,"ymin":6496985.075827017,"xmax":343029.6541730836,"ymax":6905464.554982891},{"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":-8597472.051695079,"ymin":4692615.939336582,"xmax":-8552832.827176519,"ymax":4718145.906783841},{"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":16831588.19989802,"ymin":-4011777.2067113556,"xmax":16832983.17566426,"ymax":-4010979.3952286085}],"arcgisMinimapVisibility":true}`)},beforeId:`Water area/Dam or weir`,beforeIdLines:`Water area/Dam or weir`},Dark:{isJson:!1,url:`arcgis/dark-gray`,beforeId:`Railroad/2`,beforeIdLines:`Water point/Sea or ocean`},"Dark (streets)":{isJson:!1,url:`arcgis/streets-night`,beforeId:`Ferry/Ferry`,beforeIdLines:`Ferry/label/Ferry`},Light:{isJson:!1,url:`arcgis/light-gray`,beforeId:`Railroad/2`,beforeIdLines:`Water point/Sea or ocean`},Platinum:{isJson:!0,url:{version:8,glyphs:`https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/resources/fonts/{fontstack}/{range}.pbf?token=`,sources:{esri:{type:`vector`,url:`https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer`,tiles:[`https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/{z}/{y}/{x}.pbf?token=`]}},layers:[{id:`Land/Not ice`,type:`fill`,source:`esri`,"source-layer":`Land`,filter:[`==`,`_symbol`,0],layout:{},paint:{"fill-color":`#e4e7eb`,"fill-opacity":1}},{id:`Land/Coastline`,type:`line`,source:`esri`,"source-layer":`Land`,layout:{"line-cap":`round`,"line-join":`round`,visibility:`none`},paint:{"line-color":`#9e9ba8`,"line-width":{stops:[[0,2],[9,2]]}}},{id:`Land/Ice`,type:`fill`,source:`esri`,"source-layer":`Land`,filter:[`==`,`_symbol`,1],layout:{},paint:{"fill-color":`#e4e7eb`,"fill-opacity":1}},{id:`Land/Ice/Coastline`,type:`line`,source:`esri`,"source-layer":`Land`,filter:[`==`,`_symbol`,1],layout:{"line-cap":`round`,"line-join":`round`,visibility:`none`},paint:{"line-color":`#9e9ba8`,"line-width":{stops:[[0,2],[9,2]]}}},{id:`Airport/Airport property`,type:`fill`,source:`esri`,"source-layer":`Airport`,filter:[`==`,`_symbol`,1],minzoom:9,layout:{},paint:{"fill-color":`#bdcada`,"fill-opacity":.15}},{id:`Airport/Airport runway`,type:`fill`,source:`esri`,"source-layer":`Airport`,filter:[`==`,`_symbol`,0],minzoom:11,layout:{},paint:{"fill-color":`#bdcada`}},{id:`Water line small scale`,type:`line`,source:`esri`,"source-layer":`Water line small scale`,minzoom:1,maxzoom:5,layout:{"line-join":`round`},paint:{"line-color":`#8fabd9`,"line-width":.5}},{id:`Water line medium scale`,type:`line`,source:`esri`,"source-layer":`Water line medium scale`,minzoom:5,maxzoom:7,layout:{"line-join":`round`},paint:{"line-color":`#8fabd9`,"line-width":{base:1.2,stops:[[5,.5],[7,.7]]}}},{id:`Water line large scale`,type:`line`,source:`esri`,"source-layer":`Water line large scale`,minzoom:7,maxzoom:11,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#8fabd9`,"line-width":.7}},{id:`Water line/Stream or river`,type:`line`,source:`esri`,"source-layer":`Water line`,filter:[`==`,`_symbol`,0],minzoom:11,layout:{"line-cap":`round`},paint:{"line-color":`#8fabd9`,"line-width":{base:1.2,stops:[[11,.7],[14,.7],[17,2]]}}},{id:`Marine area/detail`,type:`fill`,source:`esri`,"source-layer":`Marine area`,layout:{},paint:{"fill-color":`#8fabd9`}},{id:`Water area small scale`,type:`fill`,source:`esri`,"source-layer":`Water area small scale`,minzoom:1,maxzoom:5,layout:{},paint:{"fill-color":`#8fabd9`}},{id:`Water area medium scale/Lake or river`,type:`fill`,source:`esri`,"source-layer":`Water area medium scale`,filter:[`==`,`_symbol`,0],minzoom:5,maxzoom:7,layout:{},paint:{"fill-color":`#8fabd9`}},{id:`Water area large scale/Lake or river`,type:`fill`,source:`esri`,"source-layer":`Water area large scale`,filter:[`==`,`_symbol`,0],minzoom:7,maxzoom:11,layout:{},paint:{"fill-color":`#8fabd9`}},{id:`Water area/Lake, river or bay`,type:`fill`,source:`esri`,"source-layer":`Water area`,filter:[`==`,`_symbol`,7],minzoom:11,layout:{},paint:{"fill-color":`#8fabd9`}},{id:`Water area/Dam or weir`,type:`fill`,source:`esri`,"source-layer":`Water area`,filter:[`==`,`_symbol`,5],minzoom:11,layout:{},paint:{"fill-color":`#8fabd9`,"fill-outline-color":`#8fabd9`}},{id:`Boundary line/Disputed admin2/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:8,layout:{"line-join":`round`},paint:{"line-color":`#595959`,"line-opacity":.5,"line-dasharray":[2,3],"line-width":1.5},showProperties:!1},{id:`Boundary line/Disputed admin1/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,minzoom:4,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],layout:{"line-join":`round`},paint:{"line-color":`#303030`,"line-opacity":.5,"line-width":{base:1,stops:[[4,2],[6,3.5],[14,7],[17,7]]}},showProperties:!1},{id:`Boundary line/Disputed admin0/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3],[`!in`,`DisputeID`,8,16,90,96,0]],minzoom:4,layout:{"line-join":`round`},paint:{"line-color":`#303030`,"line-opacity":.5,"line-width":{base:1.2,stops:[[6,5],[8,7.5],[14,10],[17,10]]}},showProperties:!1},{id:`Boundary line/Disputed admin0/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3],[`!in`,`DisputeID`,8,16,90,96,0]],minzoom:4,layout:{"line-join":`round`,visibility:`none`},paint:{"line-width":{base:1.2,stops:[[4,1.2],[17,9]]},"line-color":`#595959`,"line-opacity":.7,"line-dasharray":[10,4]},showProperties:!1},{id:`Boundary line/Disputed admin0/0 small`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3],[`!in`,`DisputeID`,8,16,90,96,0]],minzoom:1,maxzoom:4,layout:{"line-join":`round`,visibility:`none`},paint:{"line-width":.75,"line-color":`#595959`,"line-dasharray":[4,3]},showProperties:!1},{id:`Boundary line/Admin1/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:3,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#303030`,"line-width":{base:1,stops:[[3,.75],[6,3.5],[14,7],[17,7]]}},showProperties:!1},{id:`Boundary line/Admin0/1`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:4,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#303030`,"line-width":{base:1.2,stops:[[6,4],[8,6.5],[14,8],[17,8]]}},showProperties:!1},{id:`Boundary line/Admin2/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:6,layout:{visibility:`none`,"line-join":`round`},paint:{"line-color":`#595959`,"line-width":1.2,"line-dasharray":[2,3]},showProperties:!1},{id:`Boundary line/Admin0/0`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:4,layout:{"line-cap":`round`,"line-join":`round`,visibility:`none`},paint:{"line-color":`#595959`,"line-width":{base:1.2,stops:[[4,1.5],[14,2.5],[17,2.5]]},"line-dasharray":[8,3]},showProperties:!1},{id:`Boundary line/Admin0/0/Small`,type:`line`,source:`esri`,"source-layer":`Boundary line`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#595959`},maxzoom:4,minzoom:1,showProperties:!1},{id:`Trail or path`,type:`line`,source:`esri`,"source-layer":`Trail or path`,minzoom:15,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":1.6,"line-color":`#fd9a94`}},{id:`Road/Pedestrian`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,9],[`!in`,`Viz`,3]],minzoom:15,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":1.22,"line-color":`#dd7d78`}},{id:`Railroad`,type:`line`,source:`esri`,"source-layer":`Railroad`,layout:{"line-join":`round`},paint:{"line-color":`#f3908a`,"line-width":1.2},minzoom:15},{id:`Ferry/Rail ferry`,type:`line`,source:`esri`,"source-layer":`Ferry`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:15,layout:{"line-join":`round`},paint:{"line-color":`#a3bfed`,"line-width":1.2}},{id:`Road/4WD/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,2.22],[17,3.32]]},"line-dasharray":[6,3],"line-color":`#a84f4c`}},{id:`Road/Service/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:14,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[14,2.22],[17,3.32]]}}},{id:`Road/Local/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.4,stops:[[13,2.22],[14,3.58],[17,6.64]]}}},{id:`Road/Minor, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[13,2.22],[15,3.58],[17,5.87]]}}},{id:`Road/Minor/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[12,2.22],[14,3.58],[17,6.64]]}}},{id:`Road/Major, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[13,2.22],[15,3.58],[17,5.87]]}}},{id:`Road/Major/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[10,2.22],[14,5.61],[17,10.97]]}}},{id:`Road/Freeway Motorway, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[10,2.22],[14,3.58],[17,6.64]]}}},{id:`Road/Freeway Motorway/1`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[8,2.68],[14,5.61],[17,10.97]]}}},{id:`Road/4WD/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,.77],[17,1.53]]},"line-color":`#dd7d78`}},{id:`Road/Service/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,.77],[17,1.79]]},"line-color":`#dd7d78`}},{id:`Road/Local/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[13,1.15],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Minor, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[13,.77],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Minor/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[12,.77],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Major, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[13,.77],[14,2.05],[17,3.58]]},"line-color":`#dd7d78`}},{id:`Road/Major/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[10,.77],[14,4.08],[17,7.91]]},"line-color":`#dd7d78`}},{id:`Road/Freeway Motorway, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[10,.77],[14,2.05],[17,3.58]]}}},{id:`Road/Highway/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:7,layout:{"line-join":`round`},paint:{"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[8,.77],[14,4.08],[17,7.91]]}}},{id:`Road/Freeway Motorway/0`,type:`line`,source:`esri`,"source-layer":`Road`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-join":`round`},paint:{"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[8,.77],[14,4.08],[17,7.91]]}}},{id:`Road tunnel/4WD/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-width":{base:1.2,stops:[[14,2.9],[17,4.33]]},"line-dasharray":[6,3],"line-opacity":.5,"line-color":`#a84f4c`}},{id:`Road tunnel/Service/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[14,2.9],[17,4.33]]}}},{id:`Road tunnel/Local/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.4,stops:[[13,2.9],[14,4.67],[17,8.67]]}}},{id:`Road tunnel/Minor, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[13,2.9],[15,4.67],[17,7.67]]}}},{id:`Road tunnel/Minor/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[12,2.9],[14,4.67],[17,8.67]]}}},{id:`Road tunnel/Major, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[13,2.9],[15,4.67],[17,7.67]]}}},{id:`Road tunnel/Major/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":`#a84f4c`,"line-opacity":.5,"line-width":{base:1.2,stops:[[10,2.9],[14,7.33],[17,14.33]]}}},{id:`Road tunnel/Freeway Motorway, ramp or traffic circle/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.5,"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[10,2.9],[14,4.67],[17,8.67]]}}},{id:`Road tunnel/Freeway Motorway/1`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:5,layout:{"line-join":`round`},paint:{"line-opacity":.5,"line-color":`#a84f4c`,"line-width":{base:1.2,stops:[[8,3.5],[14,7.33],[17,14.33]]}}},{id:`Road tunnel/4WD/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,10],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[14,1],[17,2]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Service/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,8],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[14,1],[17,2.33]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Local/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,7],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[13,1.5],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Minor, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,6],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[13,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Minor/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,5],[`!in`,`Viz`,3]],minzoom:12,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[12,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Major, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,4],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[13,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Major/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,3],[`!in`,`Viz`,3]],minzoom:10,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[10,1],[14,5.33],[17,10.33]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Freeway Motorway, ramp or traffic circle/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,2],[`!in`,`Viz`,3]],minzoom:13,layout:{"line-join":`round`,"line-cap":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[10,1],[14,2.67],[17,4.67]]},"line-color":`#dd7d78`}},{id:`Road tunnel/Highway/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,1],[`!in`,`Viz`,3]],minzoom:7,layout:{"line-join":`round`},paint:{"line-opacity":.7,"line-color":`#dd7d78`,"line-width":{base:1.2,stops:[[8,1],[14,5.33],[17,10.33]]}}},{id:`Road tunnel/Freeway Motorway/0`,type:`line`,source:`esri`,"source-layer":`Road tunnel`,filter:[`all`,[`==`,`_symbol`,0],[`!in`,`Viz`,3]],minzoom:8,layout:{"line-join":`round`},paint:{"line-opacity":.7,"line-width":{base:1.2,stops:[[8,1],[14,5.33],[17,10.33]]},"line-color":`#dd7d78`}},{id:`Road/label/Rectangle white black (Alt)`,type:`symbol`,source:`esri`,"source-layer":`Road/label`,filter:[`all`,[`in`,`_label_class`,8,10,12,14,16,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74],[`!in`,`Viz`,3]],minzoom:14,layout:{"symbol-placement":`line`,"symbol-spacing":800,"text-max-angle":25,"symbol-avoid-edges":!0,"text-font":[`Arial Regular`],"text-size":8.5,"text-max-width":8,"text-field":`{_name}`,"icon-image":`Road/Rectangle white black (Alt)/{_len}`,"icon-rotation-alignment":`viewport`,"text-rotation-alignment":`viewport`,"text-offset":[0,.2],"text-padding":20},paint:{"text-color":`#fedad4`,"text-halo-color":`#8d4543`}},{id:`Road/label/Rectangle white black`,type:`symbol`,source:`esri`,"source-layer":`Road/label`,filter:[`all`,[`in`,`_label_class`,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73],[`!in`,`Viz`,3]],minzoom:14,layout:{"symbol-placement":`line`,"symbol-spacing":800,"text-max-angle":25,"symbol-avoid-edges":!0,"text-font":[`Arial Regular`],"text-size":8.5,"text-max-width":8,"text-field":`{_name}`,"icon-image":`Road/Rectangle white black/{_len}`,"icon-rotation-alignment":`viewport`,"text-rotation-alignment":`viewport`,"text-offset":[0,.2],"text-padding":20},paint:{"text-color":`#fedad4`,"text-halo-color":`#8d4543`}}],metadata:JSON.parse(`{"arcgisStyleUrl":"https://www.arcgis.com/sharing/rest/content/items/29f3edfacb6147509f0db16829e7b382/resources/styles/root.json","arcgisOriginalItemTitle":"GG Light","arcgisQuickEditor":{"land":"#ebeae6","labelTextColor":"#ffffff","labelHaloColor":"#000000","baseColor":"#7c838d","spriteProcessing":true,"labelContrast":4.5,"labelColorMode":"LABELS_MAP_COLORS","colorMode":"CUSTOM","colors":{"water":"#7096d4","land":"#ebeae6","building":"#474b52","road":"#b5b5b5","boundaries":"#595959"},"road":"#b5b5b5","water":"#7096d4","boundaries":"#595959"},"arcgisQuickEditorWarning":true,"arcgisEditorExtents":[{"spatialReference":{"wkid":102100},"xmin":-12652118.493631177,"ymin":3410479.680458824,"xmax":-8349631.04551632,"ymax":5543378.517727816},{"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":-371197.9381234135,"ymin":6496985.075827017,"xmax":343029.6541730836,"ymax":6905464.554982891},{"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":-8597472.05169507,"ymin":4692615.939336582,"xmax":-8552832.82717651,"ymax":4718145.906783841},{"spatialReference":{"latestWkid":3857,"wkid":102100},"xmin":16831588.19989804,"ymin":-4011777.2067113556,"xmax":16832983.175664283,"ymax":-4010979.3952286085}],"arcgisMinimapVisibility":true,"arcgisSpriteData":{"spriteImage":{"__zone_symbol__loadfalse":[{"type":"eventTask","state":"scheduled","source":"HTMLImageElement.addEventListener:load","zone":"angular","runCount":2}]},"spriteJson":{"Water area/Inundated area":{"x":0,"y":0,"width":64,"height":64,"pixelRatio":1,"sdf":false},"Water area/Lake or river intermittent":{"x":64,"y":0,"width":64,"height":64,"pixelRatio":1,"sdf":false},"Water area/Swamp or marsh":{"x":128,"y":0,"width":64,"height":64,"pixelRatio":1,"sdf":false},"Special area of interest/Sand":{"x":0,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Special area of interest/Groundcover":{"x":32,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Special area of interest/Rock or gravel":{"x":32,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Water area/Playa":{"x":32,"y":64,"width":32,"height":32,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/1":{"x":64,"y":64,"width":16,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/1":{"x":80,"y":64,"width":16,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/7":{"x":96,"y":64,"width":38,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/7":{"x":134,"y":64,"width":38,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/6":{"x":0,"y":96,"width":34,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/6":{"x":34,"y":96,"width":34,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/5":{"x":68,"y":96,"width":30,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/5":{"x":98,"y":96,"width":30,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/4":{"x":128,"y":96,"width":26,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/4":{"x":154,"y":96,"width":26,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/3":{"x":0,"y":112,"width":24,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/3":{"x":24,"y":112,"width":24,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black (Alt)/2":{"x":48,"y":112,"width":20,"height":16,"pixelRatio":1,"sdf":false},"Road/Rectangle white black/2":{"x":68,"y":112,"width":20,"height":16,"pixelRatio":1,"sdf":false},"Water line/Levee/0":{"x":88,"y":112,"width":10,"height":12,"pixelRatio":1,"sdf":false}},"spriteImage2x":{"__zone_symbol__loadfalse":[{"type":"eventTask","state":"scheduled","source":"HTMLImageElement.addEventListener:load","zone":"angular","runCount":2}]},"spriteJson2x":{"Water area/Inundated area":{"x":0,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false},"Water area/Lake or river intermittent":{"x":128,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false},"Water area/Swamp or marsh":{"x":256,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false},"Special area of interest/Sand":{"x":0,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Special area of interest/Groundcover":{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Special area of interest/Rock or gravel":{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Water area/Playa":{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/1":{"x":128,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/1":{"x":156,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/7":{"x":184,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/7":{"x":258,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/6":{"x":0,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/6":{"x":66,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/5":{"x":132,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/5":{"x":190,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/4":{"x":248,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/4":{"x":298,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/3":{"x":0,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/3":{"x":44,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black (Alt)/2":{"x":88,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false},"Road/Rectangle white black/2":{"x":124,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false},"Water line/Levee/0":{"x":160,"y":222,"width":16,"height":22,"pixelRatio":2,"sdf":false}},"spriteList":[{"x":128,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/1","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZV1xcbMzAwHCGlnb//PlTesqUKc/AFpaUlPj+//9/Ey0tZGRk9Ovp6dk8aiHVQnk0SKkWlDCDRoN0NEhJDoHRRENykBHSMBqkhEKIZPnRICU5yAhpGA1SQiFEsvwIC9KcnBwpdnb2pySHEwkaUJr6JOijWCkAHfHgH/Hy6xkAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZV1xcbMzAwHCGlnb//PlTesqUKc/AFpaUlPj+//9/Ey0tZGRk9Ovp6dk8aiHVQnk0SKkWlDCDRoN0NEhJDoHRRENykBHSMBqkhEKIZPnRICU5yAhpGA1SQiFEsvwIC9KcnBwpdnb2pySHEwkaUJr6JOijWCkAHfHgH/Hy6xkAAAAASUVORK5CYII=)","background-size":"14px 15px"}},{"x":88,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/2","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAH1JREFUWEftl6EVgDAMRK+qO8AYMFZd54jLWDAG7BDXRwfgZCMuIubMvZ9vUpBsytentbbVWp+V3cxsdpmr934AuFYWAnCa2a1CP1cQIaaoCIkQI8ByOSRCjADL5ZAIMQIsl0MixAiwXA6JECPA8sQOZXilI2J393d+rplmAOgzjh/ko8LTAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAH1JREFUWEftl6EVgDAMRK+qO8AYMFZd54jLWDAG7BDXRwfgZCMuIubMvZ9vUpBsytentbbVWp+V3cxsdpmr934AuFYWAnCa2a1CP1cQIaaoCIkQI8ByOSRCjADL5ZAIMQIsl0MixAiwXA6JECPA8sQOZXilI2J393d+rplmAOgzjh/ko8LTAAAAAElFTkSuQmCC)","background-size":"18px 15px"}},{"x":0,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/3","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3pycHCl2dvang9ntvb29YLcOGQf//PlTesqUKc9GHUyrZDUawrQKWZi5oyE8GsJoITCaJEaTxGiSoHUaGA3h0RDGHwKj5TCtU8hoCI+G8Gg5TOs0MBrCoyFMQk0HUlpcXPyfzoFGknUoQ1Uk6RxgxQBVwtgfOnR74AAAAABJRU5ErkJggg==","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3pycHCl2dvang9ntvb29YLcOGQf//PlTesqUKc9GHUyrZDUawrQKWZi5oyE8GsJoITCaJEaTxGiSoHUaGA3h0RDGHwKj5TCtU8hoCI+G8Gg5TOs0MBrCoyFMQk0HUlpcXPyfzoFGknUoQ1Uk6RxgxQBVwtgfOnR74AAAAABJRU5ErkJggg==)","background-size":"22px 15px"}},{"x":248,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/4","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHJJREFUWEftksENgDAMxMjMmSMzg/rpACcZFWT+ZxG7df3kq3VHd99fvmdmykNOKmiRk2qsf7GIRSADPi1IbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpoaBFIbIy1SKwOGu4iEP9V7AM6aHAfcyCAfgAAAABJRU5ErkJggg==","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHJJREFUWEftksENgDAMxMjMmSMzg/rpACcZFWT+ZxG7df3kq3VHd99fvmdmykNOKmiRk2qsf7GIRSADPi1IbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpoaBFIbIy1SKwOGu4iEP9V7AM6aHAfcyCAfgAAAABJRU5ErkJggg==)","background-size":"25px 15px"}},{"x":132,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/5","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGJJREFUWEftlMERACAIw2Rm5mBmPT++dIBgmIA2ucb45GLnzMzZOW9VhUE7EZZoJ5o7i0QlCm1AdaHgnm9LVKLQBlQXCs4xUl3VhTagulBwrq7qqi60AdWFgnN1j7rdCN7yLLilcB/F3y8LAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGJJREFUWEftlMERACAIw2Rm5mBmPT++dIBgmIA2ucb45GLnzMzZOW9VhUE7EZZoJ5o7i0QlCm1AdaHgnm9LVKLQBlQXCs4xUl3VhTagulBwrq7qqi60AdWFgnN1j7rdCN7yLLilcB/F3y8LAAAAAElFTkSuQmCC)","background-size":"29px 15px"}},{"x":0,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/6","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHBJREFUaEPt2LENgDAMBEB7Zs/hmUFENCCEXMOlSJXq5T8lybBWAnlsVbX9OY/uTkFEhCDOGghCEFcRTYSJMBGPtwTVUA3VUI23JwQjGMEIRjBi8NECS1jCEpawhOUgAVjCEpawHFDhZnnHchDa54/sNvFwH8IvT74AAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHBJREFUaEPt2LENgDAMBEB7Zs/hmUFENCCEXMOlSJXq5T8lybBWAnlsVbX9OY/uTkFEhCDOGghCEFcRTYSJMBGPtwTVUA3VUI23JwQjGMEIRjBi8NECS1jCEpawhOUgAVjCEpawHFDhZnnHchDa54/sNvFwH8IvT74AAAAASUVORK5CYII=)","background-size":"33px 15px"}},{"x":184,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black (Alt)/7","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAH1JREFUaEPt0rERwDAMxLB4Zs+hmZPzBkhtqmYF/Xo6Elin2nu/VF8azcwKCp4fFCCdJKigUACzFhUUCmDWooJCAcxaVFAogFmLCgoFMGtRQaEAZi0qKBTArEUFhQKYtaigUACzFhUUCmDWooJCAcxaVFAogFmL+guF/dXZB7UucB8GV1vKAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAH1JREFUaEPt0rERwDAMxLB4Zs+hmZPzBkhtqmYF/Xo6Elin2nu/VF8azcwKCp4fFCCdJKigUACzFhUUCmDWooJCAcxaVFAogFmLCgoFMGtRQaEAZi0qKBTArEUFhQKYtaigUACzFhUUCmDWooJCAcxaVFAogFmL+guF/dXZB7UucB8GV1vKAAAAAElFTkSuQmCC)","background-size":"37px 15px"}},{"x":156,"y":128,"width":28,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/1","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZV1xcbMzAwHCGlnb//PlTesqUKc/AFpaUlPj+//9/Ey0tZGRk9Ovp6dk8aiHVQnk0SKkWlDCDRoN0NEhJDoHRRENykBHSMBqkhEKIZPnRICU5yAhpGA1SQiFEsvwIC9KcnBwpdnb2pySHEwkaUJr6JOijWCkAHfHgH/Hy6xkAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAAAAXNSR0IArs4c6QAAAIJJREFUSEtjZKAzYATZV1xcbMzAwHCGlnb//PlTesqUKc/AFpaUlPj+//9/Ey0tZGRk9Ovp6dk8aiHVQnk0SKkWlDCDRoN0NEhJDoHRRENykBHSMBqkhEKIZPnRICU5yAhpGA1SQiFEsvwIC9KcnBwpdnb2pySHEwkaUJr6JOijWCkAHfHgH/Hy6xkAAAAASUVORK5CYII=)","background-size":"14px 15px"}},{"x":124,"y":222,"width":36,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/2","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAH1JREFUWEftl6EVgDAMRK+qO8AYMFZd54jLWDAG7BDXRwfgZCMuIubMvZ9vUpBsytentbbVWp+V3cxsdpmr934AuFYWAnCa2a1CP1cQIaaoCIkQI8ByOSRCjADL5ZAIMQIsl0MixAiwXA6JECPA8sQOZXilI2J393d+rplmAOgzjh/ko8LTAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAAXNSR0IArs4c6QAAAH1JREFUWEftl6EVgDAMRK+qO8AYMFZd54jLWDAG7BDXRwfgZCMuIubMvZ9vUpBsytentbbVWp+V3cxsdpmr934AuFYWAnCa2a1CP1cQIaaoCIkQI8ByOSRCjADL5ZAIMQIsl0MixAiwXA6JECPA8sQOZXilI2J393d+rplmAOgzjh/ko8LTAAAAAElFTkSuQmCC)","background-size":"18px 15px"}},{"x":44,"y":222,"width":44,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/3","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3pycHCl2dvang9ntvb29YLcOGQf//PlTesqUKc9GHUyrZDUawrQKWZi5oyE8GsJoITCaJEaTxGiSoHUaGA3h0RDGHwKj5TCtU8hoCI+G8Gg5TOs0MBrCoyFMQk0HUlpcXPyfzoFGknUoQ1Uk6RxgxQBVwtgfOnR74AAAAABJRU5ErkJggg==","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAAAXNSR0IArs4c6QAAAH5JREFUWEdjZBhigBHk3pycHCl2dvang9ntvb29YLcOGQf//PlTesqUKc9GHUyrZDUawrQKWZi5oyE8GsJoITCaJEaTxGiSoHUaGA3h0RDGHwKj5TCtU8hoCI+G8Gg5TOs0MBrCoyFMQk0HUlpcXPyfzoFGknUoQ1Uk6RxgxQBVwtgfOnR74AAAAABJRU5ErkJggg==)","background-size":"22px 15px"}},{"x":298,"y":192,"width":50,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/4","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHJJREFUWEftksENgDAMxMjMmSMzg/rpACcZFWT+ZxG7df3kq3VHd99fvmdmykNOKmiRk2qsf7GIRSADPi1IbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpoaBFIbIy1SKwOGu4iEP9V7AM6aHAfcyCAfgAAAABJRU5ErkJggg==","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAAXNSR0IArs4c6QAAAHJJREFUWEftksENgDAMxMjMmSMzg/rpACcZFWT+ZxG7df3kq3VHd99fvmdmykNOKmiRk2qsf7GIRSADPi1IbIy1SKwOGloEEhtjLRKrg4YWgcTGWIvE6qChRSCxMdYisTpoaBFIbIy1SKwOGu4iEP9V7AM6aHAfcyCAfgAAAABJRU5ErkJggg==)","background-size":"25px 15px"}},{"x":190,"y":192,"width":58,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/5","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGJJREFUWEftlMERACAIw2Rm5mBmPT++dIBgmIA2ucb45GLnzMzZOW9VhUE7EZZoJ5o7i0QlCm1AdaHgnm9LVKLQBlQXCs4xUl3VhTagulBwrq7qqi60AdWFgnN1j7rdCN7yLLilcB/F3y8LAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAeCAYAAAB9hg0IAAAAAXNSR0IArs4c6QAAAGJJREFUWEftlMERACAIw2Rm5mBmPT++dIBgmIA2ucb45GLnzMzZOW9VhUE7EZZoJ5o7i0QlCm1AdaHgnm9LVKLQBlQXCs4xUl3VhTagulBwrq7qqi60AdWFgnN1j7rdCN7yLLilcB/F3y8LAAAAAElFTkSuQmCC)","background-size":"29px 15px"}},{"x":66,"y":192,"width":66,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/6","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHBJREFUaEPt2LENgDAMBEB7Zs/hmUFENCCEXMOlSJXq5T8lybBWAnlsVbX9OY/uTkFEhCDOGghCEFcRTYSJMBGPtwTVUA3VUI23JwQjGMEIRjBi8NECS1jCEpawhOUgAVjCEpawHFDhZnnHchDa54/sNvFwH8IvT74AAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAeCAYAAACYGMhkAAAAAXNSR0IArs4c6QAAAHBJREFUaEPt2LENgDAMBEB7Zs/hmUFENCCEXMOlSJXq5T8lybBWAnlsVbX9OY/uTkFEhCDOGghCEFcRTYSJMBGPtwTVUA3VUI23JwQjGMEIRjBi8NECS1jCEpawhOUgAVjCEpawHFDhZnnHchDa54/sNvFwH8IvT74AAAAASUVORK5CYII=)","background-size":"33px 15px"}},{"x":258,"y":128,"width":74,"height":30,"pixelRatio":2,"sdf":false,"id":"Road/Rectangle white black/7","centerColor":{"0":115,"1":115,"2":115,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAIJJREFUaEPt1bERgCAABEGpmTqoWYfEeIk544uWR8bTRwJjV3POl+pLo7XWCAoOPyhA2klQQaEAZi0qKBQ4yHr1AKurB0i9eogUVFAHApj2jwoKBTBrUUGhAGYtKigUwKxFBYUCmLWooFAAsxYVFApg1qKCQgHMWlRQKIDZvyjsr84+Z9Jud34cvyIAAAAASUVORK5CYII=","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAeCAYAAACLz4iQAAAAAXNSR0IArs4c6QAAAIJJREFUaEPt1bERgCAABEGpmTqoWYfEeIk544uWR8bTRwJjV3POl+pLo7XWCAoOPyhA2klQQaEAZi0qKBQ4yHr1AKurB0i9eogUVFAHApj2jwoKBTBrUUGhAGYtKigUwKxFBYUCmLWooFAAsxYVFApg1qKCQgHMWlRQKIDZvyjsr84+Z9Jud34cvyIAAAAASUVORK5CYII=)","background-size":"37px 15px"}},{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Special area of interest/Groundcover","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"32px 32px"}},{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Special area of interest/Rock or gravel","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAACnFJREFUeF7tW2lsG1sV9p2x09jpFugLfVTwCoRFAQrC6JU0iTNz7xghxCoQq0CIVUJsYl+E2Pf1ISRAYt9B7Lvw3PHESRsKBEGBsBXoewXKUrUlLcR27Bk4n+eEybzYYxp+Me/+yPHMvXPsfOfMved891yRi5plWaP00TTNN5Nst9tvILm4uPi3aIggadv2E0iGYfg1kr7vX2Id28np6elb0f3S7t1vxHPd7ptIep53Y1yvlPKRdB0Ewdcjvc1Bei3Lui9+b6HwVJKXLlx4NsmVlZUNktPT00WSu0qlh0Kf1p8nOTU1lSe5urraIYl/ilrmARiENvVNTk7uInnd4cPfI9kKw0eTXNL61/Fnedzp06dbaTqpv1wul0iOj4//gWS3250mWa/XfzWMXsuyYFHf92FRblLKQ7CwYUBPq9mcwu9dWrop8oSRLR6Q9mP/bwFQSr2b/nmt9fPSQBimXyn1SxoXBMErIkt+cZjn+o2xLGs/9Zn5/J/hIZ3O3SKLn9mJXqXUl+ABmQfAtu17RZb6SRxRVa2+HJbsdI5H/QvDIG7b9jyNC8Pw55Glzsefs2376bCoaeK+67qwRFqzbftRkV6M53eeZ/uxsbF30v1ms4lVht/1fnrnlDoCD8g8AP0Qsm37mUA8n18D4rXaJ+NjZ2dn70jXIyMjB0h6nvf9NCtSv63Ua0gaudyfSGqtPxB/bmZm5rZ0XSgULkSWHhgPbMYZpdINkQe8hOTx48ehn5uU8uH0+fz5898leerUqX/AA24BAMZAIIR10ff9gYgzYDxH5MLwYbCk616fANOk6+npaehdXl5eH8ZDlFI/o3FBLofVo671q+LPTU1NQV+xWAxJcuTXT/eRI0fGqO+aiQlEnhvttk2y0Wj8lD0g2wBIKRHbC8N4S2RJvINDNFi4XC4DwKQlHMd5G90Phbg79NZqDxxCJ+Uad6VxZ8+exTqfjCiV4/wAeoT4cqQXOUZa44hzZWXln/GxIvMAHDt2bIIQGR0dnSTped6JOEJzUt6HrncZxkNIuq776jS0qb9Sqdy5ZyiBSG5hYaFnuahJKR8cfdwdfe9nhtFrWdb9aFy73f4dyRMnTvw1/pxS6sV0HYYhVi/P894/SK/IPABpqDPipmn2ZnutX5p4pjeJKoV33Nf621F/d5BuKeWzIg9BNqi1fmt8PL+ze/fuvQPdr9friCzTmlLq+dEYrPPJOOOoUreBh+RyW/mAfoozBwDH1sOu25Zl3ZvAM/P5H5LsdjqH4Qm+j/z+ahvnDIZpPgOWdN3y1eqKP6eU+giuDQMeerNIMLMAxCy5SMg019exHidj6n5W4Mk0OStLKREhCiE+TPLSpUszJFdWVv6eYlHEGZOTk2B8kvGAlFJCr2G8PvKQY8N4yPVK3ZrGFZrN9hYPyDwAHGMfPHgQLKrneV+IEEXMzU0p9Ur63M7lvkpyUetTg5BnsjWfzyPidF0XnkDTBf2xLAvZpCgUXkZy7cKF1w7jIVLKO9G4MAzhUfV6/ePx3zGr1F3oelcuB/5Ba40skb+Xx27OAZkFgPl13/cxi6c15TiIwTth+B6SC1rXt0N+SevfRPe3eFBSP88dxWLxgzBPt/tkkr7vb2GS5ubmrqX7i4uL59J+I/XPKzVH0hQCOclNZ86AqeK5ZDNSzTwAqlr9KCFzZW3tOSRPnjyJGHqbJXKgJWO0+RVYstOpRpb0h7FYvzHMEI0Wi+Dz20GAVWXR8360E738f4vMA9APRSnlC9FnGHiXPNfF6pDWbNtG/l+v11ejsew5WNeV49QiD0Hs7/v+d9J0Uj9zkEtLS8gCucX2DTAXdcIQuUBybtrmO7AA9OUEMw+AZVn36DmAAb7A8zwvjiLzBPkwPBhZ/FvDWJKzwE6no2l8o9H4xRaLVqtPouuw3Ub2l+QRkt/By/e1hw49DZ61sfG5yLN4FUG2qqrVT0X974j6ser19YDMAFAulwuExNjYGLK4RqPB6/dAgzqO86JowD1Juq77xPgDnM+PjY0h/240Gr8fxkNiO1I/3s6zLMsCc7W+vg4mKLZq9VMPIzuOg52jjSDAvsCC54G3EJkHIJZVoeJDuy44up02pdTjoSOKxLTrDss2D/xqZoVFLoecwnXd9+3ktxIrzGllNgHobdMhK4OFkkzOvFKo2MgLgSxNuy4ivLTGr9aePXswByT1xvYNLkNvrQb9QzTEE73NI7QtEaqU8nXRffANnue9fZBOmiAyDwAjui2LW6lUbkcIFgqFx8JSN2dv99H9/fv3PyXqx2yb1qSU94cZhejtSWr9jfgzTMYahrE3siRm77RmWdYDaIwQAtVi9Xod8QY39mgjCMYxjjLGqDObAPD++vLyMvbj+ZWIvWMDQZ9XCnNCnrm5Wg07N7F3E+vwzMwM8vlhOUbbtsELGKYJT9Gu+5iEh4ArNAwDc4zneX9M8w7q5/ilK0SPico8AIxaLKvCrmy300Hlpu/77jDI9htjWdYs9Zn5PN5h7bp7Br1yw34XzyHCML5Jz7RbLaxiscrWoVTFK0W5HC2bAPC7b9s23rVmswnuj3eIyuVyb7YfH0dW2AlD7O0taL2cAjWW2XmlwN4uaI19B26VSgW5RGFkBCx0u9WCx6RZkrPAAwcOgB1OZpXzSqESJC/EeyPPA0+RbPFsED80cwBwvVwavx+jzcEdrq+vIxaPrR4A13Ec7B53u114ULLmN2kB3heI7RuAbWb+nrfqisUiPDMIAtQRpNUyMYM0Ojr6CBrvui7YYW48N4nMA+A4Dio+kpUfbPF9+/YhUBp2t1g5DipMumHY4/y0/koc+f+2mrxSqaA+oFAowKNarRbe7aWlpYtxvVwdHgTBXyIP2VI9nvQ85Tgfonsi8wAkkeFrWymcGDGEAOenXRex/k6bUgpMz79JKLyTWmtwdVfb+LyAGVW0doXAXmCysrWf/v6VolkHYHZ29vaE2sjICJKkZKzNjE8YhtdE/Th3kNa4mnxtbQ2ewHUCzB/sGx//LN3vhiH0JeOGfvo5e8zlctDLqwSvIqVSCWxxq9VC/MLV5H09IDMAMMuaM03sAyRn7X6ISynBDwSmiVpcv1bD7i43rvgUQlwXeUhaPo/VRkqJio92uw2uL1n3L6VEJciGENiDTItfNiPcahXnCDaCALM/n3UStwCg1IMIEfM/nB8qQ3faVLXaOycYhrCY57pWXCdXjhiGgdNdnuf9dpjvVI7zMXieENj5qddqL0joBavt+z7XBDN3uK16YWUdgDTUN/NuIRCjnzt3DmdtVldXUWU1REOSlWSYYucNMCv/D/cNcPYpDAKwwZ7nfWLQb+y7CvBDmQfg6NGjYGVLpRLminq9/uk4ojzbG6aJs0DdTgdneX3fxyzdr3GuMTExgbPFvu/jXCC3zSqvyPOuXL6MU2Npe4Gc5XU6Hewub5MzoO7BMAzsG6R6QJYAABiqWsX6G3a72GFJY1vnlMKZ3BEhnkvyxjNnwBdwNRZbclSId9H9ixcvPo5kWqUoZ3eGYeBEq+u6XKWOyHTzew2jV0tcq3GV+MAqdatahYcS6ZX0gEwC8C9qksFEHMJ2VQAAAABJRU5ErkJggg==)","background-size":"32px 32px"}},{"x":0,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Special area of interest/Sand","centerColor":{"0":50,"1":51,"2":51,"3":255},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABRhJREFUeF7tm+lSG0EMhBnMaXMZDA8SrmAqxLz/m3CYw+a+UlHxbbEyKmmI/8QDf7bs2dWanh51Szubfmxvv019+FteXpZPNzc3cnx9ff04PLWwsCCfHx4e5Pj2Vru8du7fDykl+W5paUmOt7e3cnx5eamdOz8/X4s7Ekh9MTMzI98sLi7KcTAY1M7gvsS9v7//NGT6BkAxwEN+fX1dTrm6uvp0Jr3r9Tgz1el0ZKjf748l7vT0tMQh7tnZmXzWjB5hgPcPTBwAv3s9WcR6DXlAWOMbGxsyNBwOs9a0FQ+GbG5uyinn5+djYcjq6qrEScUDsLe/Lwx4fn6uTUKr1ZLPj4+Pcnx6egqRYnZ2tjZDes2RtfkeNfGCWyqhVcZSLx0fFUnFA6BlEKSYKXRe62ij0ZBTybZRhsAsGHB3d1ebHOJp5ng5Av9C7tHXwyAYzf9lqkDxAHhrkpkEWfRbX8ca9Rwj16EiMI417f0ejyH4gYuLCzmVnJftA7jRxADQPTwUFWANnZ6efhXs2nV4f7Lt5eVlKC65RdcKXIwRQz2iDLGYmIoHYGd3VxgA8jqbM4Os9SjixAN57TOIx7hVrWnaeD6j2WzKJeQcrTIjOap4ACwfAFIgzoyhsxrJ3HoemYUB9AmIy/cwSTPISigeA/AZrg8oFoBc3SZHoN+oSNTJWTMJQzhaPiMkLR9OWllZqV0y4gOKBYCZRGetDoqFuOXhySEgz0xGnaF1v7m5ORnCb0QZwgRXuYYkWDwAIOJlcywwTiyanVnLVvVH9sZneAxBHWCYVa1yX0u9RnJAcQBYDRFr7a2trckQuk19zfmel9dxyR3kiOvrazlFq0hunwBmUOPoHFE51eIB6B0f17rC3trzdHdra0tOoe6Odoo8ddFd4WjuseLCuFQ8AFYtQFZGb6P1PHJqzVC73ZZJIdvrHGLNmJVb0HXiku2jcc2OUPEAMJNkX42oN+55fOLpzg9Pn2FQdK2j9/gTrSI8CYJ5bk/Q+we98f8OgFz9ZokABPqt63kYZPX4NFA4TdTD8hnMcFS18AMwhLhVDigWgJ8HB+IDcHgnJyee1IfGWcvj7jZTrVJTeD0/78em4gHAB3j1PHU3Ds9DlnErLvFYw9Fus3df4pIjdK9RX1/lgOIB8Lw4a9rq3qLDHuLcB4eJk9P7BKjmGI86O+JyH32djus+G4QZEwvA9s6OqEBUTzVTor253HoeRhGfXWlWPyHahca/8HtS8QCgAnq/HohH156VQ1hzVGvj8hkwA/+S28WuHOs3AGqnqLUXWNfd7CuMdnxggvX0mWoNnxFd05aFhyE4UfYXmj6AgeIAyG2KkkXx4Fo9qObo03tVYFRmvV3femZhBtdpf1L5geIB+HV0JD7A8uK5D0up1ogX3Qnq9QLJ9tazxVyfUXWFiwfA6gpTVYGs7vh4VZk1zj4CGBLdG+Tdj+cR/M5oXLMWKB4AZh7krXeHOC9aBZJ96cpqFcEPEO9ffQY5jLj62aPJgGIA2N3bExWguxvN2hgmENa9OXSYY7Sm0G+XaebBIJgTfW5AXH4n/iQVD8BBtysMwMFF99p4WRnEmTGrl5jbjke/YYbe+ZHrW1LxAHg7RaNVlccI6wkQtcW4dqnn+gy3J1g8AN47uKxh1jw6G+0xWh6euNTzdKi8uJ7P0HuJXQYUB4D39vhI3f3+FnfrfZ++rhm+OpMwgxnT2b7xft+m8fa4lZP0y2DZb49PGgB/AFWursjFdg4fAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABRhJREFUeF7tm+lSG0EMhBnMaXMZDA8SrmAqxLz/m3CYw+a+UlHxbbEyKmmI/8QDf7bs2dWanh51Szubfmxvv019+FteXpZPNzc3cnx9ff04PLWwsCCfHx4e5Pj2Vru8du7fDykl+W5paUmOt7e3cnx5eamdOz8/X4s7Ekh9MTMzI98sLi7KcTAY1M7gvsS9v7//NGT6BkAxwEN+fX1dTrm6uvp0Jr3r9Tgz1el0ZKjf748l7vT0tMQh7tnZmXzWjB5hgPcPTBwAv3s9WcR6DXlAWOMbGxsyNBwOs9a0FQ+GbG5uyinn5+djYcjq6qrEScUDsLe/Lwx4fn6uTUKr1ZLPj4+Pcnx6egqRYnZ2tjZDes2RtfkeNfGCWyqhVcZSLx0fFUnFA6BlEKSYKXRe62ij0ZBTybZRhsAsGHB3d1ebHOJp5ng5Av9C7tHXwyAYzf9lqkDxAHhrkpkEWfRbX8ca9Rwj16EiMI417f0ejyH4gYuLCzmVnJftA7jRxADQPTwUFWANnZ6efhXs2nV4f7Lt5eVlKC65RdcKXIwRQz2iDLGYmIoHYGd3VxgA8jqbM4Os9SjixAN57TOIx7hVrWnaeD6j2WzKJeQcrTIjOap4ACwfAFIgzoyhsxrJ3HoemYUB9AmIy/cwSTPISigeA/AZrg8oFoBc3SZHoN+oSNTJWTMJQzhaPiMkLR9OWllZqV0y4gOKBYCZRGetDoqFuOXhySEgz0xGnaF1v7m5ORnCb0QZwgRXuYYkWDwAIOJlcywwTiyanVnLVvVH9sZneAxBHWCYVa1yX0u9RnJAcQBYDRFr7a2trckQuk19zfmel9dxyR3kiOvrazlFq0hunwBmUOPoHFE51eIB6B0f17rC3trzdHdra0tOoe6Odoo8ddFd4WjuseLCuFQ8AFYtQFZGb6P1PHJqzVC73ZZJIdvrHGLNmJVb0HXiku2jcc2OUPEAMJNkX42oN+55fOLpzg9Pn2FQdK2j9/gTrSI8CYJ5bk/Q+we98f8OgFz9ZokABPqt63kYZPX4NFA4TdTD8hnMcFS18AMwhLhVDigWgJ8HB+IDcHgnJyee1IfGWcvj7jZTrVJTeD0/78em4gHAB3j1PHU3Ds9DlnErLvFYw9Fus3df4pIjdK9RX1/lgOIB8Lw4a9rq3qLDHuLcB4eJk9P7BKjmGI86O+JyH32djus+G4QZEwvA9s6OqEBUTzVTor253HoeRhGfXWlWPyHahca/8HtS8QCgAnq/HohH156VQ1hzVGvj8hkwA/+S28WuHOs3AGqnqLUXWNfd7CuMdnxggvX0mWoNnxFd05aFhyE4UfYXmj6AgeIAyG2KkkXx4Fo9qObo03tVYFRmvV3femZhBtdpf1L5geIB+HV0JD7A8uK5D0up1ogX3Qnq9QLJ9tazxVyfUXWFiwfA6gpTVYGs7vh4VZk1zj4CGBLdG+Tdj+cR/M5oXLMWKB4AZh7krXeHOC9aBZJ96cpqFcEPEO9ffQY5jLj62aPJgGIA2N3bExWguxvN2hgmENa9OXSYY7Sm0G+XaebBIJgTfW5AXH4n/iQVD8BBtysMwMFF99p4WRnEmTGrl5jbjke/YYbe+ZHrW1LxAHg7RaNVlccI6wkQtcW4dqnn+gy3J1g8AN47uKxh1jw6G+0xWh6euNTzdKi8uJ7P0HuJXQYUB4D39vhI3f3+FnfrfZ++rhm+OpMwgxnT2b7xft+m8fa4lZP0y2DZb49PGgB/AFWursjFdg4fAAAAAElFTkSuQmCC)","background-size":"32px 32px"}},{"x":0,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false,"id":"Water area/Inundated area","centerColor":{"0":29,"1":34,"2":36,"3":211},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADAZJREFUeF7tXc1zI1cR7/FKissfgVBla1NIyno0nBIuFEdCAhQBwoVAqvioJBQUFyDAkfAXJBwJJLmFhAMfBSFcgBAqX4RjKgc+TrG0tuXUruwqArF3sSWtB17P69FoNOP5Hs3Ma1/eStqxxtO/X3e/7n7dWlvv/g0AYHz92ifEevXq1UOx0s/Gxsaa+Pfy+s1/sN7T7pSf7Yv1ZHTyMbEe7u9vO68DgLp43dKNn+NVAPfLz98R62R8do9Yrwz6b7iu08Trdtd4HN834WH5+QmuZ5PPiWWws/Mn13X4sqPrj1iXLT0qPz/DyzTz62J9u9d71vO6bvchvM7UnpafX7Du++wHYt3r9x/zuu7WS5c+Ld6vLdWel58v46rBT/A+e9vfle+bzutvbesfxuvqSy/K92+x7hueE+t+f/vL8v2x87pmp6OL141a4xX5fgdXE14Ty+j60WfFOhwOr81c1+xu4nWr2svy/dvxNhkA1uPoqAqAixcvbogHwMxfOPN/I5n/lfOYX681XrUUDLSTMB8A/om/hwFQGNW/GAA47YT4tzI2f2vrQTSd2oWfymcgbT6gD7HX3/6h+9mI1xnY/HMFv9FqGeJ7lxvLZPNbaTD/9PgG+nzocDl/GACKAkAZwfs6e2oJ/uDg8nBGAzAAFAWAQ/B/tEyB9hFpEhTZ56sh+NE18+NCrsNh78Bp8jUGgOIAaOvd11Ni/r/E75ncGH9SrFd2d990+ZcFi/CpLfhms7mK+p4BUO3tnp/qdwDAoBh1XJvPzBfxAf/Y/kL3+eTtkzYmwTdW1n8vNQADwGmqqhboCQOAgXgAMbJ6ajAf4AnxfAb97e9IoITN6hWa+aDBXaQBGADnhXirDgCKNUfI54djvm5gPhwAviVXzOdPzib34S5hZ+cFdxhavE4/n6+Gt0+x/SCVT8wX6Q7UAAyA1As6SqH6bQB4sDBZJU/ezC9eVo8qeSYzSbaMs3pRmT+ajLCSay4bmLiUiwFQWgDUBCJauvELiYxoNXy6gd7y/8PN38zF5jPzMZ8fl/nDvb2+WwMwAOIVcZLNLxXznQBIKvgfS8Z/m5k/tfq+lTwAfxH/a3Tt6F6xhq3epRq+uN4+2XwSPN2p8AEYAHkyv2gAaOnGr2Pa/IIwP/e6/Xgqv2CCJ2dfYwBEPrhRLQC0dTsZlOjETmYRPl9vn5kvNDdl9dwRPj+bT8xv691fUS6AkhsMgHBp3WjefkFVvxMAVmw/5lm9uMwH0L4hvnfQf4vq8meCkh1mfir7fMdDxQgvCR5Aw5yM1tYNBoCCzLcBQJUsUU/pxmV+4CndtJkflM697bYPCSbULtT/LNnyPrGaAImcvZOj/+Ap3cPDw2Onamv6nNLNap/vtvkkeAD4N2oABoDiAJgxvNaLc6t3s2J+a8t4AL9cg2fkPSU7n8/M97T5xPzJ+Ayrt72ygQyA2QYN4dK60tsvi+r3AgALPgPB0/H7+soadea4Q2o4PJ+fdmw/yOaT4Mnnc2oABoCiAFiI4FPf5wM8acUVtqmn0Gz1burevoknqk6O3sWsntvbT5v5JgAW744no7sxiyjz+UH7fLfNd+/2hPAZALGYXxEAtLuGldVzdePKyttPvRlTcuZ79uTxz+dXQ/BEfI0BsK04AKbZwAXV7cfM6lWc+cIq4S5hfIo2/2Aw6LliNrTP/6UM33xefo4RPre377h2xuSLXAA5SwwA0STLr3wb8lX9eQLgv4iY3E/sxGb+U9LbpxrEqN5+KVT+aHyKdftZMZ98PqEBGAAFYj5t93IDAB2HjnpWT9PMrwmE7vV6P/PIJ6TfelURmx/ilDad2/hCHJvv3u1pDACfRowLsvm5A8CLveI9j1O6N6xsndV1m5mfWmw/bGeWVJlPPp9XNhAxwQDIJ8RL3n7ezPcFQN6Cb1+69ClE3FLtd1Ibheu3Hxzbz8jbX31J7rs/KO8Xs3pBzZg8qnczZX5n6wM/wgCvZlJnE89t/pwGYAAEMb+iAGDBF07w7kkroSJ8YZlPvp+tARgAigKABV9twQfNWNIYAIoDwJEMynSfz95+NtPV/Gx+EPOJ+M5sIAMAAKalXLl7+7HG66UBACx7zirCF5v5affeDR3aVUPwNFdRaAAGgILMtwFANXppx/YrwPx/CM04vn6MkzbccxXtrtur63KiKnxU7q3DRvgWovIdE1Utk88AsAZn1lfmVL8aAPDNBk6na9H5/SVETMAs3fIz3/y7xfygWcrvwX77APkwP+1ZylTP4Z8NZAAEDNOuKADe3+1+FZNz0ynazPwKTVR1V3LNaQAGQJDqv1k6fdqdeTh9Wal+cvqnySBlVT6c6+xVfaAmAwAUB4DjrF5JvX2r965fYwb/0G5Yb7/cKj+oJ5MdBzBNjQHg2BNXXfXbBSEUCgaAUD15irPPZ+b7FO+eifeDmE+a384FMAAsTqjCfCcA8Gxd3AifZmrYX2Dv8lvfk2ploXP12OZb5zbe7vWe9Yryuvsz2PUADICNNfHAlter7fTNAYAqQ/b6/ce8EONn85n5kGy6Wtd4HJ+3qzNL2EoeR1Yvks03pxFey+djAKjJ/KnP55MOTIH51Hv3vRbQ7d670U7smPCauH50/Qh777pn7JxTwpV3hC/cRNWiMF9mdX2zgQyAyEWc1QCA3/j0CDbfzfznBHP3+9s0aGHsVDq+LVmY+fiY0p+lPNuZZU4DMADUYD45/TYA/AQPGuAU8EEvcLgSM3/Wn1pMA85pVvdpeTvnRngZALIdW4jz+e4izkQ2vyhNuewWMbWl2vMSMeHO50/r9pn5XszPe4h2RObbySBW/RnZ/LIAgNrEiSgooiKmzQcwf4u+Qr/3JYkuNb39kgieiG/3CWQA2HrcL8QbzuaXEABW9i4j5m+2213x6xv1m16xvgbaMgZerQhf3oJPabra9HQwA6BczE8NAHJeQNR9fpDNb3Y6umB6vdZ4lZk/n3CJHeFLSfBk8u15AQwAI94+v6Sq3waAY3ScXyXPzD4fwMR4waDf+6KXt18i5tfE/bd0gzpw3i//nmI6eykzn3w+e2aQlbGd/tBE0Vp9iQFQhEBPhgCY+fOSCr5Ra6C3LxJZCb39cztwTos3Ix/STMp8a8YSAM0ryHbQRkaCJ5M/nw30CfGGVf0MgJ0X5l2+BGndvADAzB/jLN0ru7tvugRoZfV0OV2tIswnkz/NBjLz1QQAM19N5pOW0xgAigOgrRvvSDRg9W7RnL0E3bj8vH38eyfjs3vQ5g/6b3jafJ/q3cwKOTJ29vy2+SIXwADw2ucrBAAZAAoX4ctrm6cK81tbxgMCf5oGz0gchjqlnUIhz4v4vdNm0QwA3O7lzPwCAKBLlTznxvaZ+X4BHuP76DkB0NnKcGf1FmTza/UlZD4A3CI1AAMgGfNLDgCRspeImKnho6weMz9l5ses3vW1+QBPCPkN+ts0HSxSfwYRCWQAWDr8YUmEkMmdmMwvIABmNkELY/7KutV7V4O75A0Fdd1e0D4/X8H79mRKyHw6qzmXDWQATO7DANFOMVR/bgBgwccT/AKmqD8lbT7VI0Sy+Y5T2tagENL/DABFAcCCV0bwnp1ZNAaA4gBo68auNAMRa/jWXpbX3SHXrKdox5qxEz+0O+ftL2asHsCT0ubTNnXW5iecoi5yAQwAVz5YvOzo6gDAQlRAT55ms7sp/ltjVSPm387MnyLH3YAxcevdjJm/3Fi2zmra2UAGAEpTFeZPAbBl4Nk9vz58zHyr925h5iomtPkkeHEoytIADIBiMT/olHbaAKDKG3cHTmZ+tZkPYP4VNQADoCDefs7MtwHg3gEFMf/0+AYOVDw4uDx0XmvX8EXP6mXSdTu4erckgk9/ijoy/+To3c/M5ALsnEDAdo8B0H0Id83utuvlGanrDYDNza2m+MNuWrvwkgTDzD6fBV96wb8umX+vWA8PD49nNAADoGBOX/qq3xsALPjQgi/pWD3TU/Bk8jUGgOIAaOsGTtYAgFRs/un49G7cJQwGPdcOo1TevipDtEUugAHg3gsDgEoAoPxyrHy+CTAQz288GSHzh3t7/WIwX38Et2uw9Ki8n1D5fFUEX19Zxd2e42wgMAAUYj4B4H+TZZYGHlCT0gAAAABJRU5ErkJggg==","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADAZJREFUeF7tXc1zI1cR7/FKissfgVBla1NIyno0nBIuFEdCAhQBwoVAqvioJBQUFyDAkfAXJBwJJLmFhAMfBSFcgBAqX4RjKgc+TrG0tuXUruwqArF3sSWtB17P69FoNOP5Hs3Ma1/eStqxxtO/X3e/7n7dWlvv/g0AYHz92ifEevXq1UOx0s/Gxsaa+Pfy+s1/sN7T7pSf7Yv1ZHTyMbEe7u9vO68DgLp43dKNn+NVAPfLz98R62R8do9Yrwz6b7iu08Trdtd4HN834WH5+QmuZ5PPiWWws/Mn13X4sqPrj1iXLT0qPz/DyzTz62J9u9d71vO6bvchvM7UnpafX7Du++wHYt3r9x/zuu7WS5c+Ld6vLdWel58v46rBT/A+e9vfle+bzutvbesfxuvqSy/K92+x7hueE+t+f/vL8v2x87pmp6OL141a4xX5fgdXE14Ty+j60WfFOhwOr81c1+xu4nWr2svy/dvxNhkA1uPoqAqAixcvbogHwMxfOPN/I5n/lfOYX681XrUUDLSTMB8A/om/hwFQGNW/GAA47YT4tzI2f2vrQTSd2oWfymcgbT6gD7HX3/6h+9mI1xnY/HMFv9FqGeJ7lxvLZPNbaTD/9PgG+nzocDl/GACKAkAZwfs6e2oJ/uDg8nBGAzAAFAWAQ/B/tEyB9hFpEhTZ56sh+NE18+NCrsNh78Bp8jUGgOIAaOvd11Ni/r/E75ncGH9SrFd2d990+ZcFi/CpLfhms7mK+p4BUO3tnp/qdwDAoBh1XJvPzBfxAf/Y/kL3+eTtkzYmwTdW1n8vNQADwGmqqhboCQOAgXgAMbJ6ajAf4AnxfAb97e9IoITN6hWa+aDBXaQBGADnhXirDgCKNUfI54djvm5gPhwAviVXzOdPzib34S5hZ+cFdxhavE4/n6+Gt0+x/SCVT8wX6Q7UAAyA1As6SqH6bQB4sDBZJU/ezC9eVo8qeSYzSbaMs3pRmT+ajLCSay4bmLiUiwFQWgDUBCJauvELiYxoNXy6gd7y/8PN38zF5jPzMZ8fl/nDvb2+WwMwAOIVcZLNLxXznQBIKvgfS8Z/m5k/tfq+lTwAfxH/a3Tt6F6xhq3epRq+uN4+2XwSPN2p8AEYAHkyv2gAaOnGr2Pa/IIwP/e6/Xgqv2CCJ2dfYwBEPrhRLQC0dTsZlOjETmYRPl9vn5kvNDdl9dwRPj+bT8xv691fUS6AkhsMgHBp3WjefkFVvxMAVmw/5lm9uMwH0L4hvnfQf4vq8meCkh1mfir7fMdDxQgvCR5Aw5yM1tYNBoCCzLcBQJUsUU/pxmV+4CndtJkflM697bYPCSbULtT/LNnyPrGaAImcvZOj/+Ap3cPDw2Onamv6nNLNap/vtvkkeAD4N2oABoDiAJgxvNaLc6t3s2J+a8t4AL9cg2fkPSU7n8/M97T5xPzJ+Ayrt72ygQyA2QYN4dK60tsvi+r3AgALPgPB0/H7+soadea4Q2o4PJ+fdmw/yOaT4Mnnc2oABoCiAFiI4FPf5wM8acUVtqmn0Gz1burevoknqk6O3sWsntvbT5v5JgAW744no7sxiyjz+UH7fLfNd+/2hPAZALGYXxEAtLuGldVzdePKyttPvRlTcuZ79uTxz+dXQ/BEfI0BsK04AKbZwAXV7cfM6lWc+cIq4S5hfIo2/2Aw6LliNrTP/6UM33xefo4RPre377h2xuSLXAA5SwwA0STLr3wb8lX9eQLgv4iY3E/sxGb+U9LbpxrEqN5+KVT+aHyKdftZMZ98PqEBGAAFYj5t93IDAB2HjnpWT9PMrwmE7vV6P/PIJ6TfelURmx/ilDad2/hCHJvv3u1pDACfRowLsvm5A8CLveI9j1O6N6xsndV1m5mfWmw/bGeWVJlPPp9XNhAxwQDIJ8RL3n7ezPcFQN6Cb1+69ClE3FLtd1Ibheu3Hxzbz8jbX31J7rs/KO8Xs3pBzZg8qnczZX5n6wM/wgCvZlJnE89t/pwGYAAEMb+iAGDBF07w7kkroSJ8YZlPvp+tARgAigKABV9twQfNWNIYAIoDwJEMynSfz95+NtPV/Gx+EPOJ+M5sIAMAAKalXLl7+7HG66UBACx7zirCF5v5affeDR3aVUPwNFdRaAAGgILMtwFANXppx/YrwPx/CM04vn6MkzbccxXtrtur63KiKnxU7q3DRvgWovIdE1Utk88AsAZn1lfmVL8aAPDNBk6na9H5/SVETMAs3fIz3/y7xfygWcrvwX77APkwP+1ZylTP4Z8NZAAEDNOuKADe3+1+FZNz0ynazPwKTVR1V3LNaQAGQJDqv1k6fdqdeTh9Wal+cvqnySBlVT6c6+xVfaAmAwAUB4DjrF5JvX2r965fYwb/0G5Yb7/cKj+oJ5MdBzBNjQHg2BNXXfXbBSEUCgaAUD15irPPZ+b7FO+eifeDmE+a384FMAAsTqjCfCcA8Gxd3AifZmrYX2Dv8lvfk2ploXP12OZb5zbe7vWe9Yryuvsz2PUADICNNfHAlter7fTNAYAqQ/b6/ce8EONn85n5kGy6Wtd4HJ+3qzNL2EoeR1Yvks03pxFey+djAKjJ/KnP55MOTIH51Hv3vRbQ7d670U7smPCauH50/Qh777pn7JxTwpV3hC/cRNWiMF9mdX2zgQyAyEWc1QCA3/j0CDbfzfznBHP3+9s0aGHsVDq+LVmY+fiY0p+lPNuZZU4DMADUYD45/TYA/AQPGuAU8EEvcLgSM3/Wn1pMA85pVvdpeTvnRngZALIdW4jz+e4izkQ2vyhNuewWMbWl2vMSMeHO50/r9pn5XszPe4h2RObbySBW/RnZ/LIAgNrEiSgooiKmzQcwf4u+Qr/3JYkuNb39kgieiG/3CWQA2HrcL8QbzuaXEABW9i4j5m+2213x6xv1m16xvgbaMgZerQhf3oJPabra9HQwA6BczE8NAHJeQNR9fpDNb3Y6umB6vdZ4lZk/n3CJHeFLSfBk8u15AQwAI94+v6Sq3waAY3ScXyXPzD4fwMR4waDf+6KXt18i5tfE/bd0gzpw3i//nmI6eykzn3w+e2aQlbGd/tBE0Vp9iQFQhEBPhgCY+fOSCr5Ra6C3LxJZCb39cztwTos3Ix/STMp8a8YSAM0ryHbQRkaCJ5M/nw30CfGGVf0MgJ0X5l2+BGndvADAzB/jLN0ru7tvugRoZfV0OV2tIswnkz/NBjLz1QQAM19N5pOW0xgAigOgrRvvSDRg9W7RnL0E3bj8vH38eyfjs3vQ5g/6b3jafJ/q3cwKOTJ29vy2+SIXwADw2ucrBAAZAAoX4ctrm6cK81tbxgMCf5oGz0gchjqlnUIhz4v4vdNm0QwA3O7lzPwCAKBLlTznxvaZ+X4BHuP76DkB0NnKcGf1FmTza/UlZD4A3CI1AAMgGfNLDgCRspeImKnho6weMz9l5ses3vW1+QBPCPkN+ts0HSxSfwYRCWQAWDr8YUmEkMmdmMwvIABmNkELY/7KutV7V4O75A0Fdd1e0D4/X8H79mRKyHw6qzmXDWQATO7DANFOMVR/bgBgwccT/AKmqD8lbT7VI0Sy+Y5T2tagENL/DABFAcCCV0bwnp1ZNAaA4gBo68auNAMRa/jWXpbX3SHXrKdox5qxEz+0O+ftL2asHsCT0ubTNnXW5iecoi5yAQwAVz5YvOzo6gDAQlRAT55ms7sp/ltjVSPm387MnyLH3YAxcevdjJm/3Fi2zmra2UAGAEpTFeZPAbBl4Nk9vz58zHyr925h5iomtPkkeHEoytIADIBiMT/olHbaAKDKG3cHTmZ+tZkPYP4VNQADoCDefs7MtwHg3gEFMf/0+AYOVDw4uDx0XmvX8EXP6mXSdTu4erckgk9/ijoy/+To3c/M5ALsnEDAdo8B0H0Id83utuvlGanrDYDNza2m+MNuWrvwkgTDzD6fBV96wb8umX+vWA8PD49nNAADoGBOX/qq3xsALPjQgi/pWD3TU/Bk8jUGgOIAaOsGTtYAgFRs/un49G7cJQwGPdcOo1TevipDtEUugAHg3gsDgEoAoPxyrHy+CTAQz288GSHzh3t7/WIwX38Et2uw9Ki8n1D5fFUEX19Zxd2e42wgMAAUYj4B4H+TZZYGHlCT0gAAAABJRU5ErkJggg==)","background-size":"64px 64px"}},{"x":128,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false,"id":"Water area/Lake or river intermittent","centerColor":{"0":46,"1":48,"2":48,"3":255},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"64px 64px"}},{"x":64,"y":128,"width":64,"height":64,"pixelRatio":2,"sdf":false,"id":"Water area/Playa","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,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)","background-size":"32px 32px"}},{"x":256,"y":0,"width":128,"height":128,"pixelRatio":2,"sdf":false,"id":"Water area/Swamp or marsh","centerColor":{"0":77,"1":79,"2":79,"3":181},"imageData":"data:image/png;base64,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","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADGxJREFUeF7tXWtsHFcVnteu13WcQNsYnKhAcYvAvGVUNQoqRmni2DtzZ4UQAgFtobwfQogf0Kq8JJ4CxB+oBAi1EqpA5bUzsxsrJoXlEahAASEkHqItCBqgbgtJXK+9j5mLzuc7qRM53dn1jndm584Pf571nTv3O+e7Z2bHc+5Rbdv+tKIoiuM4HyNktu0Quo5jEiqKotKP2dlZnbBWq7XF570C+pufnx9H56p6GWG9Xn9C9L8qOuY9ngD9K4qC46enp/OEU1NTdxF6nvdGwoWFhRcT6rnc5/C54xQF/29jPKur7yI8ceLEWdGfJjDocVw47BBjzyAs+P6U6GdE2AG819fX/3LRebs63ezsrCHsCD+ZpnkteOr6rYSO43yEsMjYzTivFEDGBcAY+yIpwfd9zHzNMF4rZsQHoaBS6VOElXL5jn7MgKNHjz6H+snlchYhV9U9UCLnLTGOY4THjh37Q1fSF43n5uYup1/z+TxmtOd53yJkjKHfer3+BszAQmFa8AW/c2fO2ITje/Z4gv+rMVNKpXdjnM3mD8W4/tPLuMJjDh8+vE+c/0WEgeBPQ6P9Rr3+C8JNkaer01mW9XzRL/hVXfcH4G/b9xO6jnO9sMf7YHcpAEMKAEpQ1f8Jqa1AQUEApWuatp/QcZwvdyXFATe2bfurmFGNxhcIc7kcrn2c86rg2wBqGj5vc/5ZtFPVNxO2Wq2PEuq6/hnC8N5hwLQinz68l3t0efn1dNDeiYmfEDYbDezn83lEwvMRQAogowKwbXtjZijKxjXJ978vZv5rRCT4JmGlUqlFll8CGjLGcI1TNA132YqiPA2K5/y/mPHt9h8JDcN4O/ZVFddeg/O9gjcioKrr+BbhlstfSgCtyEOwbPsbaBwE3xV2gD2CdhuRXNO068BPCiDjAigWi5j5mqbdQNhqtXC3nC8UbkFk8P2vEHqe91hk+SWg4QJj4GMoyksIfd//8+ZhtVotfN8eGRmZFTMe3/e5puE5gqGqV4njfk9YrVZ/ngBakYdgmiaed3DO/4aDcrnnEqwHwY8IC77/PEQAKYCMCyCypGTDobRA+Nh0KMlJUp0tIAXQ2UZD3UIKYKjd25mcFEBnGw11CymAoXZvZ3JSAJ1tNNQtpACG2r2dyUkBdLbRULeQAhhq93YmN0gBXPDuXuehDl2LRPCXAhicrrItgPC/VZVK5Z7B+WBwZ04K/4FFgKQYYFASSAr/OAWAPAL6V/xWRmaM4W1d13XxDt4WWyJC5DYEkgr+UgDb8HCHQ7MtgE0h7jtbRQJWKt2HCFAuHxZ/R8bNzMxMjnDfvn03Enqetxifj+LrOS38Y4sAaTFAXBJIC//YBGBZ1tXCuPNiJt+52di2bR+n/Waz+SbCxcXFRwnDl1TX1tbw7WBpaemfcTkpzn7Twl8KICYVZF4AoV3D99P/9fDD76HPTp06hRxAxhhy8BqKghxEvr7+b8KR0VHkIXiOgwyWfm2WZb2K+tI0DblzdKrNfbdVFePSfB/5Ap7n/bQf504K/0txiS0CSAFsWCBzArAs61liBv2D0DRN5NkrinKaflQqFcz88/cAnCMzSdO0F4oZiPx2z/PuJiwWi3ifvVqtPrSdGbmwsPAyOl7XdeTlB7p+BfaDYJSQc471Cdqq+lvCRdf9XS/nSyr/HYsASTWAFMDWElAty0IGkKqq64S+7yNPXVEUzLhqtYprIk2aKDOCMYZrd0tRcPducN4U/b+T0HXdtxEy2/4VOvX9D2Dma9qHMAPbbaRr67r+bJxP17GSiFcuY+WOpG9J4R8+T5mcnMRKKIHIdDJUNYx4BfhFCqC/kkqdAIqMIQtY4xwzPAgCINf1NcJjrntCmCjSmj0HDx7EjL3iyiuxMkW71cKzfiOXQ3666zgvEBEAOXd+u/1WTHTDQPv66ipy+S4bG0OO4vra2hHCpaWlcO2g/nqsz71dzL+xvn4TnWKkUPhxB/5YgaS+uooZ2wf+WNPIsiw8UQ2zo0O6XPhblQLorwJSJ4D+0n+yN2bbuAcYyedx191oNv8qZgCu7bZt/5JQ07QSIkUQ/Ilw5exZrEiye88e3Hu4joNvAWnb0sI/tucAaTFAXMJKC//YBBBeWsJVqkzTxIoUlUrl14TzjL2cMPy+vcDYUdp/5PRp/Jfwmfv349pfdV2s6ZO2LS38pQBiUlbmBRCTXWW3fbZAbBGgz+OU3cVkASmAmAyblm6lANLiqZjGKQUQk2HT0q0UQFo8FdM4pQBiMmxaupUCSIunYhqnFEBMhk1Lt1IAafFUTOOUAojJsGnpVgogLZ6KaZyZFUCYuNFoNJbJtml546hfOgj/OysFkHUBzDF2DanquOs+0C91paGfMFOIc44qY5VKBe/kZWWzbRsZWaoUQMYFYJom6veFGTvhDAjrz62srPydPqvVasgbSMsWJqi022283RxmH2/i90r6XdM05Aw6joMKquE2OzuLGkP67t3IIbzPdR9JC3caZ7FYnBH88K6l53lhvgdoWJb1fkQAKYCMC6BYKr2DlFAtl79OGCp/fHwcGTye56GyaLebZVmvg8JU9QCO1bTdwCBAFS4qSyQ+37gRDQLU8VM0bSOTiHPkAficIwI9ce4cxler1ZDDF2FDv6xU+jihWy5/YvMxCwsLr6D9XC73FkLHcd67+e8mYziu4rqfjHCu803C2r27du2C/TRNw3kUVR0TuMGbc+RAqiLjiosMKkVkaKmKghpGvshWrlQq4B81Q+vAgQPIALp8YgLX+qrjoP5huJmMoVqaKgWQcQFYlvVhUoLneZ8ntCwLivd9/3uEvdbwDauOHzlyBNXBm80mZuT4+Dgyj1ZWVrbMNVxeXsbnExMTwFqtFq4yFikz6eLZapomaiGrqnpO8FwiDKuHG7nc7bTvOg4qaRaLRWTSGIaBfAbHcb52cZ9p2meM3UbjbbVa9xIuLi4+SGiaJjKWKDdQCiDLAhhA+fi4J9AF6wtOT0/jmjs1NXWXiACopxdGAD23s+Xjw3uE0dHRp9M42u02VkUzDAMrlKytraGGc61Wa/diqLD/8HjTNK+lfnRdv1VENKzHUGTsZkQAKYCMC2Cny8dblmWKazJyAmlJwAuUrmmncE0ul3EXHvWuN+xjbm4OT/by+XxRzHisSMoYQ7ZxvV7Htb5QKEwTasbOlo8vlkpYFc3g/KWEnHNEgnBTVfU3Yqb2dO8RPr8JVBX8wswsZtv3w66Oc72wB2oJn68e7vu+IwyCmybPcfD1wSyVsGBDpVy+oxeHXODcjZtMKYAkCkCWj89o+fjwEiAFkFEByPLxGS8fLwWQcQHI8vEZLx8vBZBxAVz8NU3uZ8sCmX0nMFtuvjRbKYCMK0EKQAog4xbIOH0ZAaQAMm6BjNOXEUAKIOMWyDh9GQGkAAZmgbTXBt6u4RLBf5ARIBEG2K4Xt3F8IvgPTABJKZ++DQdu69Ck8JcC2JYbez84CwJIRfn03l3Y8chU8I8zAqTCAB3d2HuDVPCPTQBpKZ/eu3+f+si08JcCiEkBmRdAWsqnx+R/SoC5WvQ9T+h53p2bz3W+dnKziUyhcAWT8CXdtbW1e+jzpaUlVF+La4stAqTFAHEZNi38YxNAaNiklE8/dOgQqoWPjo7eQMgNAyt2qO02KmxyTcPKIxrnPxMz9rF+iCMp/C/FRQpACqAfOn+yj6SWjw/XPhobG0NtXkXX9yICBMFGNW1NO0N45vHHEQFOnjy50otlksp/xyJAUg0gBbC1BGT5+F6m+VMck7ry8ZZl3YJQKJYn830/XFDwIfq8Wq2iiHPUhRqSYoA++zVyd0nhPzMzg6VnJicncckLVPUqQkNVNy55nBfgd1k+PrJvIzVMXfl4KYBIfo3cKHUCiMysy4ZpKZ/eJa3IzdPCP7bnAGkxQGSPdtkwLfxjE0Bayqd36dfIzdPCXwogsku7a5h5AXRnLtl6UBaILQIMipA8b3cWkALozl5D11oKYOhc2h0hKYDu7DV0raUAhs6l3RGSAujOXkPXWgpg6FzaHSEpgO7sNXStpQCGzqXdEZIC6M5eQ9daCmDoXNodocwKIEzcaGS9fHx3ehme1lIA5nXkTVk+nme8fPwcY9eQEo677gPDM787M7EsC2XjedYFIMvHZ7x8vBRAxgUgy8dnvHy8FEDGBSDLx+dup5tB13FQU7hYLN5IaBjGFKHjOD3V8O18G7ozLRhjt9GZWq3WvYSLi4sPEpqmeRO+BkoBZFsA/wc+Bs6Jl6wd9wAAAABJRU5ErkJggg==)","background-size":"64px 64px"}},{"x":160,"y":222,"width":16,"height":22,"pixelRatio":2,"sdf":false,"id":"Water line/Levee/0","centerColor":{"0":0,"1":0,"2":0,"3":0},"imageData":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAWCAYAAADJqhx8AAAAAXNSR0IArs4c6QAAAK1JREFUOE9jZKAQMFKon2HUAIbRMGAYtGGgrKa58j/Df2v0ZP6fgWHa/Vs32pDFsSZlJXV1E4b/jKeQvfifgeHtX3ZW1UeXL78naABIgZKaxnwGBoYEmOL/DIw5929dn4ruKpyZSUFLS4Lpz79bDAwMvAwMDFfv3bqhz8DA8JdoA8CuUNcsZ/j/v4PhP6PrvdvX92DL+nizs5aWFtuPP//a7926UYyr3BgtDxgYAKveLhcPM+OgAAAAAElFTkSuQmCC","style":{"background-image":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAWCAYAAADJqhx8AAAAAXNSR0IArs4c6QAAAK1JREFUOE9jZKAQMFKon2HUAIbRMGAYtGGgrKa58j/Df2v0ZP6fgWHa/Vs32pDFsSZlJXV1E4b/jKeQvfifgeHtX3ZW1UeXL78naABIgZKaxnwGBoYEmOL/DIw5929dn4ruKpyZSUFLS4Lpz79bDAwMvAwMDFfv3bqhz8DA8JdoA8CuUNcsZ/j/v4PhP6PrvdvX92DL+nizs5aWFtuPP//a7926UYyr3BgtDxgYAKveLhcPM+OgAAAAAElFTkSuQmCC)","background-size":"8px 11px"}}]}}`)},beforeId:`Water area/Dam or weir`,beforeIdLines:`Water area/Dam or weir`},Satellite:{isJson:!1,url:`arcgis/imagery`,beforeId:`Railroad/casing`,beforeIdLines:`Water point/Stream or river`},Topography:{isJson:!1,url:`arcgis/topographic`,beforeId:`Ferry/Ferry`,beforeIdLines:`Tree/Elm`}};function ga(e,t){if(typeof e==`string`&&e.includes(`token=`)){if(!e.includes(t))return e+t}else if(Array.isArray(e))return e.map(e=>ga(e,t));else if(typeof e==`object`&&e)for(let n in e)e[n]=ga(e[n],t);return e}var _a=class{constructor(e,t){this.mapStyles=e,this.mapToken=t}static loadMapStyle(e,t){if(ha[e].isJson){let n=ha[e].url;return n.glyphs&&=ga(n.glyphs,t),n.sources&&=ga(n.sources,t),n}return`https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/styles/${ha[e].url}?type=style&token=${t}&worldview=unitedStatesOfAmerica`}static getBeforeID(e){if(getMaptype(chartOptions)==`Mapbox`){let t=MapBoxLayers[chartOptions.x4dMaps.mapboxBasemap.value][plotorder[e].beforeId],n=mapRef?.current?.getStyle()?.layers??[];for(let e of n)if(e.id==t)return t;console.log(`\n\nWarning: Could not find beforeID ${t} in mapbox layers. Please set correct beforeID.\n\n`);return}else return}};function va(e){let{overlayRef:t}=e,n=(0,l.useControl)(()=>new u.MapboxOverlay(e));return t?(t.current=n,t.current.setProps(e)):n.setProps(e),null}var ya={x:10,y:10},ba=5;function xa({mapContainer:e,overlayRef:t,title:n,views:r=[`placeholder`]}){let[i,a]=(0,d.useState)(`none`),[o,s]=(0,d.useState)({isOpen:!1,readoutChecked:!0,readoutLatLonChecked:!1,top:`0px`,left:`0px`}),[l,u]=(0,d.useState)({x:0,y:0,lon:0,lat:0}),[p,m]=(0,d.useState)([]),h=(0,d.useRef)(null),g=(0,d.useRef)({x:null,y:null}),_=(e,t,n,r)=>{if(e==null||t==null||!r)return[];let i=[];for(let a of r){let{readout:r,displaynum:o}=a.props||{};if(r&&(!o||o.includes(n)))for(let n in r){let{data:a,readoutFunction:o,readoutOptions:s}=r[n],c;if(typeof o==`function`)c=o(t,e,a,{...s});else continue;i.includes(c)||i.push(c)}}return i.sort(),i},v=(0,d.useCallback)(e=>{g.current=e,!h.current&&(h.current=requestAnimationFrame(()=>{h.current=null;let e=g.current;if(!e||o.current?.isOpen)return;let n=t?.current,r=n?._deck||n?._deckInstance||n?._deckGL||n?.deck;if(!r)return;let i=r.canvas||r._canvas;if(!i)return;let s=i.getBoundingClientRect(),c=e.clientX-s.left,l=e.clientY-s.top,{viewManager:d}=r,p=[];if(d?.getViewports?p=d.getViewports():r.getViewports&&(p=r.getViewports()),!p||p.length===0)return;let _=p.find(e=>typeof e.containsPoint==`function`?e.containsPoint([c,l]):c>=e.x&&c<e.x+e.width&&l>=e.y&&l<e.y+e.height);if(!_)return;let v=c-_.x,y=l-_.y,[b,x]=_.unproject([v,y]),S=[];try{typeof n.pickMultipleObjects==`function`?S=n.pickMultipleObjects({x:c,y:l})||[]:typeof r.pickMultipleObjects==`function`&&(S=r.pickMultipleObjects({x:c,y:l})||[])}catch{S=[]}let C=[];for(let e of S){let t=e?.sourceLayer?.props?.pickingFunction;if(typeof t==`function`){let{readout:n}=t(e,{lon:b,lat:x})||{};n&&!(0,f.some)(C,n)&&C.push(n)}}u({x:v+ya.x,y:y+ya.y,lon:b,lat:x}),m(C),a(`block`)}))},[t,o]),y=e=>{e.stopPropagation()};(0,d.useEffect)(()=>{let t=e?.current;if(!t)return;let n=null,r=null,i=!1,o=e=>{let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top;s(e=>({...e,isOpen:!0,top:`${i+ya.y}px`,left:`${r+ya.x}px`})),e.preventDefault(),e.stopPropagation()},c=e=>{e.button===2&&(r={x:e.clientX,y:e.clientY},i=!1,n=setTimeout(()=>{n=null},250))},l=e=>{if(r){let t=e.clientX-r.x,a=e.clientY-r.y;Math.sqrt(t*t+a*a)>5&&(i=!0,n&&=(clearTimeout(n),null))}},u=e=>{e.button===2&&r&&(n&&!i&&o(e),n&&=(clearTimeout(n),null),r=null,i=!1)},d=e=>{e.preventDefault()},f=()=>{a(`none`),m([]),h.current&&=(cancelAnimationFrame(h.current),null)},p=()=>{setTimeout(()=>{s(e=>({...e,isOpen:!1}))},100)},g=e=>{let n=e.clientX,r=e.clientY,i=t.getBoundingClientRect();if(!(n>=i.left&&n<=i.right&&r>=i.top&&r<=i.bottom)){f();return}let a=document.elementFromPoint(n,r);if(a&&t.contains(a)){try{v(e)}catch(e){console.warn(`handleMouseMove failed`,e)}return}f()};return t.addEventListener(`mousedown`,c,!1),t.addEventListener(`mousemove`,l,!1),t.addEventListener(`mouseup`,u,!1),t.addEventListener(`contextmenu`,d,!1),t.addEventListener(`click`,p,!1),t.addEventListener(`mousemove`,v,!1),t.addEventListener(`pointerleave`,f,!1),t.addEventListener(`mouseleave`,f,!1),document.addEventListener(`pointermove`,g,!0),()=>{t.removeEventListener(`mousedown`,c,!1),t.removeEventListener(`mousemove`,l,!1),t.removeEventListener(`mouseup`,u,!1),t.removeEventListener(`contextmenu`,d,!1),t.removeEventListener(`click`,p),t.removeEventListener(`mousemove`,v),document.removeEventListener(`pointermove`,g,!0),t.removeEventListener(`pointerleave`,f),t.removeEventListener(`mouseleave`,f),h.current&&=(cancelAnimationFrame(h.current),null)}},[v,e,t]);let b=t?.current,x=b?._deck||b?.deck,S;try{S=x?.viewManager?.getViewports?.()||x?.getViewports?.()||[]}catch{S=[]}let C=new Map(S.map(e=>[e.id,e])),w=e=>{let{lon:a,lat:s}=l;if(a==null||s==null)return null;let u=_(a,s,e,t?.current?._props?.layers||t?.current?.deck?.props?.layers||[]);return(0,c.jsxs)(`div`,{className:`x4d-readout`,style:{display:i},children:[r.length>1&&(0,c.jsx)(`span`,{className:`x4d-readout-circle`,style:{top:`${-ya.y-ba}px`,left:`${-ya.x-ba}px`,height:`${ba*2}px`,width:`${ba*2}px`}}),n,n&&(0,c.jsx)(`hr`,{}),(0,c.jsx)(`table`,{children:(0,c.jsx)(`tbody`,{children:u.map((e,t)=>(0,c.jsx)(`tr`,{children:(0,c.jsx)(`td`,{children:e})},t))})}),p.map((e,t)=>(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`div`,{children:e}),t<p.length-1&&(0,c.jsx)(`br`,{})]},t)),o.readoutLatLonChecked&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`hr`,{}),(0,c.jsx)(`table`,{children:(0,c.jsx)(`tbody`,{children:(0,c.jsx)(`tr`,{children:(0,c.jsx)(`td`,{children:`Lat/Lon: ${s.toFixed(2)}, ${a.toFixed(2)}`})})})})]})]})};return(0,c.jsxs)(`div`,{onMouseMove:y,children:[o.isOpen&&(0,c.jsxs)(`div`,{id:`x4d-right-click-menu`,style:{position:`absolute`,top:o.top,left:o.left,display:`block`,minWidth:`150px`},children:[(0,c.jsx)(`div`,{className:`x4d-right-click-menu-div`,children:(0,c.jsxs)(`label`,{className:`x4d-right-click-menu-label`,htmlFor:`x4d_data_readout`,children:[(0,c.jsx)(`input`,{type:`checkbox`,id:`x4d_data_readout`,onChange:()=>s(e=>({...e,readoutChecked:!e.readoutChecked})),checked:o.readoutChecked}),`Sample`]})}),(0,c.jsx)(`div`,{className:`x4d-right-click-menu-div`,children:(0,c.jsxs)(`label`,{className:`x4d-right-click-menu-label`,htmlFor:`x4d_latlon_readout`,children:[(0,c.jsx)(`input`,{type:`checkbox`,id:`x4d_latlon_readout`,onChange:()=>s(e=>({...e,readoutLatLonChecked:!e.readoutLatLonChecked})),checked:o.readoutLatLonChecked}),`Lat/Lon Readout`]})})]}),!o.isOpen&&o.readoutChecked&&(0,c.jsx)(c.Fragment,{children:r.map((e,t)=>{let n=C.get(e.id)||S[t]||{x:0,y:0},r=n.x||0,i=n.y||0;return(0,c.jsx)(`div`,{style:{position:`absolute`,top:l.y+i,left:l.x+r,pointerEvents:`none`},children:w(t)},e.id||t)})})]})}function Sa(e,t,n){if(!Array.isArray(n)||n.length===0)return-1;let r=-1,i=1/0;for(let a=0;a<n.length;a++){let o=n[a];if(!Array.isArray(o)||o.length<2)continue;let s=o[0]-e,c=o[1]-t,l=s*s+c*c;l<i&&(i=l,r=a)}return r}function Ca(e,t,n,r,i,a=!1){if(!Array.isArray(e)||e.length<t*n||i<0||i>=n)return null;let o=r;return a&&(o%=t,o<0&&(o+=t)),o<0||o>=t?null:e[o*n+i]}function wa(e){let t=0,n=0,r=0;for(let i=0;i<e.length;i+=1){let a=e[i];if(!Array.isArray(a)||a.length<2)continue;let o=a[0],s=a[1];!Number.isFinite(o)||!Number.isFinite(s)||(t+=o,n+=s,r+=1)}return r===0?null:[t/r,n/r]}function Ta(e,t,n,r,i){let a=i[0]-n[0],o=i[1]-n[1],s=r[0]-n[0],c=r[1]-n[1],l=e-n[0],u=t-n[1],d=a*a+o*o,f=a*s+o*c,p=a*l+o*u,m=s*s+c*c,h=s*l+c*u,g=d*m-f*f;if(Math.abs(g)<1e-15)return!1;let _=1/g,v=(m*p-f*h)*_,y=(d*h-f*p)*_;return v>=-1e-9&&y>=-1e-9&&v+y<=1.000000001}function Ea(e,t,n,r,i,a,o,s){let c=(r[1]-i[1])*(n[0]-i[0])+(i[0]-r[0])*(n[1]-i[1]);if(Math.abs(c)<1e-15)return NaN;let l=((r[1]-i[1])*(e-i[0])+(i[0]-r[0])*(t-i[1]))/c,u=((i[1]-n[1])*(e-i[0])+(n[0]-i[0])*(t-i[1]))/c,d=1-l-u;return l*a+u*o+d*s}function Da(e,t,n,r,i,a,o,s,c){let l=[n,e,r,t];if(l.some(e=>Number.isNaN(e)||e==null))return NaN;if(c)return n*i*o+e*i*s+r*a*o+t*a*s;let u=[i*o,i*s,a*o,a*s],d=Math.max(...u);return l[u.indexOf(d)]}function Oa(e,t){let n=e*Math.PI/180;return[-t*Math.sin(n),-t*Math.cos(n)]}function ka(e,t){return 180+180/Math.PI*Math.atan2(e,t)}function Aa(e,t,n,r={}){let i;return r.readoutType===`gridded`?i=ja(e,t,n,r):r.readoutType===`spherical`?i=Ma(e,t,n,r):r.readoutType===`unstructured`&&(i=Na(e,t,n,r)),i=Number.isNaN(i)?`NaN`:T.roundto(i,r.decimals),i=`${r.prependText}: ${i}${r.units}`,i}function ja(e,t,n,r={}){let{projection:i,dataType:a=`scalar`,interpolate:o=!0}=r;if(!i||!n)return NaN;let[s,c]=i.LonLatToij(t,e,!1,!0),l=Math.floor(s),u=Math.ceil(s),d=Math.floor(c),f=Math.ceil(c),p=1-(s-l),m=1-p,h=1-(c-d),g=1-h,_=[i.lonlatGrid.length,i.lonlatGrid[0].length],v=_[1],y=_[0],b=(e,t)=>e<0||e>=v||t<0||t>=y?NaN:t*v+e,x=n[b(l,f)],S=n[b(u,f)],C=n[b(l,d)],w=n[b(u,d)];if(a===`vector`){let[e,t]=Oa(x,1),[n,r]=Oa(S,1),[i,a]=Oa(C,1),[s,c]=Oa(w,1),l=Da(e,n,i,s,p,m,h,g,o),u=Da(t,r,a,c,p,m,h,g,o);return Number.isNaN(l)||Number.isNaN(u)?NaN:ka(l,u)}return Da(x,S,C,w,p,m,h,g,o)}function Ma(e,t,n,r={}){let{lonlatGrid:i,shape:a,triangulationMode:o,interpolate:s=!0}=r;if(!n||!i)return NaN;let c=Array.isArray(a)&&Number.isFinite(a[0])&&Number.isFinite(a[1])?[Math.floor(a[0]),Math.floor(a[1])]:null;if(!c||c[0]<2||c[1]<2){let r=Sa(t,e,i);return r>=0?n[r]:NaN}let[l,u]=c;if(o===`spherical-cells`){for(let r=0;r<l;r+=1)for(let a=0;a<u;a+=1){let o=Ca(i,l,u,r,a,!1),s=wa([o,Ca(i,l,u,r,a-1,!1),Ca(i,l,u,r-1,a,!1),Ca(i,l,u,r-1,a-1,!1)]),c=wa([o,Ca(i,l,u,r,a+1,!1),Ca(i,l,u,r-1,a,!1),Ca(i,l,u,r-1,a+1,!1)]),d=wa([o,Ca(i,l,u,r,a+1,!1),Ca(i,l,u,r+1,a,!1),Ca(i,l,u,r+1,a+1,!1)]),f=wa([o,Ca(i,l,u,r,a-1,!1),Ca(i,l,u,r+1,a,!1),Ca(i,l,u,r+1,a-1,!1)]);if(!(!s||!c||!d||!f)&&(Ta(t,e,s,c,d)||Ta(t,e,s,d,f))){let e=r*u+a;return e>=0&&e<n.length?n[e]:NaN}}let r=Sa(t,e,i);return r>=0?n[r]:NaN}for(let r=0;r<l;r+=1){let a=(r+1)%l;for(let o=0;o<u-1;o+=1){let c=r*u+o,l=c+1,d=a*u+o,f=d+1,p=i[c],m=i[l],h=i[d],g=i[f];if(!p||!m||!h||!g||!(Ta(t,e,p,m,g)||Ta(t,e,p,g,h)))continue;let _=n[c],v=n[l],y=n[d],b=n[f];if(!s){let n=[p,m,g,h],r=[_,v,b,y],i=-1,a=1/0;for(let r=0;r<n.length;r+=1){let o=n[r][0]-t,s=n[r][1]-e,c=o*o+s*s;c<a&&(a=c,i=r)}return r[i]}let x=wa([p,m,h,g]);if(!x)return NaN;let S=0,C=0,w=[_,v,y,b];for(let e=0;e<w.length;e+=1)Number.isFinite(w[e])&&(S+=w[e],C+=1);let T=C>0?S/C:NaN;if(!Number.isFinite(T))return NaN;let E=[[p,x,m,_,T,v],[m,x,g,v,T,b],[g,x,h,b,T,y],[h,x,p,y,T,_]];for(let n=0;n<E.length;n+=1){let[r,i,a,o,s,c]=E[n];if(Ta(t,e,r,i,a))return!Number.isFinite(o)||!Number.isFinite(s)||!Number.isFinite(c)?NaN:Ea(t,e,r,i,a,o,s,c)}return T}}let d=Sa(t,e,i);return d>=0?n[d]:NaN}function Na(e,t,n,r={}){let{lonlatGrid:i}=r;if(!n||!i)return NaN;let a=Sa(t,e,i);return a>=0?n[a]:NaN}function Pa({mapRef:e,viewState:t,overlayRef:n,options:r}){let[i,a]=(0,d.useState)([]),o=(0,d.useRef)((0,f.debounce)(()=>{if(n?.current){let{width:e,height:t}=n.current._deck;if(!e||!t)return;let r=n.current.pickObjects({x:0,y:0,width:e,height:t}),i=[];for(let e in r){let t=r[e],n=t.sourceLayer.props?.pickingFunction;if(n){let{dynamicLegend:e}=n(t);e&&!(0,f.some)(i,e)&&i.push(e)}}a(i)}},300)).current;return(0,d.useEffect)(()=>(o(),()=>{o.cancel()}),[e,t,n,o]),(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`div`,{className:`dynamic-legend-title`,children:r.title}),i.map((e,t)=>(0,c.jsxs)(`div`,{className:`dynamic-legend-items`,children:[(0,c.jsx)(`div`,{className:`dynamic-legend-items-color`,style:{backgroundColor:e.color}}),(0,c.jsx)(`div`,{children:e.text})]},t))]})}function Fa({options:e}){let t=T.formatValidTime(e);e.colors.length!==e.labels.length&&console.error(`Colors and labels must have the same length.`);let n=[];return n=e.layerType===`temp`?e.colors.temp.map((t,n)=>({label:e.labels.labels[n],color:t})):e.layerType===`prcp`?e.colors.prcp.map((t,n)=>({label:e.labels.labels[n],color:t})):e.colors.map((t,n)=>({label:e.labels[n],color:t}))||[],(0,c.jsxs)(`div`,{children:[e.title&&t?(0,c.jsxs)(`div`,{className:`static-legend-title`,children:[(0,c.jsx)(`div`,{children:e.title}),(0,c.jsx)(`div`,{children:t})]}):null,(0,c.jsx)(`div`,{className:`static-legend-container`,children:n.map((e,t)=>(0,c.jsxs)(`div`,{className:`static-legend-items`,children:[e.label===`Near Normal`?(0,c.jsx)(`div`,{className:`static-legend-items-color`,style:{backgroundColor:e.color,border:`1px solid #000`}}):(0,c.jsx)(`div`,{className:`static-legend-items-color`,style:{backgroundColor:e.color,border:`1px solid transparent`}}),(0,c.jsx)(`div`,{children:e.label})]},t))})]})}function Ia({options:e}){let{colors:t,colorLevels:n,colorType:i,ticks:a=`linear`,orient:o=`vertical`,barLength:s=600,thickness:l=10,title:u=``,units:f=``,containerClassName:p=`wizard-default-legend-container`,containerSx:m={},titleClassName:h=`wizard-default-legend-title`,titleSx:g={},titleJustify:_=`center`,titlePaddingMultiplier:v=1.2,tickClassName:y=`wizard-default-legend-tick`,tickLength:b=5,tickAngle:x=0,tickValues:S=null,tickPadding:C=2,tickStrokeWidth:w=1,hideOuterTicks:T=!1,axisStrokeWidth:E=1,titleFontFamily:ee=`sans-serif`,titleFontSize:te=12,titleFontWeight:ne=400,titleFontColor:re=`currentColor`,tickFontFamily:ie=`sans-serif`,tickFontSize:ae=10,tickFontWeight:oe=400,tickFontColor:se=`currentColor`}=e,ce=i===`scaleLinear`?!1:e.isLeftCap,le=i===`scaleLinear`?!1:e.isRightCap,ue=(0,d.useId)(),de=(e,t)=>{let n=e[0],r=e[e.length-1];return t.filter(e=>e>=n&&e<=r)},fe=o===`horizontal`,pe=fe?0:-90,me=Ee(n,t,i),he=me.domain();le&&he.push(he[he.length-1]+1),ce&&he.unshift(he[0]-1);let ge=(0,r.scaleLinear)().domain(he),_e=(0,r.range)(0,s,s/(ge.domain().length-1));_e[_e.length-1]!==s&&_e.push(s),o===`vertical`&&_e.reverse(),ge.range(_e);let ve=[],ye=[],be=s*.025;if(a===`byColorLevels`&&S)ve=ge.domain(),ve=de(me.domain(),ve),ye=S;else if(a===`byColorLevels`){if(ve=ge.domain(),ve=de(me.domain(),ve),ve.length>be){let e=Math.ceil(ve.length/be);ve=ve.filter((t,n)=>n%e===0)}ye=ve.map(e=>(0,r.format)(`,.2~f`)(e))}else ve=ge.ticks?ge.ticks():ge.domain(),ve=de(me.domain(),ve),ye=ve.map(e=>(0,r.format)(`,.2~f`)(e));T&&(ce||(ve=ve.slice(1),ye=ye.slice(1)),le||(ve=ve.slice(0,ve.length-1),ye=ye.slice(0,ye.length-1)));let xe=f.trim(),De=`${u} ${xe?`(${xe})`:``}`.trim(),Oe=Se(De,`${ne} ${te}px ${ee}`,pe),ke=0;De.length>0&&(ke=fe?Oe.height*v:Oe.width*v);let Ae=Ce(ye,`${oe} ${ae}px ${ie}`,x),je=b<0?C*-1:C,Me=fe?Ae.height+b+je+E/2:Ae.width+b+je+E/2;b<0&&(Me=E/2);let Ne=0,Pe=0;if(ve[0]===he[0]){let e=Se(ye[0],`${oe} ${ae}px ${ie}`,x);Ne=fe?e.width:e.height}if(ve[ve.length-1]===he[he.length-1]){let e=Se(ye[ye.length-1],`${oe} ${ae}px ${ie}`,x);Pe=fe?e.width:e.height}(x===90||x===-90||x===0)&&(Ne/=2,Pe/=2);let Fe=fe?s+Ne+Pe:l+ke+Me,Ie=fe?l+ke+Me:s+Ne+Pe,Le=Te({isHorizontal:fe,titleJustify:_,barLength:s,svgWidth:Fe,svgHeight:Ie,titleDimensions:Oe}),Re=ge.domain(),ze=[];for(let e=0;e<Re.length-1;e+=1)ze.push({start:ge(Re[e]),end:ge(Re[e+1]),color:me(Re[e])});return(0,c.jsxs)(`svg`,{width:Fe,height:Ie,className:p,style:{display:`block`,...m},children:[i===`scaleLinear`&&(0,c.jsx)(`defs`,{children:(0,c.jsx)(`linearGradient`,{id:ue,x1:`0%`,y1:`100%`,x2:fe?`100%`:`0%`,y2:fe?`100%`:`0%`,children:ge.domain().map((e,t)=>{let n;return n=fe?ge(e)/s*100:100-ge(e)/s*100,(0,c.jsx)(`stop`,{offset:`${n}%`,stopColor:me(e)},t)})})}),(0,c.jsxs)(`g`,{transform:`translate(${fe?Ne:0}, ${fe?0:Pe})`,children:[(0,c.jsx)(`text`,{transform:Le.transform,x:Le.x,y:Le.y,textAnchor:Le.textAnchor,dominantBaseline:`central`,className:h,style:{fill:re,fontFamily:ee,fontSize:te,fontWeight:ne,color:re,...g},children:De}),(0,c.jsx)(`g`,{transform:fe?`translate(0, ${ke})`:`translate(${ke}, 0)`,children:i===`scaleLinear`?(0,c.jsx)(`rect`,{x:0,y:0,width:fe?s:l,height:fe?l:s,fill:`url(#${ue})`}):ze.map((e,t)=>(0,c.jsx)(`rect`,{x:fe?e.start:0,y:fe?0:e.end,width:fe?e.end-e.start:l,height:fe?l:e.start-e.end,fill:e.color},t))}),(0,c.jsxs)(`g`,{transform:fe?`translate(0, ${ke})`:`translate(${ke}, 0)`,children:[(0,c.jsx)(`line`,{x1:fe?0:l,y1:fe?l:0,x2:fe?s:l,y2:fe?l:s,stroke:se,strokeWidth:E}),ve.map((e,t)=>{let n=ge(e),r=l+b+je+E/2,i=we(fe,r,b,x);return(0,c.jsxs)(`g`,{transform:fe?`translate(${n},${E/2*(b<0?-1:1)})`:`translate(${E/2*(b<0?-1:1)},${n})`,children:[(0,c.jsx)(`line`,{x1:fe?0:l,y1:fe?l:0,x2:fe?0:l+b,y2:fe?l+b:0,stroke:se,strokeWidth:w}),(0,c.jsx)(`text`,{x:fe?0:r,y:fe?r:0,className:y,transform:i.transform,textAnchor:i.textAnchor,dominantBaseline:i.dominantBaseline,style:{fill:se,fontFamily:ie,fontSize:`${ae}px`,fontWeight:oe,color:se},children:ye[t]})]},e)})]})]})]})}function La({mapRef:e,viewState:t,overlayRef:n}){let r=n?.current?._props?.layers,i=[],a=[],o=[];if(r)for(let e of r){let t=e.props?.legend;if(t){if(t.type===`dynamicItems`&&t&&!(0,f.some)(i,t)&&i.push(t),t.type===`staticBar`){let{colors:n,colorLevels:r,colorType:i}=e.props,a={colors:n,colorLevels:r,colorType:i,...t};a&&!(0,f.some)(o,a)&&o.push(a)}t.type===`staticItems`&&a.push(t)}}return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`div`,{id:`legendContainer`,children:o.map((e,t)=>(0,c.jsx)(Ia,{options:e},t))}),i.length>0?(0,c.jsx)(`div`,{id:`dynamicLegendItems`,children:i.map((r,i)=>(0,c.jsx)(Pa,{mapRef:e,viewState:t,overlayRef:n,options:r},i))}):null,a.length>0?(0,c.jsx)(`div`,{id:`staticLegendItems`,children:a.map((r,i)=>(0,c.jsx)(Fa,{mapRef:e,viewState:t,overlayRef:n,options:r},i))}):null]})}var Ra=class{constructor({nx:e,ny:t,dx:n,dy:r,firstLat:i,firstLon:a,proj:o,rotate:s,rotation:c,wrapLongitude:l,datelineFix:u},d=1){this.nx=Math.ceil(e/d),this.ny=Math.ceil(t/d),this.dx=n*d,this.dy=r*d,this.firstLat=i,this.firstLon=a,this.proj=o,this.resLevel=d,this.wrapLongitude=l||!1,this.datelineFix=u||!1,this.rotate=s||!1,this.rotation=c||{longitudeOfSouthernPoleInDegrees:0,latitudeOfSouthernPoleInDegrees:0,angleOfRotationInDegrees:0},this.i0=NaN,this.i1=NaN,this.j0=NaN,this.j1=NaN,this.projection=(0,p.default)(this.proj);let[f,m]=this.projection.forward([this.firstLon,this.firstLat]);this.xMin=-f,this.yMin=-m,this.projection=(0,p.default)(`${this.proj} +x_0=${-f} +y_0=${-m}`)}getCorners(e=!0,t=!0){let{nx:n,ny:r}=this.getNxNY(e),i=[];for(let t=0;t<r;t+=1)i.push(this.ijToLonLat(0,t,e));for(let t=0;t<n;t+=1)i.push(this.ijToLonLat(t,r-1,e));for(let t=r-1;t>=0;--t)i.push(this.ijToLonLat(n-1,t,e));for(let t=n-1;t>=0;--t)i.push(this.ijToLonLat(t,0,e));for(let e=0;e<i.length;e+=1)t&&i[e].reverse();return i}getNxNY(e){let t,n;return e&&!Number.isNaN(this.i0)?(n=this.j1-this.j0,t=this.i1-this.i0):(n=this.ny,t=this.nx),{nx:t,ny:n}}makeLonLatGrid(e=!0){let{nx:t,ny:n}=this.getNxNY(e),r=Array(n);for(let i=0;i<n;i+=1){r[i]=Array(t);for(let n=0;n<t;n+=1)r[i][n]=this.ijToLonLat(n,i,e)}this.lonlatGrid=r}qcPoints(){if(this.j0=Math.max(this.j0,0),this.j1=Math.min(this.j1,this.ny),this.i1=Math.min(this.i1,this.nx),this.wrapLongitude){this.i0=Math.max(this.i0,-this.nx);let e=this.i1-this.i0-this.nx-1;e>0&&(this.i0+=Math.ceil(e/2),this.i1-=Math.floor(e/2))}else this.i0=Math.max(this.i0,0)}makeresponse(){return{i0:this.i0,j0:this.j0,i1:this.i1,j1:this.j1,nx:this.nx,ny:this.ny,resLevel:this.resLevel}}calcLocalDomain(e,t,n,r){let[i,a]=this.LonLatToij(t,e,!0,!0);return this.i0=i-Math.floor(r/2),this.i1=i+Math.floor(r/2),this.j0=a-Math.floor(n/2),this.j1=a+Math.floor(n/2),this.qcPoints(),this.makeresponse()}calcLocalDomainFromViewport(e,t,n,r=`Mapbox`){let{i0:i,i1:a,j0:o,j1:s}=this.getViewportBoundsIJ(e,t,r,n);return this.i0=i,this.i1=a,this.j0=o,this.j1=s,this.qcPoints(),this.makeresponse()}getViewportBoundsIJ(e,n,r,i=void 0){let{clientWidth:a,clientHeight:o}=e.current,s;s=[`Mapbox`,`geojson`].includes(r)?new t.WebMercatorViewport({...n,width:a,height:o}):new t._GlobeViewport({...n,width:a,height:o});let{yMin:c,yMax:l,xMin:u,xMax:d}=_e.getViewportBounds(s,this);return i&&(u=Math.floor(u/i.x)*i.x,d=Math.ceil(d/i.x)*i.x,c=Math.floor(c/i.y)*i.y,l=Math.ceil(l/i.y)*i.y),{i0:u,i1:d,j0:c,j1:l}}calcResLevel(e,t,n,r=`Mapbox`){let i={...t};i.pitch=0;let{i0:a,i1:o,j0:s,j1:c}=this.getViewportBoundsIJ(e,i,r),{resLevels:l,targetNx:u,targetNy:d}=n,f=o-a,p=c-s,m=T.closestceilvalue(l,f/u),h=T.closestceilvalue(l,p/d);return Math.max(m,h)}rotateCoordinate(e,t,n){e=e*Math.PI/180,t=t*Math.PI/180;let{longitudeOfSouthernPoleInDegrees:r,latitudeOfSouthernPoleInDegrees:i}=this.rotation,a=90+i,o=r;o=o*Math.PI/180,a=a*Math.PI/180;let s=Math.cos(e)*Math.cos(t),c=Math.sin(e)*Math.cos(t),l=Math.sin(t),u,d,f;n===1&&(u=Math.cos(a)*Math.cos(o)*s+Math.cos(a)*Math.sin(o)*c+Math.sin(a)*l,d=-Math.sin(o)*s+Math.cos(o)*c,f=-Math.sin(a)*Math.cos(o)*s-Math.sin(a)*Math.sin(o)*c+Math.cos(a)*l),n===2&&(o=-o,a=-a,u=Math.cos(a)*Math.cos(o)*s+Math.sin(o)*c+Math.sin(a)*Math.cos(o)*l,d=-Math.cos(a)*Math.sin(o)*s+Math.cos(o)*c-Math.sin(a)*Math.sin(o)*l,f=-Math.sin(a)*s+Math.cos(a)*l);let p=Math.atan2(d,u),m=Math.asin(f);return p=p*180/Math.PI,m=m*180/Math.PI,[p,m]}LonLatToij(e,t,n,r=!0,i=!1){let a=t,o=e;if(this.rotate&&([o,a]=this.rotateCoordinate(o,a,1)),!i){let e=o-this.firstLon;o=this.firstLon+(e%360+360)%360}let s,c;return this.proj.includes(`longlat`)?(s=(o-this.firstLon)/this.dx,c=(a-this.firstLat)/this.dy):([s,c]=this.projection.forward([o,a]),s/=this.dx,c/=this.dy),r&&!Number.isNaN(this.i0)&&!Number.isNaN(this.j0)&&(s-=this.i0,c-=this.j0),n&&(s=Math.round(s),c=Math.round(c)),[s,c]}ijToLonLat(e,t,n=!0){let r=e,i=t;n&&!Number.isNaN(this.i0)&&!Number.isNaN(this.j0)&&(r+=this.i0,i+=this.j0);let[a,o]=this.projection.inverse([r*this.dx,i*this.dy]);return this.proj.includes(`longlat`)&&(a+=this.firstLon,o+=this.firstLat),this.rotate&&([a,o]=this.rotateCoordinate(a,o,2)),this.firstLon>0&&a<0&&(a+=360),this.firstLon<0&&a>0&&(a-=360),[a,o]}},za={defaults:`default`,colorBars:{default:{colors:[`rgb(0,0,255)`,`rgb(50,0,205)`,`rgb(100,0,155)`,`rgb(150,0,105)`,`rgb(200,0,55)`,`rgb(255,0,0)`],colorLevels:[20,40,60,80,100],colorType:`scaleThreshold`,contourLevels:[0,10,20,30,40,50,60,70,80,90,100],isLeftCap:!0,isRightCap:!0,ticks:`linear`},difference:{colors:[`rgb(0,0,70)`,`rgb(36,56,119)`,`rgb(68,106,161)`,`rgb(100,152,195)`,`rgb(132,185,216)`,`rgb(164,207,228)`,`rgba(194,227,239,200)`,`rgba(255,255,255,0)`,`rgba(254,195,118,200)`,`rgb(252,163,95)`,`rgb(247,128,76)`,`rgb(234,93,59)`,`rgb(199,61,41)`,`rgb(148,29,24)`,`rgb(84,0,0)`],colorLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14],colorType:`scaleThreshold`,contourLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14],isLeftCap:!0,isRightCap:!0,ticks:`byColorLevels`},spread:{colors:[`rgba(0,0,0,0)`,`rgba(0,0,0,0)`,`rgba(255,239,3,0.5)`,`rgb(255,195,3)`,`rgb(255,87,51)`,`rgb(190,0,0)`,`rgb(88,24,70)`],colorLevels:[0,2,4,6,8,10],colorType:`scaleThreshold`,contourLevels:[0,2,4,6,8,10],isLeftCap:!1,isRightCap:!0,ticks:`byColorLevels`},climo:{colors:[`rgb(3, 10, 60)`,`rgb(13, 30, 80)`,`rgb(23, 50, 99)`,`rgb(33, 70, 119)`,`rgb(43, 91, 138)`,`rgb(53, 111, 158)`,`rgb(63, 131, 177)`,`rgb(73,151,197)`,`rgba(0,0,0,0)`,`rgba(0,0,0,0)`,`rgb(241,158,124)`,`rgb(228,128,102)`,`rgb(216,101,81)`,`rgb(201,70,65)`,`rgb(185,39,50)`,`rgb(164,19,40)`,`rgb(131,9,34)`,`rgb(100,5,25)`],colorLevels:[.01,.5,1,3,5,10,15,30,50,70,85,90,95,97,99,99.5,99.99],colorType:`scaleThreshold`,contourLevels:[.01,.5,1,3,5,10,15,30,50,70,85,90,95,97,99,99.5,99.99],isLeftCap:!0,isRightCap:!0,ticks:`byColorLevels`},prain:{colors:[`rgba(150,150,150,0)`,`rgba(127,255,0,1)`,`rgb(127,255,0)`,`rgb(85,195,0)`,`rgb(42,136,0)`,`rgb(0,76,0)`,`rgb(0,76,0)`],colorLevels:[1,5,15,25,35,50],colorType:`scaleThreshold`,contourLevels:[1,5,15,25,35,50],isLeftCap:!1,isRightCap:!1,ticks:`byColorLevels`},timing:{colors:[`rgba(0,0,0,0)`,`rgb(16, 89, 140)`,`rgb(250, 247, 179)`],colorLevels:void 0,colorType:`scaleThreshold`,contourLevels:void 0,isLeftCap:!1,isRightCap:!0,ticks:`byColorLevels`},percentage:{colors:[`rgba(0,0,0,0)`,`rgb(10,5,30)`,`rgb(30,14,80)`,`rgb(50,32,150)`,`rgb(174,48,91)`,`rgb(218,78,59)`,`rgb(241,114,29)`,`rgb(251,158,7`,`rgb(250,187,33)`,`rgb(248,224,55)`,`rgb(255,255,150)`,`rgb(255,255,150)`],colorLevels:[5,10,20,30,40,50,60,70,80,90,100],colorType:`scaleThreshold`,contourLevels:[5,10,20,30,40,50,60,70,80,90,100],isLeftCap:!0,isRightCap:!1,ticks:`byColorLevels`},paintball:{colors:[`rgb(229,153,255)`,`rgb(131,71,153)`,`rgb(165,191,229)`,`rgb(32,62,153)`,`rgb(239,138,139)`,`rgb(205,61,50)`,`rgb(164,239,165)`,`rgb(67,128,7)`,`rgb(255,255,0)`,`rgb(150,150,0)`,`rgb(255,161,0)`,`rgb(255,204,118)`,`rgb(1,255,190)`,`rgb(0,117,87)`],colorLevels:[],colorType:`scaleThreshold`,contourLevels:[],isLeftCap:!0,isRightCap:!1,ticks:`byColorLevels`}},colorPrimary:`rgb(0,0,255)`,isZeroLowerBound:!1,nameLegend:`Default Name`,namePublic:`Default Name`,nameShort:`Default Name`,roundto:1,roundtoReadout:1,units:``},Ba={defaults:`default`,colorBars:{default:{colorLevels:[0,.2,1],colors:[`rgba(255,255,255,0)`,`rgba(255,254,224,0.7)`,`rgba(105,37,6,1)`],colorType:`scaleLinear`,contourLevels:[.1,.2,.3,.4,.5,.6,.7,.8,.9,1],ticks:`linear`},difference:{colorLevels:[-.7,-.6,-.5,-.4,-.3,-.2,-.1,.1,.2,.3,.4,.5,.6,.7]}},colorPrimary:`var(--graphcolorlight)`,isZeroLowerBound:!0,nameLegend:`Aerosol Optical Thickness`,namePublic:`Aerosol Optical Thickness`,nameShort:`AOT`,roundto:2,units:``},Va={defaults:`default`,colorBars:{default:{colorType:`scaleThreshold`,ticks:`byColorLevels`}}},Ha={defaults:`default`,colorBars:{default:{colorLevels:[0,100,300,600,900,1200],colors:[`rgba(0,0,0,0)`,`rgb(255,255,0)`,`rgb(255,165,0)`,`rgb(255,0,0)`,`rgb(178,34,34)`,`rgb(140,1,1)`],colorType:`scaleLinear`,contourLevels:[0,100,200,300,400,500,600,700,800,900,1e3],isLeftCap:!1,ticks:`linear`},difference:{colorLevels:[-350,-300,-250,-200,-150,-100,-50,50,100,150,200,250,300,350]},spread:{colorLevels:[0,100,200,300,400,500]}},colorPrimary:`rgb(200,50,0)`,nameLegend:`Positive Warm Nose Aloft`,namePublic:`Bourgouin Pos`,nameShort:`Bourgouin Pos`,roundto:0,units:`J/kg`},Ua={defaults:`default`,colorBars:{default:{colorLevels:[-500,-200,-50,0],colors:[`rgb(173,0,255)`,`rgb(0,50,255)`,`rgb(135,233,255)`,`rgba(0,0,0,0)`],colorType:`scaleLinear`,contourLevels:[-500,-400,-300,-200,-100,0],ticks:`linear`},difference:{colorLevels:[-350,-300,-250,-200,-150,-100,-50,50,100,150,200,250,300,350]},spread:{colorLevels:[0,100,200,300,400,500]}},colorPrimary:`rgb(200,50,0)`,nameLegend:`Negative Near Surface Cold Layer`,namePublic:`Bourgouin Neg`,nameShort:`Bourgouin Neg`,roundto:0,units:`J/kg`},Wa={defaults:`default`,colorBars:{default:{colorLevels:[.1,.2,.3,.4,.5,.7,1,1.5,2,2.5,3,5,10,15,20,30],colors:[`rgb(164,43,163)`,`rgb(164,43,163)`,`rgb(190,80,190)`,`rgb(220,120,210)`,`rgb(255,153,255)`,`rgb(220,75,125)`,`rgb(200,0,0)`,`rgb(220,180,10)`,`rgb(255,255,0)`,`rgb(255,255,100)`,`rgb(255,255,200)`,`rgb(100,100,100)`,`rgb(150,150,150)`,`rgb(175,175,175)`,`rgb(200,200,200)`,`rgb(225,225,225)`,`rgba(0,0,0,0)`],colorType:`scaleThreshold`,contourLevels:[.1,.2,.3,.4,.5,.7,1,1.5,2,2.5,3,5,10,15,30],isLeftCap:!0,ticks:`byColorLevels`}},colorPrimary:`rgb(140,140,160)`,nameLegend:`Ceiling Height`,namePublic:`Ceiling Height`,nameShort:`Ceil`,roundto:1,units:`kft`},Ga={defaults:`ceilingAGL`,nameLegend:`Ceiling Height MSL`,namePublic:`Ceiling Height MSL`,nameShort:`Ceil`},Ka={defaults:`default`,colorBars:{default:{colorLevels:[0,1,25,100,200,250],colors:[`rgba(0,0,0,0)`,`rgba(0,0,0,0)`,`rgb(255, 240, 204)`,`rgb(252, 229, 184)`,`rgb(172, 120, 0)`,`rgb(78, 49, 14)`],colorType:`scaleLinear`,contourLevels:[5,25,50,100,150,200,250],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(200,153,100)`,nameLegend:`Near Surface Fine Dust`,namePublic:`Near Surface Fine Dust`,nameShort:`Fine Dust`,roundto:0,units:`µg/m^3`},qa={defaults:`dustFineSfc`,colorPrimary:`rgb(135,90,50)`,nameLegend:`Vertically Integrated Fine Dust`,namePublic:`Vertically Integrated Fine Dust`,nameShort:`Fine Dust VI`,units:`mg/m^2`},Ja={defaults:`dustFineSfc`,colorPrimary:`rgb(200,153,100)`,nameLegend:`Near Surface Coarse Dust`,namePublic:`Near Surface Coarse Dust`,nameShort:`Coarse Dust`,units:`µg/m^3`},Ya={defaults:`dustFineSfc`,colorPrimary:`rgb(135,90,50)`,nameLegend:`Vertically Integrated Coarse Dust`,namePublic:`Vertically Integrated Coarse Dust`,nameShort:`Coarse Dust`,units:`mg/m^2`},Xa={defaults:`default`,colorBars:{default:{colorLevels:[.1,.2,.3,.4,.5,.7,1,1.5,2,3,4,5,6,8,10,12,14],colors:[`rgb(164,43,163)`,`rgb(164,43,163)`,`rgb(190,80,190)`,`rgb(220,120,210)`,`rgb(255,153,255)`,`rgb(220,75,125)`,`rgb(200,0,0)`,`rgb(220,180,10)`,`rgb(255,255,0)`,`rgb(255,255,100)`,`rgb(255,255,200)`,`rgb(75,75,75)`,`rgb(100,100,100)`,`rgb(150,150,150)`,`rgb(200,200,200)`,`rgb(225,225,225)`,`rgb(245,245,245)`,`rgba(255,255,255,0.75)`],colorType:`scaleThreshold`,contourLevels:[.1,.2,.3,.4,.5,.7,1,1.5,2,3,4,5,6,8,10,12,14],isLeftCap:!0,ticks:`byColorLevels`}},colorPrimary:`rgb(140,140,160)`,nameLegend:`LCL`,namePublic:`LCL`,nameShort:`LCL`,roundto:1,units:`kft`},Za={defaults:`ceilingAGL`,colorPrimary:`rgb(210,210,210)`,nameLegend:`Lowest Cloud Base`,namePublic:`Lowest Cloud Base`},Qa={defaults:`default`,colorBars:{default:{colorLevels:[0,20,40,60,80,100],colors:[`rgb(0,0,0,0)`,`rgb(94,197,83)`,`rgb(255,247,0)`,`rgb(255,14,22)`,`rgb(149,0,149)`,`rgb(180,160,255)`],colorType:`scaleLinear`,contourLevels:[0,20,40,60,80,100],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(200,0,200)`,nameLegend:`CWASP`,namePublic:`CWASP`,nameShort:`CWASP`,roundto:0,units:`%`},$a={defaults:`default`,colorBars:{default:{colorLevels:[0,10,100,500,1e3,2e3,3e3,5e3],colors:[`rgba(150,150,150,0)`,`rgba(191,191,191,200)`,`rgb(244,242,168)`,`rgb(224,119,48)`,`rgb(192,0,0)`,`rgb(120,34,150)`,`rgb(212,105,182)`,`rgb(255,255,255)`],colorType:`scaleLinear`,contourLevels:[0,10,100,500,1e3,2e3,3e3,5e3],isLeftCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-2e3,-1500,-1e3,-800,-600,-400,-200,200,400,600,800,1e3,1500,2e3]},spread:{colorLevels:[0,100,200,300,400,500]}},colorPrimary:`rgb(255,150,0)`,nameLegend:`Surface CAPE`,namePublic:`CAPE`,nameShort:`CAPE`,roundto:0,units:`J/kg`},eo={defaults:`cape`,nameLegend:`Most Unstable CAPE`,namePublic:`MUCAPE`,nameShort:`MUCAPE`},to={defaults:`default`,colorBars:{default:{colorLevels:[-500,-300,-200,-100,-50,-20],colors:[`rgb(212,105,182)`,`rgb(120,34,150)`,`rgb(192,0,0)`,`rgb(224,119,48)`,`rgb(244,242,168)`,`rgba(0,0,0,0)`],colorType:`scaleLinear`,contourLevels:[-500,-300,-200,-100,-50],isRightCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-600,-500,-400,-300,-200,-100,-500,50,100,200,300,400,500,600]},spread:{colorLevels:[0,100,200,300,400,500]}},colorPrimary:`rgb(255,255,0)`,nameLegend:`Surface CIN`,namePublic:`CIN`,nameShort:`CIN`,roundto:0,units:`J/kg`},no={defaults:`cin`,nameLegend:`Most Unstable CIN`,namePublic:`MUCIN`,nameShort:`MUCIN`},ro={defaults:`default`,colorBars:{default:{colorLevels:[1,2,3,4],colors:[`rgb(150,150,150,0.0)`,`rgb(255,255,0)`,`rgb(253,160,0)`,`rgb(243,70,0)`,`rgb(220,44,2)`],colorType:`scaleThreshold`,contourLevels:[1,2,3,4,5],isLeftCap:!0,ticks:`byColorLevels`}},colorPrimary:`rgb(255,255,0)`,nameLegend:`Ellrod Index`,namePublic:`Ellrod Index`,nameShort:`Ellrod`,roundto:0,units:``},io={defaults:`default`,colorBars:{default:{colorLevels:[0,25,50,75,100],colors:[`rgba(255,233,255,0)`,`rgb(255,233,255)`,`rgb(248,111,85)`,`rgb(253,158,0)`,`rgb(255,255,0)`],colorType:`scaleLinear`,contourLevels:[25,50,75,100],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(201,114,93)`,nameLegend:`Fosberg Index`,namePublic:`Fosberg Index`,nameShort:`Fosberg`,roundto:0,units:``},ao={defaults:`default`,colorBars:{default:{colorLevels:[0,.001,.05,.1,.15,.2,.25,.3],colors:[`rgba(150,150,150,0)`,`rgba(150,150,150,0)`,`rgb(243,234,59)`,`rgb(255,192,0)`,`rgb(255,0,0)`,`rgb(192,0,0)`,`rgb(153,102,255)`,`rgb(114,10,200)`,`rgb(36,5,91)`],colorType:`scaleThreshold`,contourLevels:[.01,.05,.1,.15,.2,.25,.3],isLeftCap:!1,ticks:`byColorLevels`},spread:{colorLevels:[0,.01,.05,.1,.15,.2]}},colorPrimary:`rgb(255, 100, 255)`,nameLegend:`1 Hour Freezing Rain (1:1 ratio)`,namePublic:`1 Hour Freezing Rain (1:1 ratio)`,nameShort:`Frzr`,roundto:2,units:`in`},oo={defaults:`frzr1`,nameLegend:`1 Hour Freezing Rain (FRAM)`,namePublic:`1 Hour Freezing Rain (FRAM)`,nameShort:`Fram`},so={defaults:`frzr1`,colorBars:{default:{colorLevels:[0,.001,.05,.1,.15,.2,.25,.5],contourLevels:[.01,.05,.1,.15,.2,.25,.5]},spread:{colorLevels:[0,.01,.05,.1,.15,.2]}},nameLegend:`6 Hour Freezing Rain (1:1 ratio)`,namePublic:`6 Hour Freezing Rain (1:1 ratio)`},co={defaults:`frzr6`,nameLegend:`6 Hour Freezing Rain (FRAM)`,namePublic:`6 Hour Freezing Rain (FRAM)`,nameShort:`Fram6`},lo={defaults:`frzr1`,colorBars:{default:{colorLevels:[0,.01,.1,.25,.5,.75,1,2],contourLevels:[.01,.1,.25,.5,.75,1,2]},spread:{colorLevels:[0,.05,.1,.25,.5,1]}},nameLegend:`24 Hour Freezing Rain (1:1 ratio)`,namePublic:`24 Hour Freezing Rain (1:1 ratio)`},uo={defaults:`frzr24`,nameLegend:`24 Hour Freezing Rain (FRAM)`,namePublic:`24 Hour Freezing Rain (FRAM)`,nameShort:`Fram24`},fo={defaults:`frzr24`,nameLegend:`48 Hour Freezing Rain`,namePublic:`48 Hour Freezing Rain`},po={defaults:`frzr24`,nameLegend:`72 Hour Freezing Rain`,namePublic:`72 Hour Freezing Rain`},mo={defaults:`frzr24`,nameLegend:`Accumulated Freezing Rain (1:1 ratio)`,namePublic:`Accumulated Freezing Rain (1:1 ratio)`},ho={defaults:`fram24`,nameLegend:`Accumulated Freezing Rain (FRAM)`,namePublic:`Accumulated Freezing Rain (FRAM)`,nameShort:`Framtotal`},go={defaults:`default`,colorBars:{default:{colorLevels:[0,1,2,3,4],colors:[`rgba(150,150,150,0)`,`rgba(150,150,150,0)`,`rgb(64,202,52)`,`rgb(246,247,41)`,`rgb(244,172,42)`,`rgb(255,0,0)`],colorType:`scaleThreshold`,contourLevels:[1,2,3,4],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(247,255,59)`,isZeroLowerBound:!0,nameLegend:`Freezing Spray`,namePublic:`Freezing Spray`,nameShort:`Frzr Spray`,roundto:0,units:``},_o={defaults:`default`,colorBars:{default:{colorLevels:[-6.5,-5.5,-4.5,-3.5,-2.5,-1.5,-.5,.5,1.5,2.5,3.5,4.5,5.5,6.5],colors:[`rgb(0,0,70)`,`rgb(36,56,119)`,`rgb(68,106,161)`,`rgb(100,152,195)`,`rgb(132,185,216)`,`rgb(164,207,228)`,`rgba(194,227,239,200)`,`rgba(255,255,255,0)`,`rgba(254,195,118,200)`,`rgb(252,163,95)`,`rgb(247,128,76)`,`rgb(234,93,59)`,`rgb(199,61,41)`,`rgb(148,29,24)`,`rgb(84,0,0)`],colorType:`scaleThreshold`,contourLevels:[-5,-4,-3,-2,-1,1,2,3,4,5],ticks:`linear`}},colorPrimary:`var(--fontcolor)`,nameLegend:`700 mb Frontogenesis`,namePublic:`700 mb Frontogenesis`,nameShort:`700mb fgen`,roundto:1,units:`K/100km/3h`},vo={defaults:`front700`,nameLegend:`850 mb Frontogenesis`,namePublic:`850 mb Frontogenesis`,nameShort:`850mb fgen`},yo={defaults:`default`,colorBars:{default:{colorLevels:[0,10,25,50],colors:[`rgba(150,150,150,0)`,`rgb(255,255,42)`,`rgb(255,80,0)`,`rgb(88,0,0)`],colorType:`scaleLinear`,contourLevels:[10,20,30,40,50],isLeftCap:!1,ticks:`linear`}},colorPrimary:`var(--fontcolor)`,nameLegend:`500 mb Vorticity`,namePublic:`500 mb Vorticity`,nameShort:`500mb Vort`,roundto:0,units:`1/s`},bo={defaults:`default`,colorBars:{default:{colorLevels:[996,1044,1092,1140],colors:[`rgb(93,40,134)`,`rgb(0,112,192)`,`rgb(253,255,153)`,`rgb(192,0,0)`],colorType:`scaleLinear`,contourLevels:[996,1008,1020,1032,1044,1056,1068,1080,1092,1104,1116,1128,1140],ticks:`linear`},difference:{colorLevels:[-28,-24,-20,-16,-12,-8,-4,4,8,12,16,20,24,28]}},colorPrimary:`var(--fontcolor)`,nameLegend:`250 mb Height`,namePublic:`250 mb Height`,nameShort:`250mb Hgt`,roundto:1,roundtoReadout:0,units:`dam`},xo={defaults:`default`,colorBars:{default:{colorLevels:[880,920,960,980],colors:[`rgb(93,40,134)`,`rgb(0,112,192)`,`rgb(253,255,153)`,`rgb(192,0,0)`],colorType:`scaleLinear`,contourLevels:[880,920,980],ticks:`linear`},difference:{colorLevels:[-20,-15,-10,-8,-6,-4,-2,2,4,6,8,10,15,20]}},colorPrimary:`var(--fontcolor)`,nameLegend:`300 mb Height`,namePublic:`300 mb Height`,nameShort:`300mb Hgt`,roundto:1,roundtoReadout:0,units:`dam`},So={defaults:`gh300`,colorBars:{default:{colorLevels:[500,540,580,600],contourLevels:[498,504,510,516,522,528,534,540,546,552,558,564,570,576,582,588,594,600,606,612,618,624]}},nameLegend:`500 mb Height`,namePublic:`500 mb Height`,nameShort:`500 mb Hgt`},Co={defaults:`gh300`,colorBars:{default:{colorLevels:[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100],colors:[`rgb(7,21,81)`,`rgb(5,47,96)`,`rgb(16,69,126)`,`rgb(28,92,158)`,`rgb(41,113,178)`,`rgb(55,131,186)`,`rgb(73,151,197)`,`rgb(107,172,208)`,`rgba(138,192,219)`,`rgba(167,207,228)`,`rgba(0, 0, 0, 0)`,`rgb(0,0,0,0)`,`rgb(253,224,207)`,`rgb(250,204,180)`,`rgb(247,183,153)`,`rgb(241,158,124)`,`rgb(228,128,102)`,`rgb(216,101,81)`,`rgb(201,70,65)`,`rgb(185,39,50)`,`rgb(164,19,40)`,`rgb(131,9,34)`],colorType:`scaleThreshold`,contourLevels:[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100],isLeftCap:!0,isRightCap:!1,ticks:`byColorLevels`}},nameLegend:`500 mb Height Climatology`,namePublic:`500 mb Height Climatology`,nameShort:`500 mb Hgt Climo`,"roundto-readout_percentage":0,units:`percentile`},wo={defaults:`gh300`,colorBars:{default:{colorLevels:[276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357],colors:`rgb(218,218,235).rgb(201,199,224).rgb(185,183,217).rgb(173,159,204).rgb(119,159,200).rgb(133,177,214).rgb(151,195,223).rgb(173,210,232).rgb(201, 225, 238).rgb(223,235,246).rgb(134,191,153).rgb(150,208,166).rgb(178,222,179).rgb(204,234,201).rgb(224,242,220).rgb(240,249,238).rgb(254,241,228).rgb(253,229,204).rgb(253, 210, 173).rgb(253, 192, 148).rgb(252,173,155).rgb(246,147,139).rgb(226,128,131).rgb(206,123,126).rgb(185, 183, 217).rgb(201,199,224).rgb(218,218,235).rgb(234,234,244).rgb(246, 245, 249)`.split(`.`),colorType:`scaleThreshold`,contourLevels:[273,276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357],ticks:`byColorLevels`},spread:{colorLevels:[0,5,10,15,20,25,30]}},nameLegend:`850 mb Equivalent Potential Temperature`,namePublic:`850 mb Equivalent Potential Temperature`,nameShort:`850 mb Theta-E`,units:`K`},To={defaults:`gh300`,colorBars:{default:{colorLevels:[276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357],colors:`rgb(218,218,235).rgb(201,199,224).rgb(185,183,217).rgb(173,159,204).rgb(119,159,200).rgb(133,177,214).rgb(151,195,223).rgb(173,210,232).rgb(201,225,238).rgb(223,235,246).rgb(134,191,153).rgb(150,208,166).rgb(178,222,179).rgb(204,234,201).rgb(224,242,220).rgb(240,249,238).rgb(254,241,228).rgb(253,229,204).rgb(253,210,173).rgb(253,192,148).rgb(252,173,155).rgb(246,147,139).rgb(226,128,131).rgb(206,123,126).rgb(185,183,217).rgb(201,199,224).rgb(218,218,235).rgb(234,234,244).rgb(246,245,249)`.split(`.`),colorType:`scaleThreshold`,contourLevels:[276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357],ticks:`byColorLevels`},spread:{colorLevels:[0,5,10,15,20,25,30]}},nameLegend:`925 mb Equivalent Potential Temperature`,namePublic:`925 mb Equivalent Potential Temperature`,nameShort:`925 mb Theta-E`,units:`K`},Eo={defaults:`gh300`,colorBars:{default:{colorLevels:[276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357],colors:`rgb(218,218,235).rgb(201,199,224).rgb(185,183,217).rgb(173,159,204).rgb(119,159,200).rgb(133,177,214).rgb(151,195,223).rgb(173,210,232).rgb(201,225,238).rgb(223,235,246).rgb(134,191,153).rgb(150,208,166).rgb(178,222,179).rgb(204,234,201).rgb(224,242,220).rgb(240,249,238).rgb(254,241,228).rgb(253,229,204).rgb(253,210,173).rgb(253,192,148).rgb(252,173,155).rgb(246,147,139).rgb(226,128,131).rgb(206,123,126).rgb(185,183,217).rgb(201,199,224).rgb(218,218,235).rgb(234,234,244).rgb(246,245,249)`.split(`.`),colorType:`scaleThreshold`,contourLevels:[276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357],ticks:`byColorLevels`},spread:{colorLevels:[0,5,10,15,20,25,30]}},nameLegend:`Surface Equivalent Potential Temperature`,namePublic:`Surface Equivalent Potential Temperature`,nameShort:`Surface Theta-E`,units:`K`},Do={defaults:`gh300`,colorBars:{default:{colorLevels:[260,280,310,330],contourLevels:[261,264,267,270,273,276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330]}},nameLegend:`700 mb Height`,namePublic:`700 mb Height`,nameShort:`700mb Hgt`},Oo={defaults:`gh300`,colorBars:{default:{colorLevels:[120,132,147,165],contourLevels:[120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,165]}},nameLegend:`850 mb Height`,namePublic:`850 mb Height`,nameShort:`850mb Hgt`},ko={defaults:`gh300`,colorBars:{default:{colorLevels:[45,63,78,87],contourLevels:[33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99]}},nameLegend:`925 mb Height`,namePublic:`925 mb Height`,nameShort:`925mb Hgt`},Ao={defaults:`gh500`,nameLegend:`Isobaric Height`,namePublic:`Isobaric Height`,nameShort:`Isobaric Height`},jo={defaults:`default`,colorBars:{default:{colorLevels:[0,1,2,3,4,5,6,7],colors:[`rgba(150,150,150,0)`,`rgba(150,150,150,0)`,`rgb(64,202,52)`,`rgb(246,247,41)`,`rgb(244,172,42)`,`rgb(255,0,0)`,`rgb(150,0,0)`,`rgb(200,0,200)`,`rgb(255,255,255)`],colorType:`scaleThreshold`,contourLevels:[1,2,3,4],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(247,135,59)`,isZeroLowerBound:!0,nameLegend:`Haines`,namePublic:`Haines`,nameShort:`Haines`,roundto:0,units:``},Mo={defaults:`default`,colorBars:{default:{colorLevels:[.1,.2,.4,.6,.8,1,1.2,1.4,1.6,1.8,2,2.4,2.8,3.2,3.6,4,4.4,4.8,5.2,5.6,6,6.4,6.8,7.2,7.6,8],colors:`rgba(150,150,150,0).rgb(204,204,204).rgb(178,178,178).rgb(153,153,153).rgb(127,127,127).rgb(102,102,102).rgb(127,178,255).rgb(102,146,235).rgb(76,114,216).rgb(50,82,197).rgb(25,51,178).rgb(127,255,127).rgb(98,216,98).rgb(70,178,70).rgb(41,140,41).rgb(12,102,12).rgb(255,255,102).rgb(232,197,76).rgb(210,140,51).rgb(188,82,25).rgb(165,25,0).rgb(255,153,255).rgb(224,123,224).rgb(193,94,193).rgb(132,36,132).rgb(102,7,102).rgb(102,7,102)`.split(`.`),colorType:`scaleThreshold`,contourLevels:[.1,.2,.3,.4,.5,1,2,3,4,5,6,7,8],isLeftCap:!1,ticks:`linear`},difference:{colorLevels:[-1.4,-1.2,-1,-.8,-.6,-.4,-.2,.2,.4,.6,.8,1,1.2,1.4]},spread:{colorLevels:[0,.2,.4,.6,.8,1]}},colorPrimary:`rgb(250,0,0)`,nameLegend:`STP (fixed layer)`,namePublic:`STP (fixed layer)`,nameShort:`STP`,roundto:1,units:``},No={defaults:`default`,colorBars:{default:{colorLevels:[.01,.02,.5,1,2,4,5],colors:[`rgba(150,150,150,0)`,`rgb(255,255,255)`,`rgb(255,200,100)`,`rgb(255, 195, 0)`,`rgb(199, 0, 57)`,`rgb(200, 0, 200)`,`rgb(100, 0, 100)`],colorType:`scaleLinear`,contourLevels:[.01,.02,.5,1,2,4,5,10],isLeftCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-6,-5,-4,-3,-2,-1,-.5,.5,1,2,3,4,5,6]}},colorPrimary:`rgb(255,144,0)`,nameLegend:`Lightning`,namePublic:`Lightning`,nameShort:`Lightning`,roundto:2,units:`flashes / km^2 / 5 min`},Po={defaults:`default`,colorBars:{default:{colorLevels:[0,1,3,5,7,10,15],colors:[`rgba(150,150,150,0)`,`rgb(150,150,150)`,`rgb(0,190,255)`,`rgb(255,255,0)`,`rgb(255,0,0)`,`rgb(255,0,255)`,`rgb(100,0,100)`],colorType:`scaleLinear`,contourLevels:[1,2,3,4,5,7,10,15],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(200,200,200)`,nameLegend:`Mixing Height`,namePublic:`Mixing Height`,nameShort:`Mix Hgt`,roundto:1,units:`kft`},Fo={defaults:`default`,colorBars:{default:{colorLevels:[970,1e3,1030],colors:[`rgb(49,54,149)`,`rgb(255,255,191)`,`rgb(165,0,38)`],colorType:`scaleLinear`,contourLevels:[904,908,912,916,920,924,928,932,936,940,944,948,952,956,960,964,968,972,976,980,984,988,992,996,1e3,1004,1008,1012,1016,1020,1024,1028,1032,1036,1040,1044],ticks:`linear`}},colorPrimary:`rgb(200,200,200)`,nameLegend:`MSLP`,namePublic:`Mean Sea Level Pressure`,nameShort:`MSLP`,roundto:1,roundtoReadout:0,units:`mb`},Io={defaults:`default`,colorBars:{default:{colorLevels:[700,800,900,1e3,1030],colors:[`rgb(165,0,38)`,`rgb(255,255,191)`,`rgb(49,54,149)`,`rgb(49, 142, 149)`,`rgb(97,97,97)`],colorType:`scaleLinear`,contourLevels:[0,1e3,2e3,3e3,4e3],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(200,200,200)`,nameLegend:`Terrain Height`,namePublic:`Terrain Height`,nameShort:`Terrain hgt`,roundto:0,units:`m`},Lo={defaults:`default`,colorBars:{default:{colorLevels:[700,800,900,1e3,1030],colors:[`rgb(97,97,97)`,`rgb(49, 142, 149)`,`rgb(49,54,149)`,`rgb(255,255,191)`,`rgb(165,0,38)`],colorType:`scaleLinear`,contourLevels:[904,908,912,916,920,924,928,932,936,940,944,948,952,956,960,964,968,972,976,980,984,988,992,996,1e3,1004,1008,1012,1016,1020,1024,1028,1032,1036,1040,1044],ticks:`linear`}},colorPrimary:`rgb(200,200,200)`,nameLegend:`Surface Pressure`,namePublic:`Surface Pressure`,nameShort:`sfc pres`,roundto:0,units:`mb`},Ro={defaults:`default`,colorBars:{default:{colorLevels:[0,1],colors:[`rgba(150,150,150,0)`,`rgb(0,0,255)`],colorType:`scaleLinear`,contourLevels:[.1,.25,.5,.75,1],isLeftCap:!1,isRightCap:!1,ticks:`linear`},spread:{colorLevels:[0,.25,.5,1]}},colorPrimary:`rgba(0, 130, 255, 1)`,nameLegend:`Probabilistic Snowfall`,namePublic:`Probabilistic Snowfall`,nameShort:`pSnow`,roundto:0,units:`%`},zo={defaults:`psnow`,nameLegend:`Conditional Snowfall`,namePublic:`Conditional Snowfall`,nameShort:`cSnow`},Bo={defaults:`default`,colorBars:{default:{colorLevels:[0,1],colors:[`rgba(150,150,150,0)`,`rgb(0,255,0)`],colorType:`scaleLinear`,contourLevels:[.1,.25,.5,.75,1],isLeftCap:!1,isRightCap:!1,ticks:`linear`},spread:{colorLevels:[0,.25,.5,1]}},colorPrimary:`rgb(35,187,118)`,nameLegend:`Probabilistic Rain`,namePublic:`Probabilistic Rain`,nameShort:`pRain`,roundto:0,units:`%`},Vo={defaults:`prain`,nameLegend:`Conditional Rain`,namePublic:`Conditional Rain`,nameShort:`cRain`},Ho={defaults:`default`,colorBars:{default:{colorLevels:[0,1],colors:[`rgba(150,150,150,0)`,`rgb(255,0,255)`],colorType:`scaleLinear`,contourLevels:[.1,.25,.5,.75,1],isLeftCap:!1,isRightCap:!1,ticks:`linear`},spread:{colorLevels:[0,.25,.5,1]}},colorPrimary:`rgb(102, 0, 204)`,nameLegend:`Probabilistic Sleet`,namePublic:`Probabilistic Sleet`,nameShort:`pSleet`,roundto:0,units:`%`},Uo={defaults:`picep`,nameLegend:`Conditional Sleet`,namePublic:`Conditional Sleet`,nameShort:`cSleet`},Wo={defaults:`default`,colorBars:{default:{colorLevels:[0,1],colors:[`rgba(150,150,150,0)`,`rgb(255,50,0)`],colorType:`scaleLinear`,contourLevels:[.1,.25,.5,.75,1],isLeftCap:!1,isRightCap:!1,ticks:`linear`},spread:{colorLevels:[0,.25,.5,1]}},colorPrimary:`rgb(255, 100, 255)`,nameLegend:`Probabilistic Freezing Rain`,namePublic:`Probabilistic Freezing Rain`,nameShort:`pFrzr`,roundto:0,units:`%`},Go={defaults:`pfrzr`,nameLegend:`Conditional Freezing Rain`,namePublic:`Conditional Freezing Rain`,nameShort:`cFrzr`},Ko={defaults:`default`,roundto:0,units:`hPa`},qo={defaults:`default`,colorBars:{default:{colorLevels:[0,.5,1,1.5,2,2.5,3],colors:[`rgb(100, 54, 2)`,`rgb(171, 93, 3)`,`rgb(255, 255, 255)`,`rgb(42, 137, 129)`,`rgb(41, 100, 144)`,`rgb(40, 66, 157)`,`rgb(6, 19, 68)`],colorType:`scaleLinear`,contourLevels:[.25,.5,.75,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5],isLeftCap:!1,ticks:`linear`},difference:{colorLevels:[-2,-1,-.75,-.5,-.25,-.1,-.05,.05,.1,.25,.5,.75,1,2]},spread:{colorLevels:[0,.1,.25,.5,.75,1]}},colorPrimary:`rgb(0,200,0)`,nameLegend:`Precipitable Water`,namePublic:`Precipitable Water`,nameShort:`PW`,roundto:2,units:`in`},Jo={defaults:`default`,colorBars:{default:{colorLevels:[0,.01,.05,.1,.15,.2,.25,.5,.75,1,1.5,2,2.5,3,3.5,4,5],colors:[`rgba(150,150,150,0)`,`rgba(150,150,150,0)`,`rgb(199,233,192)`,`rgb(161,217,155)`,`rgb(116,196,118)`,`rgb(49,163,83)`,`rgb(0,109,44)`,`rgb(255,250,138)`,`rgb(255,204,79)`,`rgb(254,141,60)`,`rgb(252,78,42)`,`rgb(214,26,28)`,`rgb(173,0,38)`,`rgb(112,0,38)`,`rgb(59,0,48)`,`rgb(76,0,115)`,`rgb(100,100,255)`,`rgb(175,175,255)`],colorType:`scaleThreshold`,contourLevels:[.01,.05,.1,.15,.2,.25,.5,.75,1,1.5,2,2.5,3,3.5,4,5],isLeftCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-.5,-.25,-.2,-.15,-.1,-.05,-.01,.01,.05,.1,.15,.2,.25,.5]},spread:{colorLevels:[0,.05,.1,.25,.5,1]}},colorPrimary:`rgb(50,255,50)`,nameLegend:`1 hr Precipitation`,namePublic:`1 hr Precipitation`,nameShort:`1hr Precip`,roundto:2,units:`in`},Yo={defaults:`p1`,nameLegend:`2 hr Precipitation`,namePublic:`2 hr Precipitation`,nameShort:`2hr Precip`},Xo={defaults:`p1`,colorBars:{default:{colorLevels:[0,.01,.1,.25,.5,.75,1,1.5,2,3,4,5,6,7,8,10,15],contourLevels:[.01,.1,.25,.5,.75,1,1.5,2,3,4,5,6,7,8,10,15]},difference:{colorLevels:[-2,-1,-.75,-.5,-.25,-.1,-.01,.01,.1,.25,.5,.75,1,2]},spread:{colorLevels:[0,.05,.1,.25,.5,1]}},nameLegend:`3 hr Precipitation`,namePublic:`3 hr Precipitation`,nameShort:`3hr Precip`},Zo={defaults:`p1`,colorBars:{default:{colorLevels:[0,.01,.1,.25,.5,.75,1,1.5,2,3,4,5,6,7,8,10,15],contourLevels:[.01,.1,.25,.5,.75,1,1.5,2,3,4,5,6,7,8,10,15]},difference:{colorLevels:[-2,-1,-.75,-.5,-.25,-.1,-.01,.01,.1,.25,.5,.75,1,2]},spread:{colorLevels:[0,.05,.1,.25,.5,1]}},nameLegend:`6 hr Precipitation`,namePublic:`6 hr Precipitation`,nameShort:`6hr Precip`},Qo={defaults:`p6`,nameLegend:`QMD 6 hr Precipitation`,namePublic:`6 hr Precipitation`,nameShort:`QMD 6hr Precip`},$o={defaults:`p6`},es={defaults:`default`,colorBars:{default:{colorLevels:[0,1,2,3,4,6,8,10,20,30,40,50,75,100,150,250,500,750,1e3],colors:[`rgba(94, 79, 162, 0)`,`rgba(94, 79, 162, 0)`,`rgba(63, 120, 181, 1)`,`rgba(72, 161, 179, 1)`,`rgba(112, 198, 165, 1)`,`rgba(161, 217, 164, 1)`,`rgba(205, 235, 157, 1)`,`rgba(237, 248, 163, 1)`,`rgba(255, 255, 191, 1)`,`rgba(254, 233, 154, 1)`,`rgba(254, 203, 121, 1)`,`rgba(252, 165, 93, 1)`,`rgba(245, 118, 71, 1)`,`rgba(226, 82, 74, 1)`,`rgba(197, 45, 75, 1)`,`rgba(158, 1, 66, 1)`,`rgba(120, 0, 120, 1)`,`rgba(77, 0, 153,1)`,`rgba(50, 0, 100, 1)`,`rgba(0, 0, 0, 1)`],colorType:`scaleThreshold`,contourLevels:[0,1,2,3,4,6,8,10,20,30,40,50,75,100,150,250,500,750,1e3],isLeftCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-50,-40,-30,-20,-10,-5,-1,1,5,10,20,30,40,50]},spread:{colorLevels:[0,1,5,10,25,50]}},colorPrimary:`rgb(50,255,50)`,nameLegend:`6 hr Precip ARI`,namePublic:`6 hr Precipitation ARI`,nameShort:`6hr Precip ARI`,roundto:0,units:`yr`},ts={defaults:`p6_ari`},ns={defaults:`p6`,nameLegend:`12 hr Precipitation`,namePublic:`12 hr Precipitation`,nameShort:`12hr Precip`},rs={defaults:`p12`},is={defaults:`p6`,colorBars:{default:{colorLevels:[0,.01,.1,.25,.5,.75,1,1.5,2,3,4,5,6,8,10,15,20],contourLevels:[.01,.1,.25,.5,.75,1,1.5,2,3,4,5,6,8,10,15,20]},difference:{colorLevels:[-2,-1,-.75,-.5,-.25,-.1,-.01,.01,.1,.25,.5,.75,1,2]},spread:{colorLevels:[0,.1,.25,.5,1,2]}},nameLegend:`24 hr Precipitation`,namePublic:`24 hr Precipitation`,nameShort:`24hr Precip`},as={defaults:`p24`,nameLegend:`QMD 24 hr Precipitation`,namePublic:`24 hr Precipitation`,nameShort:`QMD 24hr Precip`},os={defaults:`p6_ari`,nameLegend:`24 hr Precip ARI`,namePublic:`24 hr Precipitation ARI`,nameShort:`24hr Precip ARI`},ss={defaults:`p24`,colorBars:{default:{colorLevels:[0,.01,.1,.25,.5,1,1.5,2,3,4,6,8,10,15,20,30,50],contourLevels:[.01,.1,.25,.5,1,1.5,2,3,4,6,8,10,15,20,30,50]},difference:{colorLevels:[-8,-4,-2,-1,-.5,-.25,-.1,.1,.25,.5,1,2,4,8]},spread:{colorLevels:[0,.25,.5,1,2,3]}},nameLegend:`Accumulated Precipitation`,namePublic:`Accumulated Precipitation`,nameShort:`Acc Precip`,roundto:2},cs={defaults:`ptotal`},ls={defaults:`ptotal`,nameLegend:`48 hr Precipitation`,namePublic:`48 hr Precipitation`,nameShort:`48hr Precip`},us={defaults:`p6_ari`,nameLegend:`48 hr Precip ARI`,namePublic:`48 hr Precipitation ARI`,nameShort:`48hr Precip ARI`},ds={defaults:`ptotal`,nameLegend:`72 hr Precipitation`,namePublic:`72 hr Precipitation`,nameShort:`72hr Precip`},fs={defaults:`p6_ari`,nameLegend:`72 hr Precip ARI`,namePublic:`72 hr Precipitation ARI`,nameShort:`72hr Precip ARI`},ps={defaults:`default`,colorBars:{default:{colorLevels:[.5,2.5,3.5,4.5,5.5],colors:[`rgb(150,150,150,0)`,`rgb(0,113,254)`,`rgb(255,255,0)`,`rgb(255,170,1)`,`rgb(254,0,0)`,`rgb(254,0,0)`],colorType:`scaleThreshold`,contourLevels:[1,2,3,4,5,6,7,8,9,10,11,12,15,18,21],isLeftCap:!1,tickAngle:-90,ticks:`byColorLevels`,tickValues:[`< 3 feet`,`> 3 feet`,`> 6 feet`,`> 9 feet`]}},colorPrimary:`rgb(255,0,0)`,comment:`Values found here https://www.nhc.noaa.gov/gis/inundation/potential_storm_surge_flooding_downloads_guide.pdf`,nameLegend:`Storm Surge`,namePublic:`Storm Surge`,nameShort:`Storm Surge`,roundto:1,units:`class`},ms={defaults:`default`,colorBars:{default:{colorLevels:[1,5,10,15,20,25,30,35,40,45,50,55,60,65,70],colors:[`rgba(150,150,150,0)`,`rgba(0,255,255,0.2)`,`rgba(0,233,231,0.5)`,`rgb(5,158,244)`,`rgb(11,0,244)`,`rgb(16,253,3)`,`rgb(8,197,2)`,`rgb(0,142,1)`,`rgb(253,248,4)`,`rgb(230,188,14)`,`rgb(253,138,2)`,`rgb(253,2,3)`,`rgb(212,1,6)`,`rgb(188,1,0)`,`rgb(248,3,254)`,`rgb(230,230,230)`],colorType:`scaleThreshold`,contourLevels:[1,5,10,15,20,25,30,35,40,45,50,55,60,65,70],isLeftCap:!0,ticks:`byColorLevels`},difference:{colorLevels:[-40,-30,-25,-20,-15,-10,-5,5,10,15,20,25,30,40]}},colorPrimary:`rgb(0,220,150)`,nameLegend:`Composite Reflectivity`,namePublic:`Composite Reflectivity`,nameShort:`Ref`,roundto:0,units:`dBZ`},hs={defaults:`refc`,nameLegend:`Max 1 hr Reflectivity`,namePublic:`Max 1 hr Reflectivity`,nameShort:`Refc`},gs={defaults:`default`,colorBars:{default:{colorLevels:[1,5,10,15,20,25,30,35,40,45,50,55,60,65,70],colors:[`rgba(150,150,150,0)`,`rgba(0,255,255,0.2)`,`rgba(0,233,231,0.5)`,`rgb(5,158,244)`,`rgb(11,0,244)`,`rgb(16,253,3)`,`rgb(8,197,2)`,`rgb(0,142,1)`,`rgb(253,248,4)`,`rgb(230,188,14)`,`rgb(253,138,2)`,`rgb(253,2,3)`,`rgb(212,1,6)`,`rgb(188,1,0)`,`rgb(248,3,254)`,`rgb(230,230,230)`],colorType:`scaleThreshold`,contourLevels:[1,5,10,15,20,25,30,35,40,45,50,55,60,65,70],isLeftCap:!0,ticks:`byColorLevels`},difference:{colorLevels:[-40,-30,-25,-20,-15,-10,-5,5,10,15,20,25,30,40]}},colorPrimary:`rgb(0,220,220)`,nameLegend:`18 dBZ Echo Top`,namePublic:`18 dBZ Echo Top`,nameShort:`Echo Top`,roundto:0,units:`kft`},_s={defaults:`default`,colorBars:{default:{colorLevels:[5,7.5,10,12.5,15,17.5,20,22.5,25,27.5,30,32.5,35,37.5,40,50,60,70,80,90],colors:[`rgb(171,115,122)`,`rgb(205,123,126)`,`rgb(227,128,131)`,`rgb(240,146,139)`,`rgb(243,172,154)`,`rgb(244,172,125)`,`rgb(247,192,148)`,`rgb(249,210,173)`,`rgb(252,229,204)`,`rgb(179,179,179)`,`rgb(198,198,198)`,`rgb(218,218,218)`,`rgb(234,234,234)`,`rgb(246,246,246)`,`rgb(255,255,255)`,`rgb(236,244,250)`,`rgb(223,235,246)`,`rgb(202,225,238)`,`rgb(174,210,232)`,`rgb(152,195,223)`,`rgb(133,177,214)`],colorType:`scaleThreshold`,contourLevels:[0,5,10,15,20,25,30,40,50,60,70,80,90,100],ticks:`linear`},difference:{colorLevels:[-40,-30,-25,-20,-15,-10,-5,5,10,15,20,25,30,40]},spread:{colorLevels:[0,5,10,15,20,25]}},colorPrimary:`rgb(252,98,3)`,isZeroLowerBound:!0,nameLegend:`2m Relative Humidity`,namePublic:`Relative Humidity`,nameShort:`RH`,roundto:0,units:`%`},vs={defaults:`rh2`,nameLegend:`Isobaric RH`,namePublic:`Isobaric RH`,nameShort:`Isobaric RH`},ys={defaults:`rh2`,colorPrimary:`rgb(255,193,7)`,nameLegend:`Relative Humidity`,namePublic:`Max Relative Humidity`,nameShort:`Max RH`},bs={defaults:`rh2`,colorPrimary:`rgb(255,193,7)`,nameLegend:`Lowest Layer Relative Humidity`,namePublic:`Lowest Layer Relative Humidity`,nameShort:`LL RH`},xs={defaults:`rh2`,colorPrimary:`rgb(240,240,0)`,nameLegend:`Relative Humidity`,namePublic:`Min Relative Humidity`,nameShort:`Min RH`},Ss={defaults:`rh2`,colorBars:{spread:{colorLevels:[0,10,20,30,40,50]}},nameLegend:`250 mb RH`,namePublic:`250 mb RH`,nameShort:`250mb RH`},Cs={defaults:`rh2`,colorBars:{spread:{colorLevels:[0,10,20,30,40,50]}},nameLegend:`500 mb RH`,namePublic:`500 mb RH`,nameShort:`500mb RH`},ws={defaults:`rh2`,colorBars:{spread:{colorLevels:[0,10,20,30,40,50]}},nameLegend:`700 mb RH`,namePublic:`700 mb RH`,nameShort:`700mb RH`},Ts={defaults:`rh2`,colorBars:{spread:{colorLevels:[0,10,20,30,40,50]}},nameLegend:`850 mb RH`,namePublic:`850 mb RH`,nameShort:`850mb RH`},Es={defaults:`rh2`,colorBars:{spread:{colorLevels:[0,10,20,30,40,50]}},nameLegend:`925 mb RH`,namePublic:`925 mb RH`,nameShort:`925mb RH`},Ds={defaults:`default`,colorBars:{default:{colorLevels:[0,1,25,50,100,150,200,250],colors:[`rgba(0,0,0,0)`,`rgba(0,0,0,0)`,`rgb(201, 201, 201)`,`rgb(236, 186, 79)`,`rgb(238, 159, 67)`,`rgb(200, 93, 30)`,`rgb(147, 63, 17)`,`rgb(93, 33, 4)`],colorType:`scaleLinear`,contourLevels:[1,25,50,100,150,200,250],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(250,0,0)`,nameLegend:`Near Surface Smoke`,namePublic:`Near Surface Smoke`,nameShort:`Smoke`,roundto:1,roundtoReadout:0,units:`µg/m^3`},Os={defaults:`smokesfc`,nameLegend:`Smoke`,namePublic:`Smoke`,nameShort:`Smoke`},ks={defaults:`default`,colorBars:{default:{colorLevels:[0,1,25,50,100,150,250],colors:[`rgba(0,0,0,0)`,`rgba(0,0,0,0)`,`rgb(201, 201, 201)`,`rgb(236, 186, 79)`,`rgb(238, 159, 67)`,`rgb(200, 93, 30)`,`rgb(93, 33, 4)`],colorType:`scaleLinear`,contourLevels:[1,25,50,100,150,200,250],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(255,0,200)`,nameLegend:`Vertically Integrated Smoke`,namePublic:`Vertically Integrated Smoke`,nameShort:`Smoke`,roundto:1,roundtoReadout:0,units:`mg/m^2`},As={defaults:`default`,colorBars:{default:{colorLevels:[0,.1,.2,.3,.5,.75,1,1.25,1.5,1.75,2,2.5,3],colors:[`rgba(150,150,150,0)`,`rgba(150,150,150,0)`,`rgb(189,215,231)`,`rgb(107,174,214)`,`rgb(49,130,189)`,`rgb(8,81,156)`,`rgb(23,60,148)`,`rgb(255,255,150)`,`rgb(255,196,0)`,`rgb(255,135,0)`,`rgb(219,20,0)`,`rgb(158,0,0)`,`rgb(105,0,0)`,`rgb(50,0,0)`],colorType:`scaleThreshold`,contourLevels:[.1,.2,.3,.5,.75,1,1.25,1.5,1.75,2,2.5,3],isLeftCap:!1,ticks:`byColorLevels`},spread:{colorLevels:[0,.25,.5,1,1.5,2]}},colorPrimary:`rgb(0,150,235)`,nameLegend:`1 Hour Snowfall (10:1)`,namePublic:`1 Hour Snowfall (10:1)`,nameShort:`Snow`,roundto:1,roundtoReadout:1,units:`in10`},js={defaults:`swe1`,nameLegend:`1 Hour Snowfall`,namePublic:`1 Hour Snowfall`,units:`in`},Ms={defaults:`swe1`,nameLegend:`1 Hour Snowfall (maxTAloft)`,units:`in`},Ns={defaults:`swe1`,colorBars:{default:{colorLevels:[0,.1,.5,1,2,3,4,5,6,7,8,9,10],contourLevels:[.1,.5,1,2,3,4,5,6,7,8,9,10]}},colorPrimary:`rgb(0,150,235)`,nameLegend:`3 Hour Snowfall (10:1)`,namePublic:`3 Hour Snowfall (10:1)`,roundto:1,roundtoReadout:0},Ps={defaults:`swe1`,nameLegend:`3 Hour Snowfall (maxTAloft)`,units:`in`},Fs={defaults:`swe1`,colorBars:{default:{colorLevels:[0,.1,.5,1,2,3,4,5,6,7,8,9,10],contourLevels:[.1,.5,1,2,3,4,5,6,7,8,9,10]}},colorPrimary:`rgb(0,150,235)`,nameLegend:`6 Hour Snowfall (10:1)`,namePublic:`6 Hour Snowfall (10:1)`,roundto:1,roundtoReadout:0},Is={defaults:`swe6`,nameLegend:`6 hr Snowfall`,namePublic:`6 hr Snowfall`,units:`in`},Ls={defaults:`swe6`,nameLegend:`6 Hour Snowfall (maxTAloft)`,units:`in`},Rs={defaults:`swe6`,colorBars:{default:{colorLevels:[0,.1,1,2,3,4,6,8,12,18,24,30,36],contourLevels:[.1,1,2,3,4,6,8,12,18,24,30,36]},spread:{colorLevels:[1,2,3,4,5,6]}},nameLegend:`24 Hour Snowfall (10:1)`,namePublic:`24 Hour Snowfall (10:1)`,nameShort:`Snow`},zs={defaults:`swe24`,nameLegend:`24 Hour Snowfall`,namePublic:`24 Hour Snowfall`,units:`in`},Bs={defaults:`swe24`,nameLegend:`24 Hour Snowfall (maxTAloft)`,units:`in`},Vs={defaults:`swe24`,nameLegend:`48 Hour Snowfall`,namePublic:`48 Hour Snowfall`,units:`in`},Hs={defaults:`swe24`,nameLegend:`72 Hour Snowfall`,namePublic:`72 Hour Snowfall`,units:`in`},Us={defaults:`swe24`,colorPrimary:`rgb(0,0,200)`,nameLegend:`Accumulated Snowfall (10:1)`,namePublic:`Accumulated Snowfall (10:1)`,nameShort:`Snow`},Ws={defaults:`swetotal`,nameLegend:`Accumulated Snowfall`,namePublic:`Accumulated Snowfall`,units:`in`},Gs={defaults:`swetotal`,nameLegend:`Accumulated Snowfall (maxTAloft)`,units:`in`},Ks={defaults:`default`,colorBars:{default:{colorLevels:[0,1,2,3,4,6,8,10,15],colors:[`rgb(243,203,254)`,`rgb(255,0,0)`,`rgb(255,150,0)`,`rgb(255,255,0)`,`rgb(100,200,120)`,`rgb(70,118,196)`,`rgb(91,205,240)`,`rgb(205,205,240)`,`rgb(255,255,255)`],colorType:`scaleLinear`,contourLevels:[0,1,2,3,4,6,8,10,15],isLeftCap:!1,ticks:`byColorLevels`},spread:{colorLevels:[0,.5,1,2,3,4]}},colorPrimary:`rgb(200,200,255)`,nameLegend:`Snow Level`,namePublic:`Snow Level`,nameShort:`Snow Level`,roundto:1,units:`kft`},qs={defaults:`default`,colorBars:{default:{colorLevels:[0,5,10,15,20,25,30],colors:[`rgb(0,0,50)`,`rgb(50,106,154)`,`rgb(177,246,249)`,`rgb(229,225,227)`,`rgb(238,153,204)`,`rgb(204,110,139)`,`rgb(155,79,81)`],colorType:`scaleLinear`,contourLevels:[1,5,10,15,20,25,30],isLeftCap:!1,ticks:`byColorLevels`}},colorPrimary:`rgb(200,150,255)`,nameLegend:`Snow Liquid Ratio`,namePublic:`Snow Liquid Ratio`,nameShort:`SLR`,roundto:0,units:``},Js={defaults:`snowlr`,nameLegend:`Snow Liquid Ratio (MaxTAloft)`,namePublic:`Snow Liquid Ratio`,nameShort:`SLR`},Ys={defaults:`default`,colorBars:{default:{colorLevels:[0,300,600,900,1200],colors:[`rgba(0,0,0,0)`,`rgb(255,255,0)`,`rgb(255,155,0)`,`rgb(255,0,0)`,`rgb(100,0,0)`],colorType:`scaleLinear`,contourLevels:[100,300,500,1e3,1500],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(200,0,0)`,nameLegend:`Solar Radiation`,namePublic:`Solar Radiation`,nameShort:`Solar Rad`,roundto:0,units:`W/m^2`},Xs={defaults:`default`,colorBars:{default:{colorLevels:[0,5,10,15,20,30,40,50],colors:[`rgba(0,0,0,0)`,`rgb(0,0,200)`,`rgb(220,220,0)`,`rgb(255,131,0)`,`rgb(255,0,0)`,`rgb(100,0,100)`,`rgb(200,0,200)`,`rgb(255,255,255)`],colorType:`scaleLinear`,contourLevels:[5,10,15,20,25,30,35,40,45,50],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgba(0,0,255,1)`,nameLegend:`Significant Wave Height`,namePublic:`Significant Wave Height`,nameShort:`Wave Hgt`,roundto:0,units:`ft`},Zs={defaults:`sigWave`,colorBars:{default:{colorLevels:[0,3,6,10,15,20,25,30],contourLevels:[3,6,10,15,20,25,30]}},nameLegend:`Wave Height`,namePublic:`Wave Height`},Qs={defaults:`default`,colorBars:{default:{colorLevels:[0,50,100],colors:[`rgb(255,255,229)`,`rgb(161,219,226)`,`rgb(100,125,212)`],colorType:`scaleLinear`,isLeftCap:!1,ticks:`linear`}},nameLegend:`Social Vulnerability Index`,namePublic:`Social Vulnerability Index`,nameShort:`SVI`,roundto:0,units:``},$s={defaults:`default`,colorBars:{default:{colorLevels:[0,1500,3e3],colors:[`rgb(255,255,229)`,`rgb(161,219,226)`,`rgb(100,125,212)`],colorType:`scaleLinear`,ticks:`linear`}},nameLegend:`Population`,namePublic:`Population`,nameShort:`Pop. density`,roundto:0,units:``},ec={defaults:`default`,colorBars:{default:{colorLevels:[0,25,50],colors:[`rgb(255,255,229)`,`rgb(161,219,226)`,`rgb(100,125,212)`],colorType:`scaleLinear`,ticks:`linear`}},nameLegend:`Mobile Homes`,namePublic:`Mobile Homes`,nameShort:`Mobile homes`,roundto:0,units:``},tc={defaults:`default`,colorBars:{default:{colorLevels:[0,10,20],colors:[`rgb(255,255,229)`,`rgb(161,219,226)`,`rgb(100,125,212)`],colorType:`scaleLinear`,ticks:`linear`}},nameLegend:`Limited English Speakers`,namePublic:`Limited English Speakers`,nameShort:`Limited english`,roundto:0,units:``},nc={defaults:`default`,colorBars:{default:{colorLevels:[0,15,30],colors:[`rgb(255,255,229)`,`rgb(161,219,226)`,`rgb(100,125,212)`],colorType:`scaleLinear`,ticks:`linear`}},nameLegend:`Households with no vehicle available`,namePublic:`Households with no vehicle available`,nameShort:`No vehicle`,roundto:0,units:``},rc={defaults:`default`,colorBars:{default:{colorLevels:[0,30,60],colors:[`rgb(255,255,229)`,`rgb(161,219,226)`,`rgb(100,125,212)`],colorType:`scaleLinear`,ticks:`linear`}},nameLegend:`Households without a broadband internet subscription`,namePublic:`Households w/o broadband internet`,nameShort:`No internet`,roundto:0,units:``},ic={defaults:`default`,colorBars:{default:{colorLevels:[0,10,20,30,40,45,50,55,60,65,70,75,80],colors:[`rgb(59,34,4)`,`rgb(84,48,5)`,`rgb(140,82,10)`,`rgb(191,129,45)`,`rgb(204,168,84)`,`rgb(223,194,125)`,`rgb(230,217,181)`,`rgb(211,235,231)`,`rgb(169,219,211)`,`rgb(114,184,173)`,`rgb(49,140,133)`,`rgb(1,102,95)`,`rgb(0,60,48)`,`rgb(0,41,33)`],colorType:`scaleThreshold`,contourLevels:[0,10,20,30,40,45,50,55,60,65,70,75,80],ticks:`linear`},difference:{colorLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14]}},colorPrimary:`var(--graphcolorlight)`,isZeroLowerBound:!0,nameLegend:`2m Dew Point`,namePublic:`Dew Point`,nameShort:`2m Dpt`,roundto:1,roundtoReadout:0,units:`F`},ac={defaults:`d2`,nameLegend:`Isobaric Dew Point`,namePublic:`Isobaric Dew Point`,nameShort:`Isobaric Dew Point`},oc={defaults:`d2`,colorBars:{default:{colorLevels:[-60,-55,-50,-45,-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120],colors:`rgb(145,0,63).rgb(206,18,86).rgb(231,41,138).rgb(223,101,176).rgb(255,115,223).rgb(255,190,232).rgb(250,250,250).rgb(218,218,235).rgb(188,189,220).rgb(158,154,200).rgb(117,107,177).rgb(84,39,143).rgb(13,0,125).rgb(13,61,156).rgb(0,102,194).rgb(41,158,255).rgb(74,199,255).rgb(115,215,255).rgb(173,255,255).rgb(48,207,194).rgb(0,153,150).rgb(18,87,87).rgb(6,109,44).rgb(49,163,84).rgb(116,196,118).rgb(161,217,155).rgb(211,255,190).rgb(255,255,179).rgb(255,237,160).rgb(254,209,118).rgb(254,174,42).rgb(253,141,60).rgb(252,78,42).rgb(227,26,28).rgb(177,0,38).rgb(128,0,38).rgb(89,0,66).rgb(40,0,40)`.split(`.`),contourLevels:[-60,-55,-50,-45,-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120]}},colorPrimary:`rgb(255,0,0)`,nameLegend:`2m Temperature`,namePublic:`Temperature`,nameShort:`2m Temp`},sc={defaults:`t2`,colorBars:{default:{colorLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42],contourLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42]}},nameLegend:`500 mb Temp`,namePublic:`500 mb Temperature`,nameShort:`500 mb Temp`,units:`C`},cc={defaults:`t2`,colorBars:{default:{colorLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42],contourLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42]},difference:{colorLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14]}},nameLegend:`700 mb Temp`,namePublic:`700 mb Temperature`,nameShort:`700 mb Temp`,units:`C`},lc={defaults:`t2`,colorBars:{default:{colorLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42],contourLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42]},difference:{colorLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14]}},nameLegend:`850 mb Temp`,namePublic:`850 mb Temperature`,nameShort:`850 mb Temp`,units:`C`},uc={defaults:`t2`,colorBars:{default:{colorLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42],contourLevels:[-66,-63,-60,-57,-54,-51,-48,-45,-42,-39,-36,-33,-30,-27,-24,-21,-18,-15,-12,-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30,33,36,39,42]},difference:{colorLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14]}},nameLegend:`925 mb Temp`,namePublic:`925 mb Temperature`,nameShort:`925 mb Temp`,units:`C`},dc={defaults:`d2`,colorBars:{default:{colorLevels:[-24,-20,-16,-12,-8,-4,0,4,8,12,16,20,24],colors:[`rgb(59,34,4)`,`rgb(84,48,5)`,`rgb(140,82,10)`,`rgb(191,129,45)`,`rgb(204,168,84)`,`rgb(223,194,125)`,`rgb(230,217,181)`,`rgb(211,235,231)`,`rgb(169,219,211)`,`rgb(114,184,173)`,`rgb(49,140,133)`,`rgb(1,102,95)`,`rgb(0,60,48)`,`rgb(0,41,33)`],contourLevels:[-24,-20,-16,-12,-8,-4,0,4,8,12,16,20,24]},difference:{colorLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14]}},nameLegend:`850 mb Dew Pt`,namePublic:`850 mb Dew Point`,nameShort:`850 mb Dew Pt`,units:`C`},fc={defaults:`d2`,colorBars:{default:{colorLevels:[-24,-20,-16,-12,-8,-4,0,4,8,12,16,20,24],colors:[`rgb(59,34,4)`,`rgb(84,48,5)`,`rgb(140,82,10)`,`rgb(191,129,45)`,`rgb(204,168,84)`,`rgb(223,194,125)`,`rgb(230,217,181)`,`rgb(211,235,231)`,`rgb(169,219,211)`,`rgb(114,184,173)`,`rgb(49,140,133)`,`rgb(1,102,95)`,`rgb(0,60,48)`,`rgb(0,41,33)`],contourLevels:[-24,-20,-16,-12,-8,-4,0,4,8,12,16,20,24]},difference:{colorLevels:[-14,-12,-10,-8,-6,-4,-2,2,4,6,8,10,12,14]}},nameLegend:`925 mb Dew Pt`,namePublic:`925 mb Dew Point`,nameShort:`925 mb Dew Pt`,units:`C`},pc={defaults:`t2`,nameLegend:`Isobaric Temperature`,namePublic:`Isobaric Temperature`,nameShort:`Isobaric Temperature`},mc={defaults:`t2`,nameLegend:`Max Temperature`,namePublic:`Max Temperature`,nameShort:`Max Temp`},hc={defaults:`mx2t12`},gc={defaults:`mx2t12`},_c={defaults:`mx2t12`},vc={defaults:`mx2t12`,colorPrimary:`rgb(100,100,255)`,nameLegend:`Min Temperature`,namePublic:`Min Temperature`,nameShort:`Min Temp`},yc={defaults:`mn2t12`},bc={defaults:`mn2t12`},xc={defaults:`t2`,colorPrimary:`rgb(200,200,200)`,nameLegend:`2m Wet Bulb`,namePublic:`Wet Bulb Temperature`,nameShort:`2m Tw Temp`},Sc={defaults:`t2`,colorPrimary:`rgb(200,200,200)`,nameLegend:`2m Wet Bulb Globe Temperature`,namePublic:`Wet Bulb Globe Temperature`,nameShort:`2m Globe Temp`},Cc={defaults:`t2`,nameLegend:`2m Apparent Temperature`,namePublic:`Apparent Temperature`,nameShort:`2m Ta Temp`},wc={defaults:`default`,colorBars:{default:{colorLevels:[-3.5,-3,-2.5,-2,-1.5,-1,-.5,.5,1,1.5,2,2.5,3,3.5],colors:[`rgb(0,0,70)`,`rgb(36,56,119)`,`rgb(68,106,161)`,`rgb(100,152,195)`,`rgb(132,185,216)`,`rgb(164,207,228)`,`rgba(194,227,239,200)`,`rgba(255,255,255,0)`,`rgba(254,195,118,200)`,`rgb(252,163,95)`,`rgb(247,128,76)`,`rgb(234,93,59)`,`rgb(199,61,41)`,`rgb(148,29,24)`,`rgb(84,0,0)`],colorType:`scaleThreshold`,contourLevels:[-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7]},difference:{colorLevels:[-3.5,-3,-2.5,-2,-1.5,-1,-.5,.5,1,1.5,2,2.5,3,3.5]},spread:{colorLevels:[0,.5,1,1.5,2,2.5]}},colorPrimary:`rgb(255,100,1000)`,isZeroLowerBound:!0,nameLegend:`700mb T-Advection`,namePublic:`700mb T-Advection`,nameShort:`700mb T-Adv`,roundto:1,units:`K/hr`},Tc={defaults:`tadv700`,nameLegend:`850mb T-Advection`,namePublic:`850mb T-Advection`,nameShort:`850mb T-Adv`},Ec={defaults:`default`,colorBars:{default:{colorLevels:[-90,-80,-70,-60,-50,-40,-30,-20,0],colors:[`rgb(179,15,145)`,`rgb(225,226,228)`,`rgb(0,0,0)`,`rgb(255,0,0)`,`rgb(255,246,0)`,`rgb(0,253,0)`,`rgb(0,24,133)`,`rgb(0,254,255)`,`rgb(10,10,10)`],colorType:`scaleLinear`,contourLevels:[-90,-80,-70,-60,-50,-40,-30,-20],ticks:`linear`},difference:{colorLevels:[-35,-30,-25,-20,-15,-10,-5,5,10,15,20,25,30,35]},spread:{colorLevels:[0,5,10,15,20,25]}},colorPrimary:`rgb(255,0,255)`,isZeroLowerBound:!0,nameLegend:`Cloud Top Temperature`,namePublic:`Cloud Top Temperature`,nameShort:`CloudTop Temp`,roundto:0,units:`C`},Dc={defaults:`default`,colorBars:{default:{colorLevels:[0,25,50,75,100],colors:[`rgba(0,0,0,0)`,`rgb(255,255,0)`,`rgb(255,0,0)`,`rgb(255,0,255)`,`rgb(255,255,255)`],colorType:`scaleLinear`,contourLevels:[30,60,90,100],isLeftCap:!1,isRightCap:!1,ticks:`linear`},difference:{colorLevels:[-75,-50,-40,-30,-20,-10,-5,5,10,20,30,40,50,75]},spread:{colorLevels:[0,15,30,45,60,75]}},colorPrimary:`rgb(255,255,0)`,isZeroLowerBound:!0,nameLegend:`Prob Thunder`,namePublic:`Probability of Thunder`,nameShort:`Thunder`,roundto:0,units:`%`},Oc={defaults:`default`,colorBars:{default:{colorLevels:[0,1,2,3,4],colors:[`rgba(150,150,150,0)`,`rgba(150,150,150,0)`,`rgb(64,202,52)`,`rgb(246,247,41)`,`rgb(244,172,42)`,`rgb(220,79,44)`],colorType:`scaleThreshold`,contourLevels:[1,2,3,4],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(255,255,50)`,isZeroLowerBound:!0,nameLegend:`Turbulence`,namePublic:`Turbulence`,nameShort:`Turb`,roundto:0,units:``},kc={defaults:`default`,colorBars:{default:{colorLevels:[0,50,75,100],colors:[`rgb(68,114,196)`,`rgb(166,166,166)`,`rgb(127,127,127)`,`rgb(50,50,50)`],colorType:`scaleLinear`,contourLevels:[20,40,60,80,100],isLeftCap:!1,isRightCap:!1,ticks:`linear`},difference:{colorLevels:[-75,-50,-40,-30,-20,-10,-5,5,10,20,30,40,50,75]},spread:{colorLevels:[0,15,30,45,60,75]}},colorPrimary:`var(--fontcolor)`,nameLegend:`Total Cloud Cover`,namePublic:`Cloud Cover`,nameShort:`Cloud`,roundto:0,units:`%`},Ac={defaults:`default`,colorBars:{default:{colorLevels:[0,100],colors:[`rgba(40,68,165,0)`,`rgb(40,68,255)`],colorType:`scaleLinear`,contourLevels:[20,40,60,80,100],isLeftCap:!1,isRightCap:!1,ticks:`linear`},difference:{colorLevels:[-75,-50,-40,-30,-20,-10,-5,5,10,20,30,40,50,75]},spread:{colorLevels:[0,15,30,45,60,75]}},colorPrimary:`rgb(60,88,185)`,nameLegend:`Low Cloud Cover (<5 kft MSL)`,namePublic:`Low Cloud Cover (<5 kft MSL)`,nameShort:`Low Cloud`,roundto:0,units:`%`},jc={defaults:`default`,colorBars:{default:{colorLevels:[0,100],colors:[`rgba(66,128,28,0)`,`rgb(66,255,28)`],colorType:`scaleLinear`,contourLevels:[20,40,60,80,100],isLeftCap:!1,isRightCap:!1,ticks:`linear`},difference:{colorLevels:[-75,-50,-40,-30,-20,-10,-5,5,10,20,30,40,50,75]},spread:{colorLevels:[0,15,30,45,60,75]}},colorPrimary:`rgb(66,128,28)`,nameLegend:`Mid Cloud Cover (5-25 kft MSL)`,namePublic:`Mid Cloud Cover (5-25 kft MSL)`,nameShort:`Mid Cloud`,roundto:0,units:`%`},Mc={defaults:`default`,colorBars:{default:{colorLevels:[0,100],colors:[`rgba(154,43,85,0)`,`rgb(255,43,85)`],colorType:`scaleLinear`,contourLevels:[20,40,60,80,100],isLeftCap:!1,isRightCap:!1,ticks:`linear`},difference:{colorLevels:[-75,-50,-40,-30,-20,-10,-5,5,10,20,30,40,50,75]},spread:{colorLevels:[0,15,30,45,60,75]}},colorPrimary:`rgb(154,43,28)`,nameLegend:`High Cloud Cover (>25 kft MSL)`,namePublic:`High Cloud Cover (>25 kft MSL)`,nameShort:`High Cloud`,roundto:0,units:`%`},Nc={defaults:`default`,colorBars:{default:{colorType:`scaleThreshold`,ticks:`linear`}}},Pc={defaults:`default`,colorBars:{default:{colorType:`scaleThreshold`,ticks:`linear`}}},Fc={defaults:`default`,colorBars:{default:{colorLevels:[25,30,35,40,45,50,55,60,65,70,75,90,105,120,135,150,180,210,240,270,300,340,380,420,460,500],colors:`rgba(150,150,150,0).rgb(204,204,204).rgb(178,178,178).rgb(153,153,153).rgb(127,127,127).rgb(102,102,102).rgb(127,178,255).rgb(102,146,235).rgb(76,114,216).rgb(50,82,197).rgb(25,51,178).rgb(127,255,127).rgb(98,216,98).rgb(70,178,70).rgb(41,140,41).rgb(12,102,12).rgb(255,255,102).rgb(232,197,76).rgb(210,140,51).rgb(188,82,25).rgb(165,25,0).rgb(255,153,255).rgb(224,123,224).rgb(193,94,193).rgb(132,36,132).rgb(102,7,102).rgb(102,7,102)`.split(`.`),colorType:`scaleThreshold`,contourLevels:[25,50,75,100,150,300,500],isLeftCap:!1,ticks:`linear`},difference:{colorLevels:[-175,-150,-125,-100,-75,-50,-25,25,50,75,100,125,150,175]},spread:{colorLevels:[0,25,50,100,150,200]}},colorPrimary:`rgb(255,0,255)`,nameLegend:`2-5km Max Updraft Helicity`,namePublic:`2-5km Max Updraft Helicity`,nameShort:`2-5km Max Up. Hel.`,roundto:0,units:`m^2/s^2`},Ic={aeroOptThick:Ba,aqi:Va,bposelay:Ha,bnegelay:Ua,ceilingAGL:Wa,ceilingMSL:Ga,dustFineSfc:Ka,dustFineVI:qa,dustCoarseSfc:Ja,dustCoarseVI:Ya,lcl:Xa,cloudBase:Za,CWASP:Qa,cape:$a,mucape:eo,cin:to,mucin:no,ellrod:ro,fosberg:io,frzr1:ao,fram1:oo,frzr6:so,fram6:co,frzr24:lo,fram24:uo,frzr48:fo,frzr72:po,frzrtotal:mo,framtotal:ho,frzrSpray:go,front700:_o,front850:vo,vort500:yo,gh250:bo,gh300:xo,gh500:So,gh500Climo:Co,"gh1000-gh500":{defaults:`gh300`,colorBars:{default:{colorLevels:[490,500,510,520,530,540,545,550,555,560,565,570,575,580,585,590,600,605],colors:[`rgb(48, 18, 59)`,`rgb(63, 59, 152)`,`rgb(70, 98, 215)`,`rgb(70, 134, 250)`,`rgb(53, 170, 249)`,`rgb(30, 203, 219)`,`rgb(26, 228, 182)`,`rgb(60, 245, 141)`,`rgb(114, 254, 94)`,`rgb(163, 253, 60)`,`rgb(200, 239, 52)`,`rgb(231, 215, 57)`,`rgb(250, 186, 57)`,`rgb(254, 149, 43)`,`rgb(246, 107, 25)`,`rgb(228, 70, 11)`,`rgb(202, 42, 4)`,`rgb(167, 20, 1)`,`rgb(122, 4, 3)`],colorType:`scaleThreshold`,contourLevels:[490,500,510,520,530,540,545,550,555,560,565,570,575,580,585,590,600,605],ticks:`byColorLevels`}},nameLegend:`1000-500 mb Thickness`,namePublic:`1000-500 mb Thickness`,nameShort:`1000-500 mb Tkns`},"gh700-gh500_lr":{defaults:`gh300`,colorBars:{default:{colorLevels:[4,5,6,6.5,7,7.5,8,8.5,9],colors:[`rgb(5,48,97)`,`rgb(33,102,172)`,`rgb(67,147,195)`,`rgb(146,197,222)`,`rgb(209,229,240)`,`rgb(253,219,199)`,`rgb(244,165,130)`,`rgb(214,96,77)`,`rgb(178,24,43)`,`rgb(103,0,31)`],colorType:`scaleThreshold`,contourLevels:[4,5,6,6.5,7,7.5,8,8.5,9],ticks:`byColorLevels`},spread:{colorLevels:[0,.5,1,1.5,2,2.5,3]}},nameLegend:`700-500 mb Lapse Rate`,namePublic:`700-500 mb Lapse Rate`,nameShort:`700-500 mb LR`,roundto:2,roundtoReadout:1,units:`C/km`},thte850:wo,thte925:To,thte2:Eo,gh700:Do,gh850:Oo,gh925:ko,gh_isobaric:Ao,haines06:jo,"srh0-1km":{defaults:`default`,colorBars:{default:{colorLevels:[25,30,35,40,45,50,60,70,80,90,100,120,140,160,180,200,240,280,320,360,400,450,500,600,700,800],colors:`rgba(150,150,150,0).rgb(204,204,204).rgb(178,178,178).rgb(153,153,153).rgb(127,127,127).rgb(102,102,102).rgb(127,178,255).rgb(102,146,235).rgb(76,114,216).rgb(50,82,197).rgb(25,51,178).rgb(127,255,127).rgb(98,216,98).rgb(70,178,70).rgb(41,140,41).rgb(12,102,12).rgb(255,255,102).rgb(232,197,76).rgb(210,140,51).rgb(188,82,25).rgb(165,25,0).rgb(255,153,255).rgb(224,123,224).rgb(193,94,193).rgb(132,36,132).rgb(102,7,102).rgb(102,7,102)`.split(`.`),colorType:`scaleThreshold`,contourLevels:[25,50,100,200,400,800],isLeftCap:!1,ticks:`linear`},difference:{colorLevels:[-175,-150,-125,-100,-75,-50,-25,25,50,75,100,125,150,175]},spread:{colorLevels:[0,25,50,100,150,200]}},colorPrimary:`rgb(250,0,140)`,nameLegend:`0-1km SRH`,namePublic:`0-1km SRH`,nameShort:`0-1km SRH`,roundto:0,units:`m^2/s^2`},"srh0-3km":{defaults:`srh0-1km`,colorPrimary:`rgb(200,0,100)`,nameLegend:`0-3km SRH`,namePublic:`0-3km SRH`,nameShort:`0-3km SRH`},stp:Mo,ltng:No,mixingHgt:Po,mslp:Fo,orog:Io,sp:Lo,psnow:Ro,csnow:zo,prain:Bo,crain:Vo,picep:Ho,cicep:Uo,pfrzr:Wo,cfrzr:Go,prmsl:Ko,pw:qo,p1:Jo,p2:Yo,p3:Xo,p6:Zo,p6qmd:Qo,p6Det:$o,p6_ari:es,p6Det_ari:ts,p12:ns,p12Det:rs,p24:is,p24qmd:as,p24_ari:os,ptotal:ss,ptotalDet:cs,p48:ls,p48_ari:us,p72:ds,p72_ari:fs,PSSF:ps,refc:ms,refcMax:hs,retop:gs,rh2:_s,r_isobaric:vs,rh2Max:ys,rhll:bs,rh2Min:xs,r250:Ss,r500:Cs,r700:ws,r850:Ts,r925:Es,smokesfc:Ds,smoke:Os,smokeVI:ks,swe1:As,snow1:js,snow1MaxTAloft:Ms,swe3:Ns,snow3MaxTAloft:Ps,swe6:Fs,snow6:Is,snow6MaxTAloft:Ls,swe24:Rs,snow24:zs,snow24MaxTAloft:Bs,snow48:Vs,snow72:Hs,swetotal:Us,snowTotal:Ws,snowTotalMaxTAloft:Gs,snowlvl:Ks,snowlr:qs,slrMaxTAloft:Js,solarRad:Ys,sigWave:Xs,waveHgt:Zs,SOVI_SCORE:Qs,POPDENS:$s,EP_MOBILE:ec,EP_LIMENG:tc,EP_NOVEH:nc,EP_NOINT:rc,d2:ic,dpt_isobaric:ac,t2:oc,t500:sc,t700:cc,t850:lc,t925:uc,td850:dc,td925:fc,t_isobaric:pc,mx2t12:mc,mx2t18:hc,mxmn2t18:gc,mx2t6:_c,mn2t12:vc,mn2t18:yc,mn2t6:bc,tw2:xc,twgt2:Sc,ta2:Cc,tadv700:wc,tadv850:Tc,t_cloudTop:Ec,probthunder:Dc,turb:Oc,tcc:kc,lcc:Ac,mcc:jc,hcc:Mc,maxuvv:Nc,maxdvv:Pc,mxUpHel2to5:Fc,mxUpHel0to3:{defaults:`mxUpHel2to5`,nameLegend:`0-3km Max Updraft Helicity`,namePublic:`0-3km Max Updraft Helicity`,nameShort:`0-3km Max Up. Hel.`},mnUpHel2to5:{defaults:`default`,colorBars:{default:{colorLevels:[-250,-200,-150,-125,-100,-75,-50,-25,-15],colors:[`rgb(229,229,229)`,`rgb(197,197,197)`,`rgb(165,165,165)`,`rgb(133,133,133)`,`rgb(102,102,102)`,`rgb(25,51,178)`,`rgb(51,82,197)`,`rgb(76,114,216)`,`rgb(127,178,255)`,`rgba(150,150,150,0)`],colorType:`scaleThreshold`,contourLevels:[-250,-200,-150,-125,-100,-75,-50,-25],ticks:`byColorLevels`},difference:{colorLevels:[-175,-150,-125,-100,-75,-50,-25,25,50,75,100,125,150,175]},spread:{colorLevels:[0,25,50,100,150,200]}},colorPrimary:`rgb(255,0,255)`,nameLegend:`2-5km Min Updraft Helicity`,namePublic:`2-5km Min Updraft Helicity`,nameShort:`2-5km Min Up. Hel.`,roundto:0,units:`m^2/s^2`},mnUpHel0to3:{defaults:`mnUpHel2to5`,nameLegend:`0-3km Min Updraft Helicity`,namePublic:`0-3km Min Updraft Helicity`,nameShort:`0-3km Min Up. Hel.`},u10:{defaults:`default`,roundto:0,units:`mph`},u_isobaric:{defaults:`u10`,nameLegend:`Isobaric U-Wind`,namePublic:`Isobaric U-Wind`,nameShort:`Isobaric U-Wind`},v10:{defaults:`default`,roundto:0,units:`mph`},v_isobaric:{defaults:`v10`,nameLegend:`Isobaric V-Wind`,namePublic:`Isobaric V-Wind`,nameShort:`Isobaric V-Wind`},w_isobaric:{defaults:`v10`,nameLegend:`Isobaric Vertical Velocity`,namePublic:`Isobaric Vertical Velocity`,nameShort:`Isobaric Vertical Velocity`},wd_isobaric:{defaults:`v10`,nameLegend:`Isobaric Wind Direction`,namePublic:`Isobaric Wind Direction`,nameShort:`Isobaric Wind Direction`},ws_isobaric:{defaults:`v10`,nameLegend:`Isobaric Wind Speed`,namePublic:`Isobaric Wind Speed`,nameShort:`Isobaric Wind Speed`},vis:{defaults:`default`,colorBars:{default:{colorLevels:[0,.1,.25,.5,1,2,3,4,5,6,7,8,9,10],colors:[`rgb(0, 0, 0)`,`rgb(0, 0, 0)`,`rgb(65, 10, 30)`,`rgb(88, 24, 69)`,`rgb(150, 30, 150)`,`rgb(225, 0, 0)`,`rgb(255, 100, 100)`,`rgb(255, 255, 0)`,`rgb(255, 255, 150)`,`rgb(100,100,100)`,`rgba(140,140,140,0.8)`,`rgba(180,180,180,0.6)`,`rgba(210,210,210,0.4)`,`rgba(255,255,255,0.2)`,`rgba(255,255,255,0)`],colorType:`scaleThreshold`,contourLevels:[0,.1,.25,.5,1,2,3,5,10],isLeftCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-6,-5,-4,-3,-2,-1,-.5,.5,1,2,3,4,5,6]}},colorPrimary:`rgb(200,200,200)`,comment:`Capping at 15 for the HREF`,isZeroLowerBound:!0,nameLegend:`Visibility`,namePublic:`Visibility`,nameShort:`Vis`,roundto:1,units:`mi`},vil:{defaults:`default`,colorBars:{default:{colorLevels:[0,.01,.1,.5,1,2,2.5],colors:[`rgba(0,100,255,0)`,`rgb(0,0,200)`,`rgb(0,0,100)`,`rgb(0,255,0)`,`rgb(255,255,0)`,`rgb(255,0,0)`,`rgb(150,0,150)`],colorType:`scaleLinear`,contourLevels:[0,.01,.1,.25,.5,.75,1,1.25,1.5,2,2.5],isLeftCap:!1,ticks:`byColorLevels`}},colorPrimary:`rgb(200,200,0)`,nameLegend:`Vertically Integrated Liquid`,namePublic:`Vertically Integrated Liquid`,nameShort:`VIL`,roundto:2,units:`in`},vrate:{defaults:`default`,colorBars:{default:{colorLevels:[0,2,5,10,20,30,50],colors:[`rgba(150,150,150,0)`,`rgb(150,150,150)`,`rgb(0,190,255)`,`rgb(255,255,0)`,`rgb(255,0,0)`,`rgb(255,0,255)`,`rgb(100,0,100)`],colorType:`scaleLinear`,contourLevels:[1,3,5,7,10,15],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(200,200,255)`,nameLegend:`Ventiliation Rate`,namePublic:`Ventiliation Rate`,nameShort:`Vent Rate`,roundto:1,units:`1000*m^2/s`},wfirepot:{defaults:`default`,colorBars:{default:{colorLevels:[0,25,50,75,100],colors:[`rgba(0,0,0,0)`,`rgba(100, 0, 0,1)`,`rgb(228, 15, 0)`,`rgb(255, 251, 98)`,`rgb(255, 255, 255)`],colorType:`scaleLinear`,contourLevels:[10,25,50,75,100],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(255,90,90)`,nameLegend:`Hourly Wildfire Potential`,namePublic:`Hourly Wildfire Potential`,nameShort:`HWP`,roundto:1,roundtoReadout:0,units:``},"large-fire-potential":{defaults:`default`,colorBars:{default:{colorLevels:[0,25,50,75,100,125,150,175],colors:[`rgba(0,0,0,0)`,`rgba(100, 0, 0,1)`,`rgb(228, 15, 0)`,`rgb(255, 251, 98)`,`rgb(255, 255, 255)`,`rgb(224, 203, 229)`,`rgb(116, 41, 157)`,`rgb(75, 0, 100)`],colorType:`scaleLinear`,contourLevels:[10,25,50,75,100,125,150,175],isLeftCap:!1,ticks:`linear`}},colorPrimary:`rgb(255,150,150)`,nameLegend:`Large Fire Potential (wx component)`,namePublic:`Large Fire Potential (wx component)`,nameShort:`LFP (wx)`,roundto:1,roundtoReadout:0,units:`°F*m^2/s^2`},ws:{defaults:`default`,colorBars:{default:{colorLevels:[0,5,10,15,20,25,30,40,50,60,70,80,90,100],colors:[`rgba(0,0,0,0)`,`rgba(0,0,0,0)`,`rgb(207,225,230)`,`rgb(144,185,213)`,`rgb(98,164,171)`,`rgb(71,120,129)`,`rgb(255,249,129)`,`rgb(249,209,11)`,`rgb(236,152,28)`,`rgb(212,71,68)`,`rgb(166,41,38)`,`rgb(103,16,54)`,`rgb(97,21,57)`,`rgb(57,25,80)`,`rgb(186,89,255)`],colorType:`scaleThreshold`,contourLevels:[5,10,15,20,25,30,40,50,60,70,80,90,100],isLeftCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-30,-24,-20,-16,-12,-8,-4,4,8,12,16,20,24,30]},spread:{colorLevels:[0,4,8,12,16,20]}},colorPrimary:`rgb(0,255,50)`,nameLegend:`Wind Speed`,namePublic:`Wind Speed`,nameShort:`Wind`,roundto:0,units:`mph`},ws2:{"//":`This is a temp fix for wind ninja, which needs more detail at low wind speeds`,defaults:`ws`,colorBars:{default:{colorLevels:[0,2,4,6,8,10,15,20,25,30,40,50,60],colors:[`rgba(193, 251, 248, 1)`,`rgba(193, 251, 248, 1)`,`rgba(159, 217, 235, 1)`,`rgba(124, 184, 222, 1)`,`rgba(90, 150, 208, 1)`,`rgba(55, 116, 195, 1)`,`rgba(126, 237, 174, 1)`,`rgba(70, 184, 138, 1)`,`rgba(13, 130, 101, 1)`,`rgba(224, 218, 30, 1)`,`rgba(212, 140, 35, 1)`,`rgba(214, 91, 43, 1)`,`rgba(200, 60, 91, 1)`,`rgba(143, 35, 215, 1)`],colorType:`scaleThreshold`,contourLevels:[0,2,4,6,8,10,15,20,25,30,40,50,60],ticks:`byColorLevels`}}},"ws-cumulative":{defaults:`ws`,nameLegend:`Cumulative Wind Speed`,namePublic:`Cumulative Wind Speed`,nameShort:`Cumulative Wind`},ws250:{defaults:`ws`,colorBars:{default:{colorLevels:[0,20,40,60,80,100,120,140,160,180,200,220,240,260],contourLevels:[20,40,60,80,100,120,140,160,180,200,220,240,260]},difference:{colorLevels:[-48,-40,-32,-24,-16,-8,8,16,24,32,40,48]},spread:{colorLevels:[0,8,16,24,32,40]}},nameLegend:`250 mb Wind Speed`,namePublic:`250 mb Wind Speed`,nameShort:`250 mb Wind`,units:`kts`},ws500:{defaults:`ws`,colorBars:{default:{colorLevels:[0,10,20,30,40,50,60,80,100,120,140,160,180,200],contourLevels:[10,20,30,40,50,60,80,100,120,140,160,180,200]},difference:{colorLevels:[-48,-40,-32,-24,-16,-8,-4,4,8,16,24,32,40,48]},spread:{colorLevels:[0,8,16,24,32,40]}},nameLegend:`500 mb Wind Speed`,namePublic:`500 mb Wind Speed`,nameShort:`500 mb Wind`,units:`kts`},ws700:{defaults:`ws`,colorBars:{default:{colorLevels:[0,10,20,30,40,50,60,70,80,90,100,120,140,160],contourLevels:[10,20,30,40,50,60,70,80,90,100,120,140,160]},difference:{colorLevels:[-48,-40,-32,-24,-16,-8,8,16,24,32,40,48]},spread:{colorLevels:[0,8,16,24,32,40]}},nameLegend:`700 mb Wind Speed`,namePublic:`700 mb Wind Speed`,nameShort:`700 mb Wind`,units:`kts`},ws850:{defaults:`ws`,colorBars:{default:{colorLevels:[0,10,20,30,40,50,60,70,80,90,100,120,140,160],contourLevels:[10,20,30,40,50,60,70,80,90,100,120,140,160]},difference:{colorLevels:[-30,-25,-20,-15,-10,-5,5,10,15,20,25,30]},spread:{colorLevels:[0,5,10,15,20,25]}},nameLegend:`850 mb Wind Speed`,namePublic:`850 mb Wind Speed`,nameShort:`850 mb Wind`,units:`kts`},ws925:{defaults:`ws`,colorBars:{default:{colorLevels:[0,10,20,30,40,50,60,70,80,90,100,120,140,160],contourLevels:[10,20,30,40,50,60,70,80,90,100,120,140,160]},difference:{colorLevels:[-30,-25,-20,-15,-10,-5,5,10,15,20,25,30]},spread:{colorLevels:[0,5,10,15,20,25]}},nameLegend:`925 mb Wind Speed`,namePublic:`925 mb Wind Speed`,nameShort:`925 mb Wind`,units:`kts`},wg:{defaults:`ws`,colorPrimary:`rgb(255,255,0)`,nameLegend:`Wind Gust`,namePublic:`Wind Gust`,nameShort:`Gust`},"wg-cumulative":{defaults:`ws`,nameLegend:`Cumulative Wind Gust`,namePublic:`Cumulative Wind Gust`,nameShort:`Cumulative Wind Gust`},mxws24:{defaults:`ws`,nameLegend:`24 hr Max Wind`,namePublic:`24 hr Max Wind`,nameShort:`24hr Max Wind`},mxwg24:{defaults:`wg`,nameLegend:`24 hr Max Gust`,namePublic:`24 hr Max Gust`,nameShort:`24hr Max Gust`},ws_trans:{defaults:`ws`,colorPrimary:`rgb(150,255,0)`,nameLegend:`Transport Winds`,namePublic:`Transport Winds`,nameShort:`Trans Winds`},ws30:{defaults:`ws`,colorPrimary:`rgb(255, 255, 0)`,nameLegend:`30 m Winds`,namePublic:`30 m Winds`,nameShort:`30m Winds`},ws80:{defaults:`ws`,colorPrimary:`rgb(170, 170, 170)`,nameLegend:`80 m Winds`,namePublic:`80 m Winds`,nameShort:`80m Winds`},"wshr0-500mb":{defaults:`ws`,colorPrimary:`rgb(170, 170, 170)`,nameLegend:`0-500mb Wind Shear`,namePublic:`0-500mb Wind Shear`,nameShort:`0-500mb Wind Shear`,units:`kts`},"ushr0-500mb":{defaults:`wshr0-500mb`,nameLegend:`0-500mb u-Wind Shear`,namePublic:`0-500mb u-Wind Shear`,nameShort:`0-500mb u-Wind Shear`},"vshr0-500mb":{defaults:`wshr0-500mb`,nameLegend:`0-500mb v-Wind Shear`,namePublic:`0-500mb v-Wind Shear`,nameShort:`0-500mb v-Wind Shear`},"wshr0-6km":{defaults:`ws`,colorPrimary:`rgb(170, 170, 170)`,nameLegend:`0-6km Wind Shear`,namePublic:`0-6km Wind Shear`,nameShort:`0-6km Wind Shear`,units:`kts`},"ushr0-6km":{defaults:`wshr0-6km`,nameLegend:`0-6km u-Wind Shear`,namePublic:`0-6km u-Wind Shear`,nameShort:`0-6km u-Wind Shear`},"vshr0-6km":{defaults:`wshr0-6km`,nameLegend:`0-6km v-Wind Shear`,namePublic:`0-6km v-Wind Shear`,nameShort:`0-6km v-Wind Shear`},wd:{defaults:`default`,colorBars:{default:{colorLevels:[0,90,180,270,360],colors:[`rgba(20,80,181)`,`rgba(100,227,100)`,`rgba(242,205,88)`,`rgba(190,10,10)`,`rgba(20,80,181)`],colorType:`scaleLinear`,contourLevels:[0,45,90,180,225,270,360],isLeftCap:!1,isRightCap:!1,ticks:`byColorLevels`},difference:{colorLevels:[-135,-90,-60,-30,-20,-10,-5,5,10,20,30,60,90,135]},standardDeviation:{colorLevels:[30,60,90,120],colors:[`rgba(150,150,150,0)`,`rgb(0,230,255)`,`rgb(255,255,100)`,`rgb(255,100,100)`,`rgb(255,100,100)`,`rgb(255,100,100)`],colorType:`scaleThreshold`,ticks:`byColorLevels`}},colorPrimary:`rgb(220,220,8)`,isZeroLowerBound:!0,nameLegend:`Wind Direction`,namePublic:`Wind Direction`,nameShort:`Dir`,roundto:0,units:`°`},"wshrd0-500mb":{defaults:`wd`,colorPrimary:`rgb(170, 170, 170)`,nameLegend:`0-500mb Wind Shear Direction`,namePublic:`0-500mb Wind Shear Direction`,nameShort:`0-500mb Wind Shear Dir`},"wshrd0-6km":{defaults:`wd`,colorPrimary:`rgb(170, 170, 170)`,nameLegend:`0-6km Wind Shear Direction`,namePublic:`0-6km Wind Shear Direction`,nameShort:`0-6km Wind Shear Dir`},wd_trans:{defaults:`wd`,colorPrimary:`rgb(150,255,0)`,nameLegend:`Transport Wind Dir`,namePublic:`Transport Wind Dir`,nameShort:`Trans Wind Dir`},wd250:{defaults:`wd`,nameLegend:`250 mb Wind Direction`,namePublic:`250 mb Wind Direction`,nameShort:`250 mb Dir`},wd500:{defaults:`wd`,nameLegend:`500 mb Wind Direction`,namePublic:`500 mb Wind Direction`,nameShort:`500 mb Dir`},wd700:{defaults:`wd`,nameLegend:`700 mb Wind Direction`,namePublic:`700 mb Wind Direction`,nameShort:`700 mb Dir`},wd850:{defaults:`wd`,nameLegend:`850 mb Wind Direction`,namePublic:`850 mb Wind Direction`,nameShort:`850 mb Dir`},wd925:{defaults:`wd`,nameLegend:`925 mb Wind Direction`,namePublic:`925 mb Wind Direction`,nameShort:`925 mb Dir`},cpcLayer:{defaults:`default`,colors:{temp:[`rgb(28, 19, 66)`,`rgb(34, 24, 82)`,`rgb(47, 64, 111)`,`rgb(0, 92, 161)`,`rgb(56, 159, 219)`,`rgb(119, 181, 226)`,`rgb(160, 192, 223)`,`rgb(0, 0, 0, 0)`,`rgb(231, 177, 104)`,`rgb(227, 139, 74)`,`rgb(220, 86, 47)`,`rgb(199, 46, 40)`,`rgb(204, 48, 71)`,`rgb(138, 47, 56)`,`rgb(98, 34, 40)`],prcp:[`rgb(79, 47, 47)`,`rgb(128, 64, 0)`,`rgb(147, 70, 57)`,`rgb(155, 80, 49)`,`rgb(187, 109, 51)`,`rgb(216, 167, 80)`,`rgb(240, 212, 147)`,`rgb(0, 0, 0, 0)`,`rgb(179, 217, 171)`,`rgb(148, 205, 126)`,`rgb(72, 174, 56)`,`rgb(58, 123, 95)`,`rgb(0, 142, 64)`,`rgb(40, 85, 61)`,`rgb(40, 85, 23)`]},labels:{labels:[`90-100%`,`80-90%`,`70-80%`,`60-70%`,`50-60%`,`40-50%`,`33-40%`,`Near Normal`,`33-40%`,`40-50%`,`50-60%`,`60-70%`,`70-80%`,`80-90%`,`90-100%`]}},spcLayer:{defaults:`default`,colors:[`rgb(192, 232, 192)`,`rgb(127, 197, 127)`,`rgb(246, 246, 127)`,`rgb(230, 194, 127)`,`rgb(230, 127, 127)`,`rgb(255, 127, 255)`],labels:[`General Thunderstorms`,`Marginal`,`Slight`,`Enhanced`,`Moderate`,`High`]},wpcLayer:{defaults:`default`,colors:[`rgb(0, 205, 0)`,`rgb(238, 238, 0)`,`rgb(255, 0, 0)`,`rgb(255, 0, 255)`],labels:[`Marginal (At Least 5%)`,`Slight (At Least 15%)`,`Moderate (At Least 40%)`,`High (At Least 70%)`]}};function Lc(e,t){if(Array.isArray(e))return t}for(let e in Ic){let t=Ic[e].defaults;Ic[e]=(0,f.mergeWith)((0,f.cloneDeep)(t==="default"?za:Ic[t]),Ic[e],Lc)}e.CPCLayer=ta,e.CitiesLayer=Bi,e.ContourLabels=be,e.ContourLayer=tr,e.DeckGLOverlay=va,e.GeoJsonLayer=Ui,e.IconClusterLayer=Ai,e.Legend=La,e.LegendStaticBar=Ia,e.Maps=_a,e.NIFCLayer=Qi,e.ParticleLayer=ri,e.PathLayer=Oe,e.Projection=Ra,e.Readout=xa,e.SPCLayer=oa,e.ShadedLayer=Ar,e.SpotLayer=Ki,e.VectorLayer=Lr,e.WPCLayer=ca,e.WWALayer=ma,e.configFields=Ic,e.configFieldsDefaults=za,e.deckUtilities=_e,e.gUtilities=T,e.getColors=Ee,e.mapStyles=ha,e.readoutFunction=Aa});
|
|
828
|
+
//# sourceMappingURL=wizard-graphics.umd.js.map
|