@bicharts/chart-mcp 0.6.105 → 0.6.107
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/dist/check-chart.mjs +8 -8
- package/dist/index.mjs +109 -91
- package/package.json +3 -3
- package/skills/bic-charts/CHART-SHAPES.md +12 -0
- package/skills/bic-charts/SKILL.md +11 -2
package/dist/check-chart.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __bicCreateRequire } from "node:module"; const require = __bicCreateRequire(import.meta.url);
|
|
2
|
-
var nK=Object.create;var m8=Object.defineProperty;var iK=Object.getOwnPropertyDescriptor;var aK=Object.getOwnPropertyNames;var sK=Object.getPrototypeOf,lK=Object.prototype.hasOwnProperty;var Sn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var uK=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(o){throw t=[o],o}};var cr=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},cK=(r,e)=>{for(var t in e)m8(r,t,{get:e[t],enumerable:!0})},hK=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of aK(e))!lK.call(r,n)&&n!==t&&m8(r,n,{get:()=>e[n],enumerable:!(o=iK(e,n))||o.enumerable});return r};var Xa=(r,e,t)=>(t=r!=null?nK(sK(r)):{},hK(e||!r||!r.__esModule?m8(t,"default",{value:r,enumerable:!0}):t,r));var _T=cr((
|
|
2
|
+
var nK=Object.create;var m8=Object.defineProperty;var iK=Object.getOwnPropertyDescriptor;var aK=Object.getOwnPropertyNames;var sK=Object.getPrototypeOf,lK=Object.prototype.hasOwnProperty;var Sn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var uK=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(o){throw t=[o],o}};var cr=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},cK=(r,e)=>{for(var t in e)m8(r,t,{get:e[t],enumerable:!0})},hK=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of aK(e))!lK.call(r,n)&&n!==t&&m8(r,n,{get:()=>e[n],enumerable:!(o=iK(e,n))||o.enumerable});return r};var Xa=(r,e,t)=>(t=r!=null?nK(sK(r)):{},hK(e||!r||!r.__esModule?m8(t,"default",{value:r,enumerable:!0}):t,r));var _T=cr((E2e,RT)=>{"use strict";function cq(r){return r.toString("ascii",0,2)==="BM"}function hq(r){return{width:r.readUInt32LE(18),height:Math.abs(r.readInt32LE(22))}}RT.exports={detect:cq,calculate:hq}});var Sx=cr((C2e,DT)=>{"use strict";var mq=1,pq=6,dq=16;function yq(r){var e;return r.readUInt16LE(0)!==0?!1:(e=r.readUInt16LE(2),e===mq)}function UT(r,e){var t=r.readUInt8(e);return t===0?256:t}function BT(r,e){var t=pq+e*dq;return{width:UT(r,t),height:UT(r,t+1)}}function fq(r){var e=r.readUInt16LE(4),t=BT(r,0),o;if(e===1)return t;for(t.images=[{width:t.width,height:t.height}],o=1;o<e;o+=1)t.images.push(BT(r,o));return t}DT.exports={detect:yq,calculate:fq}});var FT=cr((k2e,OT)=>{"use strict";var gq=2;function bq(r){var e;return r.readUInt16LE(0)!==0?!1:(e=r.readUInt16LE(2),e===gq)}OT.exports={detect:bq,calculate:Sx().calculate}});var VT=cr((M2e,GT)=>{"use strict";function Sq(r){return r.readUInt32LE(0)===542327876}function Aq(r){return{height:r.readUInt32LE(12),width:r.readUInt32LE(16)}}GT.exports={detect:Sq,calculate:Aq}});var zT=cr((T2e,HT)=>{"use strict";var wq=/^GIF8[79]a/;function Pq(r){var e=r.toString("ascii",0,6);return wq.test(e)}function vq(r){return{width:r.readUInt16LE(6),height:r.readUInt16LE(8)}}HT.exports={detect:Pq,calculate:vq}});var XT=cr((W2e,jT)=>{"use strict";function Nq(r){var e=r.toString("hex",0,2);return e==="ffd8"}function xq(r,e){return{height:r.readUInt16BE(e),width:r.readUInt16BE(e+2)}}function Eq(r,e){if(e>r.length)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(r[e]!==255)throw new TypeError("Invalid JPG, marker table corrupted")}function Cq(r){r=r.slice(4);for(var e,t;r.length;){if(e=r.readUInt16BE(0),Eq(r,e),t=r[e+1],t===192||t===193||t===194)return xq(r,e+5);r=r.slice(e+2)}throw new TypeError("Invalid JPG, no size found")}jT.exports={detect:Nq,calculate:Cq}});var qT=cr((L2e,YT)=>{"use strict";var kq=`PNG\r
|
|
3
3
|
|
|
4
|
-
`,Mq="IHDR",KT="CgBI";function Tq(r){if(kq===r.toString("ascii",1,8)){var e=r.toString("ascii",12,16);if(e===KT&&(e=r.toString("ascii",28,32)),e!==Mq)throw new TypeError("invalid png");return!0}}function Wq(r){return r.toString("ascii",12,16)===KT?{width:r.readUInt32BE(32),height:r.readUInt32BE(36)}:{width:r.readUInt32BE(16),height:r.readUInt32BE(20)}}YT.exports={detect:Tq,calculate:Wq}});var $T=cr((
|
|
5
|
-
`||r==="\r";cp.solelyContainsHTTPTokenCodePoints=r=>/^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/u.test(r);cp.soleyContainsHTTPQuotedStringTokenCodePoints=r=>/^[\t\u0020-\u007E\u0080-\u00FF]*$/u.test(r);cp.asciiLowercase=r=>r.replace(/[A-Z]/ug,e=>e.toLowerCase());cp.collectAnHTTPQuotedString=(r,e)=>{let t="";for(e++;;){for(;e<r.length&&r[e]!=='"'&&r[e]!=="\\";)t+=r[e],++e;if(e>=r.length)break;let o=r[e];if(++e,o==="\\"){if(e>=r.length){t+="\\";break}t+=r[e],++e}else break}return[t,e]}});var mW=cr((H5e,hW)=>{"use strict";var{asciiLowercase:b4,solelyContainsHTTPTokenCodePoints:EJ,soleyContainsHTTPQuotedStringTokenCodePoints:CJ}=K2();hW.exports=class{constructor(e){this._map=e}get size(){return this._map.size}get(e){return e=b4(String(e)),this._map.get(e)}has(e){return e=b4(String(e)),this._map.has(e)}set(e,t){if(e=b4(String(e)),t=String(t),!EJ(e))throw new Error(`Invalid MIME type parameter name "${e}": only HTTP token code points are valid.`);if(!CJ(t))throw new Error(`Invalid MIME type parameter value "${t}": only HTTP quoted-string token code points are valid.`);return this._map.set(e,t)}clear(){this._map.clear()}delete(e){return e=b4(String(e)),this._map.delete(e)}forEach(e,t){this._map.forEach(e,t)}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}[Symbol.iterator](){return this._map[Symbol.iterator]()}}});var yW=cr((z5e,dW)=>{"use strict";var{removeLeadingAndTrailingHTTPWhitespace:kJ,removeTrailingHTTPWhitespace:pW,isHTTPWhitespaceChar:MJ,solelyContainsHTTPTokenCodePoints:_x,soleyContainsHTTPQuotedStringTokenCodePoints:TJ,asciiLowercase:Ux,collectAnHTTPQuotedString:WJ}=K2();dW.exports=r=>{r=kJ(r);let e=0,t="";for(;e<r.length&&r[e]!=="/";)t+=r[e],++e;if(t.length===0||!_x(t)||e>=r.length)return null;++e;let o="";for(;e<r.length&&r[e]!==";";)o+=r[e],++e;if(o=pW(o),o.length===0||!_x(o))return null;let n={type:Ux(t),subtype:Ux(o),parameters:new Map};for(;e<r.length;){for(++e;MJ(r[e]);)++e;let i="";for(;e<r.length&&r[e]!==";"&&r[e]!=="=";)i+=r[e],++e;if(i=Ux(i),e<r.length){if(r[e]===";")continue;++e}let a=null;if(r[e]==='"')for([a,e]=WJ(r,e);e<r.length&&r[e]!==";";)++e;else{for(a="";e<r.length&&r[e]!==";";)a+=r[e],++e;if(a=pW(a),a==="")continue}i.length>0&&_x(i)&&TJ(a)&&!n.parameters.has(i)&&n.parameters.set(i,a)}return n}});var gW=cr((j5e,fW)=>{"use strict";var{solelyContainsHTTPTokenCodePoints:LJ}=K2();fW.exports=r=>{let e=`${r.type}/${r.subtype}`;if(r.parameters.size===0)return e;for(let[t,o]of r.parameters)e+=";",e+=t,e+="=",(!LJ(o)||o.length===0)&&(o=o.replace(/(["\\])/ug,"\\$1"),o=`"${o}"`),e+=o;return e}});var wW=cr((K5e,AW)=>{"use strict";var IJ=mW(),RJ=yW(),_J=gW(),{asciiLowercase:bW,solelyContainsHTTPTokenCodePoints:SW}=K2();AW.exports=class{constructor(e){e=String(e);let t=RJ(e);if(t===null)throw new Error(`Could not parse MIME type string "${e}"`);this._type=t.type,this._subtype=t.subtype,this._parameters=new IJ(t.parameters)}static parse(e){try{return new this(e)}catch{return null}}get essence(){return`${this.type}/${this.subtype}`}get type(){return this._type}set type(e){if(e=bW(String(e)),e.length===0)throw new Error("Invalid type: must be a non-empty string");if(!SW(e))throw new Error(`Invalid type ${e}: must contain only HTTP token code points`);this._type=e}get subtype(){return this._subtype}set subtype(e){if(e=bW(String(e)),e.length===0)throw new Error("Invalid subtype: must be a non-empty string");if(!SW(e))throw new Error(`Invalid subtype ${e}: must contain only HTTP token code points`);this._subtype=e}get parameters(){return this._parameters}toString(){return _J(this)}isJavaScript({prohibitParameters:e=!1}={}){switch(this._type){case"text":switch(this._subtype){case"ecmascript":case"javascript":case"javascript1.0":case"javascript1.1":case"javascript1.2":case"javascript1.3":case"javascript1.4":case"javascript1.5":case"jscript":case"livescript":case"x-ecmascript":case"x-javascript":return!e||this._parameters.size===0;default:return!1}case"application":switch(this._subtype){case"ecmascript":case"javascript":case"x-ecmascript":case"x-javascript":return!e||this._parameters.size===0;default:return!1}default:return!1}}isXML(){return this._subtype==="xml"&&(this._type==="text"||this._type==="application")||this._subtype.endsWith("+xml")}isHTML(){return this._subtype==="html"&&this._type==="text"}}});var bh=cr((m7e,xW)=>{"use strict";var vW=["nodebuffer","arraybuffer","fragments"],NW=typeof Blob<"u";NW&&vW.push("blob");xW.exports={BINARY_TYPES:vW,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:NW,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var q2=cr((p7e,S4)=>{"use strict";var{EMPTY_BUFFER:FJ}=bh(),Gx=Buffer[Symbol.species];function GJ(r,e){if(r.length===0)return FJ;if(r.length===1)return r[0];let t=Buffer.allocUnsafe(e),o=0;for(let n=0;n<r.length;n++){let i=r[n];t.set(i,o),o+=i.length}return o<e?new Gx(t.buffer,t.byteOffset,o):t}function EW(r,e,t,o,n){for(let i=0;i<n;i++)t[o+i]=r[i]^e[i&3]}function CW(r,e){for(let t=0;t<r.length;t++)r[t]^=e[t&3]}function VJ(r){return r.length===r.buffer.byteLength?r.buffer:r.buffer.slice(r.byteOffset,r.byteOffset+r.length)}function Vx(r){if(Vx.readOnly=!0,Buffer.isBuffer(r))return r;let e;return r instanceof ArrayBuffer?e=new Gx(r):ArrayBuffer.isView(r)?e=new Gx(r.buffer,r.byteOffset,r.byteLength):(e=Buffer.from(r),Vx.readOnly=!1),e}S4.exports={concat:GJ,mask:EW,toArrayBuffer:VJ,toBuffer:Vx,unmask:CW};if(!process.env.WS_NO_BUFFER_UTIL)try{let r=Sn("bufferutil");S4.exports.mask=function(e,t,o,n,i){i<48?EW(e,t,o,n,i):r.mask(e,t,o,n,i)},S4.exports.unmask=function(e,t){e.length<32?CW(e,t):r.unmask(e,t)}}catch{}});var TW=cr((d7e,MW)=>{"use strict";var kW=Symbol("kDone"),Hx=Symbol("kRun"),zx=class{constructor(e){this[kW]=()=>{this.pending--,this[Hx]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Hx]()}[Hx](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[kW])}}};MW.exports=zx});var n1=cr((y7e,RW)=>{"use strict";var J2=Sn("zlib"),WW=q2(),HJ=TW(),{kStatusCode:LW}=bh(),zJ=Buffer[Symbol.species],jJ=Buffer.from([0,0,255,255]),w4=Symbol("permessage-deflate"),Sh=Symbol("total-length"),r1=Symbol("callback"),mp=Symbol("buffers"),o1=Symbol("error"),A4,jx=class{constructor(e){if(this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!A4){let t=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;A4=new HJ(t)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[r1];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let t=this._options,o=e.find(n=>!(t.serverNoContextTakeover===!1&&n.server_no_context_takeover||n.server_max_window_bits&&(t.serverMaxWindowBits===!1||typeof t.serverMaxWindowBits=="number"&&t.serverMaxWindowBits>n.server_max_window_bits)||typeof t.clientMaxWindowBits=="number"&&(typeof n.client_max_window_bits=="number"?t.clientMaxWindowBits>n.client_max_window_bits:!n.client_max_window_bits)));if(!o)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(o.server_no_context_takeover=!0),t.clientNoContextTakeover&&(o.client_no_context_takeover=!0),typeof t.serverMaxWindowBits=="number"&&(o.server_max_window_bits=t.serverMaxWindowBits),typeof t.clientMaxWindowBits=="number"?o.client_max_window_bits=t.clientMaxWindowBits:(o.client_max_window_bits===!0||t.clientMaxWindowBits===!1)&&delete o.client_max_window_bits,o}acceptAsClient(e){let t=e[0];if(this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!t.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return t}normalizeParams(e){return e.forEach(t=>{Object.keys(t).forEach(o=>{let n=t[o];if(n.length>1)throw new Error(`Parameter "${o}" must have only a single value`);if(n=n[0],o==="client_max_window_bits"){if(n!==!0){let i=+n;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${n}`);n=i}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${o}": ${n}`)}else if(o==="server_max_window_bits"){let i=+n;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${n}`);n=i}else if(o==="client_no_context_takeover"||o==="server_no_context_takeover"){if(n!==!0)throw new TypeError(`Invalid value for parameter "${o}": ${n}`)}else throw new Error(`Unknown parameter "${o}"`);t[o]=n})}),e}decompress(e,t,o){A4.add(n=>{this._decompress(e,t,(i,a)=>{n(),o(i,a)})})}compress(e,t,o){A4.add(n=>{this._compress(e,t,(i,a)=>{n(),o(i,a)})})}_decompress(e,t,o){let n=this._isServer?"client":"server";if(!this._inflate){let i=`${n}_max_window_bits`,a=typeof this.params[i]!="number"?J2.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=J2.createInflateRaw({...this._options.zlibInflateOptions,windowBits:a}),this._inflate[w4]=this,this._inflate[Sh]=0,this._inflate[mp]=[],this._inflate.on("error",KJ),this._inflate.on("data",IW)}this._inflate[r1]=o,this._inflate.write(e),t&&this._inflate.write(jJ),this._inflate.flush(()=>{let i=this._inflate[o1];if(i){this._inflate.close(),this._inflate=null,o(i);return}let a=WW.concat(this._inflate[mp],this._inflate[Sh]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Sh]=0,this._inflate[mp]=[],t&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),o(null,a)})}_compress(e,t,o){let n=this._isServer?"server":"client";if(!this._deflate){let i=`${n}_max_window_bits`,a=typeof this.params[i]!="number"?J2.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=J2.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:a}),this._deflate[Sh]=0,this._deflate[mp]=[],this._deflate.on("data",XJ)}this._deflate[r1]=o,this._deflate.write(e),this._deflate.flush(J2.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=WW.concat(this._deflate[mp],this._deflate[Sh]);t&&(i=new zJ(i.buffer,i.byteOffset,i.length-4)),this._deflate[r1]=null,this._deflate[Sh]=0,this._deflate[mp]=[],t&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),o(null,i)})}};RW.exports=jx;function XJ(r){this[mp].push(r),this[Sh]+=r.length}function IW(r){if(this[Sh]+=r.length,this[w4]._maxPayload<1||this[Sh]<=this[w4]._maxPayload){this[mp].push(r);return}this[o1]=new RangeError("Max payload size exceeded"),this[o1].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[o1][LW]=1009,this.removeListener("data",IW),this.reset()}function KJ(r){if(this[w4]._inflate=null,this[o1]){this[r1](this[o1]);return}r[LW]=1007,this[r1](r)}});var i1=cr((f7e,P4)=>{"use strict";var{isUtf8:_W}=Sn("buffer"),{hasBlob:YJ}=bh(),qJ=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function JJ(r){return r>=1e3&&r<=1014&&r!==1004&&r!==1005&&r!==1006||r>=3e3&&r<=4999}function Xx(r){let e=r.length,t=0;for(;t<e;)if((r[t]&128)===0)t++;else if((r[t]&224)===192){if(t+1===e||(r[t+1]&192)!==128||(r[t]&254)===192)return!1;t+=2}else if((r[t]&240)===224){if(t+2>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||r[t]===224&&(r[t+1]&224)===128||r[t]===237&&(r[t+1]&224)===160)return!1;t+=3}else if((r[t]&248)===240){if(t+3>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||(r[t+3]&192)!==128||r[t]===240&&(r[t+1]&240)===128||r[t]===244&&r[t+1]>143||r[t]>244)return!1;t+=4}else return!1;return!0}function $J(r){return YJ&&typeof r=="object"&&typeof r.arrayBuffer=="function"&&typeof r.type=="string"&&typeof r.stream=="function"&&(r[Symbol.toStringTag]==="Blob"||r[Symbol.toStringTag]==="File")}P4.exports={isBlob:$J,isValidStatusCode:JJ,isValidUTF8:Xx,tokenChars:qJ};if(_W)P4.exports.isValidUTF8=function(r){return r.length<24?Xx(r):_W(r)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let r=Sn("utf-8-validate");P4.exports.isValidUTF8=function(e){return e.length<32?Xx(e):r(e)}}catch{}});var $x=cr((g7e,VW)=>{"use strict";var{Writable:QJ}=Sn("stream"),UW=n1(),{BINARY_TYPES:ZJ,EMPTY_BUFFER:BW,kStatusCode:e$,kWebSocket:t$}=bh(),{concat:Kx,toArrayBuffer:r$,unmask:o$}=q2(),{isValidStatusCode:n$,isValidUTF8:DW}=i1(),v4=Buffer[Symbol.species],Ds=0,OW=1,FW=2,GW=3,Yx=4,qx=5,N4=6,Jx=class extends QJ{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||ZJ[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxBufferedChunks=e.maxBufferedChunks|0,this._maxFragments=e.maxFragments|0,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[t$]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._numFragments=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=Ds}_write(e,t,o){if(this._opcode===8&&this._state==Ds)return o();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){o(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(o)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let o=this._buffers[0];return this._buffers[0]=new v4(o.buffer,o.byteOffset+e,o.length-e),new v4(o.buffer,o.byteOffset,e)}let t=Buffer.allocUnsafe(e);do{let o=this._buffers[0],n=t.length-e;e>=o.length?t.set(this._buffers.shift(),n):(t.set(new Uint8Array(o.buffer,o.byteOffset,e),n),this._buffers[0]=new v4(o.buffer,o.byteOffset+e,o.length-e)),e-=o.length}while(e>0);return t}startLoop(e){this._loop=!0;do switch(this._state){case Ds:this.getInfo(e);break;case OW:this.getPayloadLength16(e);break;case FW:this.getPayloadLength64(e);break;case GW:this.getMask();break;case Yx:this.getData(e);break;case qx:case N4:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if((t[0]&48)!==0){let n=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(n);return}let o=(t[0]&64)===64;if(o&&!this._extensions[UW.extensionName]){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._fin=(t[0]&128)===128,this._opcode=t[0]&15,this._payloadLength=t[1]&127,this._opcode===0){if(o){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(!this._fragmented){let n=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._compressed=o}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let n=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(n);return}if(o){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let n=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(n);return}}else{let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(t[1]&128)===128,this._isServer){if(!this._masked){let n=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(n);return}}else if(this._masked){let n=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(n);return}this._payloadLength===126?this._state=OW:this._payloadLength===127?this._state=FW:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),o=t.readUInt32BE(0);if(o>Math.pow(2,21)-1){let n=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(n);return}this._payloadLength=o*Math.pow(2,32)+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let t=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}this._masked?this._state=GW:this._state=Yx}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Yx}getData(e){let t=BW;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}t=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&o$(t,this._mask)}if(this._opcode>7){this.controlMessage(t,e);return}if(this._maxFragments>0&&++this._numFragments>this._maxFragments){let o=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");e(o);return}if(this._compressed){this._state=qx,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){this._extensions[UW.extensionName].decompress(e,this._fin,(n,i)=>{if(n)return t(n);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let a=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(a);return}this._fragments.push(i)}this.dataMessage(t),this._state===Ds&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=Ds;return}let t=this._messageLength,o=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._numFragments=0,this._fragments=[],this._opcode===2){let n;this._binaryType==="nodebuffer"?n=Kx(o,t):this._binaryType==="arraybuffer"?n=r$(Kx(o,t)):this._binaryType==="blob"?n=new Blob(o):n=o,this._allowSynchronousEvents?(this.emit("message",n,!0),this._state=Ds):(this._state=N4,setImmediate(()=>{this.emit("message",n,!0),this._state=Ds,this.startLoop(e)}))}else{let n=Kx(o,t);if(!this._skipUTF8Validation&&!DW(n)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(i);return}this._state===qx||this._allowSynchronousEvents?(this.emit("message",n,!1),this._state=Ds):(this._state=N4,setImmediate(()=>{this.emit("message",n,!1),this._state=Ds,this.startLoop(e)}))}}controlMessage(e,t){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,BW),this.end();else{let o=e.readUInt16BE(0);if(!n$(o)){let i=this.createError(RangeError,`invalid status code ${o}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");t(i);return}let n=new v4(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!DW(n)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(i);return}this._loop=!1,this.emit("conclude",o,n),this.end()}this._state=Ds;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=Ds):(this._state=N4,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=Ds,this.startLoop(t)}))}createError(e,t,o,n,i){this._loop=!1,this._errored=!0;let a=new e(o?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(a,this.createError),a.code=i,a[e$]=n,a}};VW.exports=Jx});var e6=cr((S7e,jW)=>{"use strict";var{Duplex:b7e}=Sn("stream"),{randomFillSync:i$}=Sn("crypto"),{types:{isUint8Array:a$}}=Sn("util"),HW=n1(),{EMPTY_BUFFER:s$,kWebSocket:l$,NOOP:u$}=bh(),{isBlob:a1,isValidStatusCode:c$}=i1(),{mask:zW,toBuffer:Zd}=q2(),Os=Symbol("kByteLength"),h$=Buffer.alloc(4),x4=8*1024,ey,s1=x4,Wl=0,m$=1,p$=2,Qx=class r{constructor(e,t,o){this._extensions=t||{},o&&(this._generateMask=o,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=Wl,this.onerror=u$,this[l$]=void 0}static frame(e,t){let o,n=!1,i=2,a=!1;t.mask&&(o=t.maskBuffer||h$,t.generateMask?t.generateMask(o):(s1===x4&&(ey===void 0&&(ey=Buffer.alloc(x4)),i$(ey,0,x4),s1=0),o[0]=ey[s1++],o[1]=ey[s1++],o[2]=ey[s1++],o[3]=ey[s1++]),a=(o[0]|o[1]|o[2]|o[3])===0,i=6);let s;typeof e=="string"?(!t.mask||a)&&t[Os]!==void 0?s=t[Os]:(e=Buffer.from(e),s=e.length):(s=e.length,n=t.mask&&t.readOnly&&!a);let l=s;s>=65536?(i+=8,l=127):s>125&&(i+=2,l=126);let u=Buffer.allocUnsafe(n?s+i:i);return u[0]=t.fin?t.opcode|128:t.opcode,t.rsv1&&(u[0]|=64),u[1]=l,l===126?u.writeUInt16BE(s,2):l===127&&(u[2]=u[3]=0,u.writeUIntBE(s,4,6)),t.mask?(u[1]|=128,u[i-4]=o[0],u[i-3]=o[1],u[i-2]=o[2],u[i-1]=o[3],a?[u,e]:n?(zW(e,o,u,i,s),[u]):(zW(e,o,e,0,s),[u,e])):[u,e]}close(e,t,o,n){let i;if(e===void 0)i=s$;else{if(typeof e!="number"||!c$(e))throw new TypeError("First argument must be a valid error code number");if(t===void 0||!t.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(e,0);else{let s=Buffer.byteLength(t);if(s>123)throw new RangeError("The message must not be greater than 123 bytes");if(i=Buffer.allocUnsafe(2+s),i.writeUInt16BE(e,0),typeof t=="string")i.write(t,2);else if(a$(t))i.set(t,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let a={[Os]:i.length,fin:!0,generateMask:this._generateMask,mask:o,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==Wl?this.enqueue([this.dispatch,i,!1,a,n]):this.sendFrame(r.frame(i,a),n)}ping(e,t,o){let n,i;if(typeof e=="string"?(n=Buffer.byteLength(e),i=!1):a1(e)?(n=e.size,i=!1):(e=Zd(e),n=e.length,i=Zd.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[Os]:n,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};a1(e)?this._state!==Wl?this.enqueue([this.getBlobData,e,!1,a,o]):this.getBlobData(e,!1,a,o):this._state!==Wl?this.enqueue([this.dispatch,e,!1,a,o]):this.sendFrame(r.frame(e,a),o)}pong(e,t,o){let n,i;if(typeof e=="string"?(n=Buffer.byteLength(e),i=!1):a1(e)?(n=e.size,i=!1):(e=Zd(e),n=e.length,i=Zd.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[Os]:n,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};a1(e)?this._state!==Wl?this.enqueue([this.getBlobData,e,!1,a,o]):this.getBlobData(e,!1,a,o):this._state!==Wl?this.enqueue([this.dispatch,e,!1,a,o]):this.sendFrame(r.frame(e,a),o)}send(e,t,o){let n=this._extensions[HW.extensionName],i=t.binary?2:1,a=t.compress,s,l;typeof e=="string"?(s=Buffer.byteLength(e),l=!1):a1(e)?(s=e.size,l=!1):(e=Zd(e),s=e.length,l=Zd.readOnly),this._firstFragment?(this._firstFragment=!1,a&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(a=s>=n._threshold),this._compress=a):(a=!1,i=0),t.fin&&(this._firstFragment=!0);let u={[Os]:s,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:l,rsv1:a};a1(e)?this._state!==Wl?this.enqueue([this.getBlobData,e,this._compress,u,o]):this.getBlobData(e,this._compress,u,o):this._state!==Wl?this.enqueue([this.dispatch,e,this._compress,u,o]):this.dispatch(e,this._compress,u,o)}getBlobData(e,t,o,n){this._bufferedBytes+=o[Os],this._state=p$,e.arrayBuffer().then(i=>{if(this._socket.destroyed){let s=new Error("The socket was closed while the blob was being read");process.nextTick(Zx,this,s,n);return}this._bufferedBytes-=o[Os];let a=Zd(i);t?this.dispatch(a,t,o,n):(this._state=Wl,this.sendFrame(r.frame(a,o),n),this.dequeue())}).catch(i=>{process.nextTick(d$,this,i,n)})}dispatch(e,t,o,n){if(!t){this.sendFrame(r.frame(e,o),n);return}let i=this._extensions[HW.extensionName];this._bufferedBytes+=o[Os],this._state=m$,i.compress(e,o.fin,(a,s)=>{if(this._socket.destroyed){let l=new Error("The socket was closed while data was being compressed");Zx(this,l,n);return}this._bufferedBytes-=o[Os],this._state=Wl,o.readOnly=!1,this.sendFrame(r.frame(s,o),n),this.dequeue()})}dequeue(){for(;this._state===Wl&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][Os],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][Os],this._queue.push(e)}sendFrame(e,t){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};jW.exports=Qx;function Zx(r,e,t){typeof t=="function"&&t(e);for(let o=0;o<r._queue.length;o++){let n=r._queue[o],i=n[n.length-1];typeof i=="function"&&i(e)}}function d$(r,e,t){Zx(r,e,t),r.onerror(e)}});var eL=cr((A7e,ZW)=>{"use strict";var{kForOnEventAttribute:$2,kListener:t6}=bh(),XW=Symbol("kCode"),KW=Symbol("kData"),YW=Symbol("kError"),qW=Symbol("kMessage"),JW=Symbol("kReason"),l1=Symbol("kTarget"),$W=Symbol("kType"),QW=Symbol("kWasClean"),Ah=class{constructor(e){this[l1]=null,this[$W]=e}get target(){return this[l1]}get type(){return this[$W]}};Object.defineProperty(Ah.prototype,"target",{enumerable:!0});Object.defineProperty(Ah.prototype,"type",{enumerable:!0});var ty=class extends Ah{constructor(e,t={}){super(e),this[XW]=t.code===void 0?0:t.code,this[JW]=t.reason===void 0?"":t.reason,this[QW]=t.wasClean===void 0?!1:t.wasClean}get code(){return this[XW]}get reason(){return this[JW]}get wasClean(){return this[QW]}};Object.defineProperty(ty.prototype,"code",{enumerable:!0});Object.defineProperty(ty.prototype,"reason",{enumerable:!0});Object.defineProperty(ty.prototype,"wasClean",{enumerable:!0});var u1=class extends Ah{constructor(e,t={}){super(e),this[YW]=t.error===void 0?null:t.error,this[qW]=t.message===void 0?"":t.message}get error(){return this[YW]}get message(){return this[qW]}};Object.defineProperty(u1.prototype,"error",{enumerable:!0});Object.defineProperty(u1.prototype,"message",{enumerable:!0});var Q2=class extends Ah{constructor(e,t={}){super(e),this[KW]=t.data===void 0?null:t.data}get data(){return this[KW]}};Object.defineProperty(Q2.prototype,"data",{enumerable:!0});var y$={addEventListener(r,e,t={}){for(let n of this.listeners(r))if(!t[$2]&&n[t6]===e&&!n[$2])return;let o;if(r==="message")o=function(i,a){let s=new Q2("message",{data:a?i:i.toString()});s[l1]=this,E4(e,this,s)};else if(r==="close")o=function(i,a){let s=new ty("close",{code:i,reason:a.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});s[l1]=this,E4(e,this,s)};else if(r==="error")o=function(i){let a=new u1("error",{error:i,message:i.message});a[l1]=this,E4(e,this,a)};else if(r==="open")o=function(){let i=new Ah("open");i[l1]=this,E4(e,this,i)};else return;o[$2]=!!t[$2],o[t6]=e,t.once?this.once(r,o):this.on(r,o)},removeEventListener(r,e){for(let t of this.listeners(r))if(t[t6]===e&&!t[$2]){this.removeListener(r,t);break}}};ZW.exports={CloseEvent:ty,ErrorEvent:u1,Event:Ah,EventTarget:y$,MessageEvent:Q2};function E4(r,e,t){typeof r=="object"&&r.handleEvent?r.handleEvent.call(r,t):r.call(e,t)}});var C4=cr((w7e,tL)=>{"use strict";var{tokenChars:Z2}=i1();function $u(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}function f$(r){let e=Object.create(null),t=Object.create(null),o=!1,n=!1,i=!1,a,s,l=-1,u=-1,c=-1,h=0;for(;h<r.length;h++)if(u=r.charCodeAt(h),a===void 0)if(c===-1&&Z2[u]===1)l===-1&&(l=h);else if(h!==0&&(u===32||u===9))c===-1&&l!==-1&&(c=h);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${h}`);c===-1&&(c=h);let p=r.slice(l,c);u===44?($u(e,p,t),t=Object.create(null)):a=p,l=c=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);else if(s===void 0)if(c===-1&&Z2[u]===1)l===-1&&(l=h);else if(u===32||u===9)c===-1&&l!==-1&&(c=h);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${h}`);c===-1&&(c=h),$u(t,r.slice(l,c),!0),u===44&&($u(e,a,t),t=Object.create(null),a=void 0),l=c=-1}else if(u===61&&l!==-1&&c===-1)s=r.slice(l,h),l=c=-1;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(n){if(Z2[u]!==1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1?l=h:o||(o=!0),n=!1}else if(i)if(Z2[u]===1)l===-1&&(l=h);else if(u===34&&l!==-1)i=!1,c=h;else if(u===92)n=!0;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(u===34&&r.charCodeAt(h-1)===61)i=!0;else if(c===-1&&Z2[u]===1)l===-1&&(l=h);else if(l!==-1&&(u===32||u===9))c===-1&&(c=h);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${h}`);c===-1&&(c=h);let p=r.slice(l,c);o&&(p=p.replace(/\\/g,""),o=!1),$u(t,s,p),u===44&&($u(e,a,t),t=Object.create(null),a=void 0),s=void 0,l=c=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);if(l===-1||i||u===32||u===9)throw new SyntaxError("Unexpected end of input");c===-1&&(c=h);let m=r.slice(l,c);return a===void 0?$u(e,m,t):(s===void 0?$u(t,m,!0):o?$u(t,s,m.replace(/\\/g,"")):$u(t,s,m),$u(e,a,t)),e}function g$(r){return Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)||(t=[t]),t.map(o=>[e].concat(Object.keys(o).map(n=>{let i=o[n];return Array.isArray(i)||(i=[i]),i.map(a=>a===!0?n:`${n}=${a}`).join("; ")})).join("; ")).join(", ")}).join(", ")}tL.exports={format:g$,parse:f$}});var W4=cr((N7e,pL)=>{"use strict";var b$=Sn("events"),S$=Sn("https"),A$=Sn("http"),nL=Sn("net"),w$=Sn("tls"),{randomBytes:P$,createHash:v$}=Sn("crypto"),{Duplex:P7e,Readable:v7e}=Sn("stream"),{URL:r6}=Sn("url"),pp=n1(),N$=$x(),x$=e6(),{isBlob:E$}=i1(),{BINARY_TYPES:rL,CLOSE_TIMEOUT:C$,EMPTY_BUFFER:k4,GUID:k$,kForOnEventAttribute:o6,kListener:M$,kStatusCode:T$,kWebSocket:ii,NOOP:iL}=bh(),{EventTarget:{addEventListener:W$,removeEventListener:L$}}=eL(),{format:I$,parse:R$}=C4(),{toBuffer:_$}=q2(),aL=Symbol("kAborted"),n6=[8,13],wh=["CONNECTING","OPEN","CLOSING","CLOSED"],U$=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,qo=class r extends b${constructor(e,t,o){super(),this._binaryType=rL[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=k4,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=r.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,t===void 0?!o||o.protocols===void 0?t=[]:Array.isArray(o.protocols)?t=o.protocols:t=[o.protocols]:Array.isArray(t)||(typeof t=="object"&&t!==null?(o=t,o.protocols===void 0?t=[]:Array.isArray(o.protocols)?t=o.protocols:t=[o.protocols]):t=[t]),sL(this,e,t,o)):(this._autoPong=o.autoPong,this._closeTimeout=o.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){rL.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,o){let n=new N$({allowSynchronousEvents:o.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:o.maxBufferedChunks,maxFragments:o.maxFragments,maxPayload:o.maxPayload,skipUTF8Validation:o.skipUTF8Validation}),i=new x$(e,this._extensions,o.generateMask);this._receiver=n,this._sender=i,this._socket=e,n[ii]=this,i[ii]=this,e[ii]=this,n.on("conclude",O$),n.on("drain",F$),n.on("error",G$),n.on("message",V$),n.on("ping",H$),n.on("pong",z$),i.onerror=j$,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),t.length>0&&e.unshift(t),e.on("close",cL),e.on("data",T4),e.on("end",hL),e.on("error",mL),this._readyState=r.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[pp.extensionName]&&this._extensions[pp.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){ls(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===r.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._sender.close(e,t,!this._isServer,o=>{o||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),this._readyState=r.CLOSING,uL(this)}}pause(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,t,o){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(o=e,e=t=void 0):typeof t=="function"&&(o=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){i6(this,e,o);return}t===void 0&&(t=!this._isServer),this._sender.ping(e||k4,t,o)}pong(e,t,o){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(o=e,e=t=void 0):typeof t=="function"&&(o=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){i6(this,e,o);return}t===void 0&&(t=!this._isServer),this._sender.pong(e||k4,t,o)}resume(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,t,o){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"&&(o=t,t={}),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){i6(this,e,o);return}let n={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[pp.extensionName]||(n.compress=!1),this._sender.send(e||k4,n,o)}terminate(){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){ls(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=r.CLOSING,this._socket.destroy())}}};Object.defineProperty(qo,"CONNECTING",{enumerable:!0,value:wh.indexOf("CONNECTING")});Object.defineProperty(qo.prototype,"CONNECTING",{enumerable:!0,value:wh.indexOf("CONNECTING")});Object.defineProperty(qo,"OPEN",{enumerable:!0,value:wh.indexOf("OPEN")});Object.defineProperty(qo.prototype,"OPEN",{enumerable:!0,value:wh.indexOf("OPEN")});Object.defineProperty(qo,"CLOSING",{enumerable:!0,value:wh.indexOf("CLOSING")});Object.defineProperty(qo.prototype,"CLOSING",{enumerable:!0,value:wh.indexOf("CLOSING")});Object.defineProperty(qo,"CLOSED",{enumerable:!0,value:wh.indexOf("CLOSED")});Object.defineProperty(qo.prototype,"CLOSED",{enumerable:!0,value:wh.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(r=>{Object.defineProperty(qo.prototype,r,{enumerable:!0})});["open","error","close","message"].forEach(r=>{Object.defineProperty(qo.prototype,`on${r}`,{enumerable:!0,get(){for(let e of this.listeners(r))if(e[o6])return e[M$];return null},set(e){for(let t of this.listeners(r))if(t[o6]){this.removeListener(r,t);break}typeof e=="function"&&this.addEventListener(r,e,{[o6]:!0})}})});qo.prototype.addEventListener=W$;qo.prototype.removeEventListener=L$;pL.exports=qo;function sL(r,e,t,o){let n={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:C$,protocolVersion:n6[1],maxBufferedChunks:262144,maxFragments:16384,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...o,socketPath:void 0,hostname:void 0,protocol:void 0,protocols:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(r._autoPong=n.autoPong,r._closeTimeout=n.closeTimeout,!n6.includes(n.protocolVersion))throw new RangeError(`Unsupported protocol version: ${n.protocolVersion} (supported versions: ${n6.join(", ")})`);let i;if(e instanceof r6)i=e;else try{i=new r6(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),r._url=i.href;let a=i.protocol==="wss:",s=i.protocol==="ws+unix:",l;if(i.protocol!=="ws:"&&!a&&!s?l=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:s&&!i.pathname?l="The URL's pathname is empty":i.hash&&(l="The URL contains a fragment identifier"),l){let d=new SyntaxError(l);if(r._redirects===0)throw d;M4(r,d);return}let u=a?443:80,c=P$(16).toString("base64"),h=a?S$.request:A$.request,m=new Set,p;if(n.createConnection=n.createConnection||(a?D$:B$),n.defaultPort=n.defaultPort||u,n.port=i.port||u,n.host=i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,n.headers={...n.headers,"Sec-WebSocket-Version":n.protocolVersion,"Sec-WebSocket-Key":c,Connection:"Upgrade",Upgrade:"websocket"},n.path=i.pathname+i.search,n.timeout=n.handshakeTimeout,n.perMessageDeflate&&(p=new pp({...n.perMessageDeflate,isServer:!1,maxPayload:n.maxPayload}),n.headers["Sec-WebSocket-Extensions"]=I$({[pp.extensionName]:p.offer()})),t.length){for(let d of t){if(typeof d!="string"||!U$.test(d)||m.has(d))throw new SyntaxError("An invalid or duplicated subprotocol was specified");m.add(d)}n.headers["Sec-WebSocket-Protocol"]=t.join(",")}if(n.origin&&(n.protocolVersion<13?n.headers["Sec-WebSocket-Origin"]=n.origin:n.headers.Origin=n.origin),(i.username||i.password)&&(n.auth=`${i.username}:${i.password}`),s){let d=n.path.split(":");n.socketPath=d[0],n.path=d[1]}let g;if(n.followRedirects){if(r._redirects===0){r._originalIpc=s,r._originalSecure=a,r._originalHostOrSocketPath=s?n.socketPath:i.host;let d=o&&o.headers;if(o={...o,headers:{}},d)for(let[f,b]of Object.entries(d))o.headers[f.toLowerCase()]=b}else if(r.listenerCount("redirect")===0){let d=s?r._originalIpc?n.socketPath===r._originalHostOrSocketPath:!1:r._originalIpc?!1:i.host===r._originalHostOrSocketPath;(!d||r._originalSecure&&!a)&&(delete n.headers.authorization,delete n.headers.cookie,d||delete n.headers.host,n.auth=void 0)}n.auth&&!o.headers.authorization&&(o.headers.authorization="Basic "+Buffer.from(n.auth).toString("base64")),g=r._req=h(n),r._redirects&&r.emit("redirect",r.url,g)}else g=r._req=h(n);n.timeout&&g.on("timeout",()=>{ls(r,g,"Opening handshake has timed out")}),g.on("error",d=>{g===null||g[aL]||(g=r._req=null,M4(r,d))}),g.on("response",d=>{let f=d.headers.location,b=d.statusCode;if(f&&n.followRedirects&&b>=300&&b<400){if(++r._redirects>n.maxRedirects){ls(r,g,"Maximum redirects exceeded");return}g.abort();let w;try{w=new r6(f,e)}catch{let A=new SyntaxError(`Invalid URL: ${f}`);M4(r,A);return}sL(r,w,t,o)}else r.emit("unexpected-response",g,d)||ls(r,g,`Unexpected server response: ${d.statusCode}`)}),g.on("upgrade",(d,f,b)=>{if(r.emit("upgrade",d),r.readyState!==qo.CONNECTING)return;g=r._req=null;let w=d.headers.upgrade;if(w===void 0||w.toLowerCase()!=="websocket"){ls(r,f,"Invalid Upgrade header");return}let P=v$("sha1").update(c+k$).digest("base64");if(d.headers["sec-websocket-accept"]!==P){ls(r,f,"Invalid Sec-WebSocket-Accept header");return}let A=d.headers["sec-websocket-protocol"],M;if(A!==void 0?m.size?m.has(A)||(M="Server sent an invalid subprotocol"):M="Server sent a subprotocol but none was requested":m.size&&(M="Server sent no subprotocol"),M){ls(r,f,M);return}A&&(r._protocol=A);let E=d.headers["sec-websocket-extensions"];if(E!==void 0){if(!p){ls(r,f,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let U;try{U=R$(E)}catch{ls(r,f,"Invalid Sec-WebSocket-Extensions header");return}let F=Object.keys(U);if(F.length!==1||F[0]!==pp.extensionName){ls(r,f,"Server indicated an extension that was not requested");return}try{p.accept(U[pp.extensionName])}catch{ls(r,f,"Invalid Sec-WebSocket-Extensions header");return}r._extensions[pp.extensionName]=p}r.setSocket(f,b,{allowSynchronousEvents:n.allowSynchronousEvents,generateMask:n.generateMask,maxBufferedChunks:n.maxBufferedChunks,maxFragments:n.maxFragments,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation})}),n.finishRequest?n.finishRequest(g,r):g.end()}function M4(r,e){r._readyState=qo.CLOSING,r._errorEmitted=!0,r.emit("error",e),r.emitClose()}function B$(r){return r.path=r.socketPath,nL.connect(r)}function D$(r){return r.path=void 0,!r.servername&&r.servername!==""&&(r.servername=nL.isIP(r.host)?"":r.host),w$.connect(r)}function ls(r,e,t){r._readyState=qo.CLOSING;let o=new Error(t);Error.captureStackTrace(o,ls),e.setHeader?(e[aL]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(M4,r,o)):(e.destroy(o),e.once("error",r.emit.bind(r,"error")),e.once("close",r.emitClose.bind(r)))}function i6(r,e,t){if(e){let o=E$(e)?e.size:_$(e).length;r._socket?r._sender._bufferedBytes+=o:r._bufferedAmount+=o}if(t){let o=new Error(`WebSocket is not open: readyState ${r.readyState} (${wh[r.readyState]})`);process.nextTick(t,o)}}function O$(r,e){let t=this[ii];t._closeFrameReceived=!0,t._closeMessage=e,t._closeCode=r,t._socket[ii]!==void 0&&(t._socket.removeListener("data",T4),process.nextTick(lL,t._socket),r===1005?t.close():t.close(r,e))}function F$(){let r=this[ii];r.isPaused||r._socket.resume()}function G$(r){let e=this[ii];e._socket[ii]!==void 0&&(e._socket.removeListener("data",T4),process.nextTick(lL,e._socket),e.close(r[T$])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r))}function oL(){this[ii].emitClose()}function V$(r,e){this[ii].emit("message",r,e)}function H$(r){let e=this[ii];e._autoPong&&e.pong(r,!this._isServer,iL),e.emit("ping",r)}function z$(r){this[ii].emit("pong",r)}function lL(r){r.resume()}function j$(r){let e=this[ii];e.readyState!==qo.CLOSED&&(e.readyState===qo.OPEN&&(e._readyState=qo.CLOSING,uL(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r)))}function uL(r){r._closeTimer=setTimeout(r._socket.destroy.bind(r._socket),r._closeTimeout)}function cL(){let r=this[ii];if(this.removeListener("close",cL),this.removeListener("data",T4),this.removeListener("end",hL),r._readyState=qo.CLOSING,!this._readableState.endEmitted&&!r._closeFrameReceived&&!r._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);r._receiver.write(e)}r._receiver.end(),this[ii]=void 0,clearTimeout(r._closeTimer),r._receiver._writableState.finished||r._receiver._writableState.errorEmitted?r.emitClose():(r._receiver.on("error",oL),r._receiver.on("finish",oL))}function T4(r){this[ii]._receiver.write(r)||this.pause()}function hL(){let r=this[ii];r._readyState=qo.CLOSING,r._receiver.end(),this.end()}function mL(){let r=this[ii];this.removeListener("error",mL),this.on("error",iL),r&&(r._readyState=qo.CLOSING,this.destroy())}});var gL=cr((E7e,fL)=>{"use strict";var x7e=W4(),{Duplex:X$}=Sn("stream");function dL(r){r.emit("close")}function K$(){!this.destroyed&&this._writableState.finished&&this.destroy()}function yL(r){this.removeListener("error",yL),this.destroy(),this.listenerCount("error")===0&&this.emit("error",r)}function Y$(r,e){let t=!0,o=new X$({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return r.on("message",function(i,a){let s=!a&&o._readableState.objectMode?i.toString():i;o.push(s)||r.pause()}),r.once("error",function(i){o.destroyed||(t=!1,o.destroy(i))}),r.once("close",function(){o.destroyed||o.push(null)}),o._destroy=function(n,i){if(r.readyState===r.CLOSED){i(n),process.nextTick(dL,o);return}let a=!1;r.once("error",function(l){a=!0,i(l)}),r.once("close",function(){a||i(n),process.nextTick(dL,o)}),t&&r.terminate()},o._final=function(n){if(r.readyState===r.CONNECTING){r.once("open",function(){o._final(n)});return}r._socket!==null&&(r._socket._writableState.finished?(n(),o._readableState.endEmitted&&o.destroy()):(r._socket.once("finish",function(){n()}),r.close()))},o._read=function(){r.isPaused&&r.resume()},o._write=function(n,i,a){if(r.readyState===r.CONNECTING){r.once("open",function(){o._write(n,i,a)});return}r.send(n,a)},o.on("end",K$),o.on("error",yL),o}fL.exports=Y$});var a6=cr((C7e,bL)=>{"use strict";var{tokenChars:q$}=i1();function J$(r){let e=new Set,t=-1,o=-1,n=0;for(n;n<r.length;n++){let a=r.charCodeAt(n);if(o===-1&&q$[a]===1)t===-1&&(t=n);else if(n!==0&&(a===32||a===9))o===-1&&t!==-1&&(o=n);else if(a===44){if(t===-1)throw new SyntaxError(`Unexpected character at index ${n}`);o===-1&&(o=n);let s=r.slice(t,o);if(e.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);e.add(s),t=o=-1}else throw new SyntaxError(`Unexpected character at index ${n}`)}if(t===-1||o!==-1)throw new SyntaxError("Unexpected end of input");let i=r.slice(t,n);if(e.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return e.add(i),e}bL.exports={parse:J$}});var xL=cr((M7e,NL)=>{"use strict";var $$=Sn("events"),L4=Sn("http"),{Duplex:k7e}=Sn("stream"),{createHash:Q$}=Sn("crypto"),SL=C4(),ry=n1(),Z$=a6(),eQ=W4(),{CLOSE_TIMEOUT:tQ,GUID:rQ,kWebSocket:oQ}=bh(),nQ=/^[+/0-9A-Za-z]{22}==$/,AL=0,wL=1,vL=2,s6=class extends $${constructor(e,t){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:256*1024,maxFragments:16*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:tQ,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:eQ,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=L4.createServer((o,n)=>{let i=L4.STATUS_CODES[426];n.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),n.end(i)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){let o=this.emit.bind(this,"connection");this._removeListeners=iQ(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(n,i,a)=>{this.handleUpgrade(n,i,a,o)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=AL}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===vL){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(e3,this);return}if(e&&this.once("close",e),this._state!==wL)if(this._state=wL,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(e3,this):process.nextTick(e3,this);else{let t=this._server;this._removeListeners(),this._removeListeners=this._server=null,t.close(()=>{e3(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf("?");if((t!==-1?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,o,n){t.on("error",PL);let i=e.headers["sec-websocket-key"],a=e.headers.upgrade,s=+e.headers["sec-websocket-version"];if(e.method!=="GET"){oy(this,e,t,405,"Invalid HTTP method");return}if(a===void 0||a.toLowerCase()!=="websocket"){oy(this,e,t,400,"Invalid Upgrade header");return}if(i===void 0||!nQ.test(i)){oy(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header");return}if(s!==13&&s!==8){oy(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){t3(t,400);return}let l=e.headers["sec-websocket-protocol"],u=new Set;if(l!==void 0)try{u=Z$.parse(l)}catch{oy(this,e,t,400,"Invalid Sec-WebSocket-Protocol header");return}let c=e.headers["sec-websocket-extensions"],h={};if(this.options.perMessageDeflate&&c!==void 0){let m=new ry({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=SL.parse(c);p[ry.extensionName]&&(m.accept(p[ry.extensionName]),h[ry.extensionName]=m)}catch{oy(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let m={origin:e.headers[`${s===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(m,(p,g,d,f)=>{if(!p)return t3(t,g||401,d,f);this.completeUpgrade(h,i,u,e,t,o,n)});return}if(!this.options.verifyClient(m))return t3(t,401)}this.completeUpgrade(h,i,u,e,t,o,n)}completeUpgrade(e,t,o,n,i,a,s){if(!i.readable||!i.writable)return i.destroy();if(i[oQ])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>AL)return t3(i,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Q$("sha1").update(t+rQ).digest("base64")}`],c=new this.options.WebSocket(null,void 0,this.options);if(o.size){let h=this.options.handleProtocols?this.options.handleProtocols(o,n):o.values().next().value;h&&(u.push(`Sec-WebSocket-Protocol: ${h}`),c._protocol=h)}if(e[ry.extensionName]){let h=e[ry.extensionName].params,m=SL.format({[ry.extensionName]:[h]});u.push(`Sec-WebSocket-Extensions: ${m}`),c._extensions=e}this.emit("headers",u,n),i.write(u.concat(`\r
|
|
4
|
+
`,Mq="IHDR",KT="CgBI";function Tq(r){if(kq===r.toString("ascii",1,8)){var e=r.toString("ascii",12,16);if(e===KT&&(e=r.toString("ascii",28,32)),e!==Mq)throw new TypeError("invalid png");return!0}}function Wq(r){return r.toString("ascii",12,16)===KT?{width:r.readUInt32BE(32),height:r.readUInt32BE(36)}:{width:r.readUInt32BE(16),height:r.readUInt32BE(20)}}YT.exports={detect:Tq,calculate:Wq}});var $T=cr((I2e,JT)=>{"use strict";function Lq(r){return r.toString("ascii",0,4)==="8BPS"}function Iq(r){return{width:r.readUInt32BE(18),height:r.readUInt32BE(14)}}JT.exports={detect:Lq,calculate:Iq}});var ZT=cr((R2e,QT)=>{"use strict";var Rq=/<svg[^>]+[^>]*>/;function _q(r){return Rq.test(r)}var m4={root:/<svg\s[^>]+>/,width:/\bwidth=(['"])([^%]+?)\1/,height:/\bheight=(['"])([^%]+?)\1/,viewbox:/\bviewBox=(['"])(.+?)\1/};function Uq(r){var e=r.split(" ");return{width:parseInt(e[2],10),height:parseInt(e[3],10)}}function Bq(r){var e=r.match(m4.width),t=r.match(m4.height),o=r.match(m4.viewbox);return{width:e&&parseInt(e[2],10),height:t&&parseInt(t[2],10),viewbox:o&&Uq(o[2])}}function Dq(r){return{width:r.width,height:r.height}}function Oq(r){var e=r.viewbox.width/r.viewbox.height;return r.width?{width:r.width,height:Math.floor(r.width/e)}:r.height?{width:Math.floor(r.height*e),height:r.height}:{width:r.viewbox.width,height:r.viewbox.height}}function Fq(r){var e=r.toString("utf8").match(m4.root);if(e){var t=Bq(e[0]);if(t.width&&t.height)return Dq(t);if(t.viewbox)return Oq(t)}throw new TypeError("invalid svg")}QT.exports={detect:_q,calculate:Fq}});var tW=cr((_2e,eW)=>{"use strict";function Gq(r){var e=r.toString("ascii",0,4)==="RIFF",t=r.toString("ascii",8,12)==="WEBP",o=r.toString("ascii",12,15)==="VP8";return e&&t&&o}function Vq(r){var e=r.toString("ascii",12,16);if(r=r.slice(20,30),e==="VP8X"){var t=r[0],o=(t&192)===0,n=(t&1)===0;return o&&n?Hq(r):!1}if(e==="VP8 "&&r[0]!==47)return jq(r);var i=r.toString("hex",3,6);return e==="VP8L"&&i!=="9d012a"?zq(r):!1}function Hq(r){return{width:1+r.readUIntLE(4,3),height:1+r.readUIntLE(7,3)}}function zq(r){return{width:1+((r[2]&63)<<8|r[1]),height:1+((r[4]&15)<<10|r[3]<<2|(r[2]&192)>>6)}}function jq(r){return{width:r.readInt16LE(6)&16383,height:r.readInt16LE(8)&16383}}eW.exports={detect:Gq,calculate:Vq}});var Ax=cr((U2e,rW)=>{"use strict";var Xq={bmp:_T(),cur:FT(),dds:VT(),gif:zT(),ico:Sx(),jpg:XT(),png:qT(),psd:$T(),svg:ZT(),webp:tW()};rW.exports=Xq});var iW=cr((B2e,nW)=>{"use strict";var oW=Ax();nW.exports=function(r){var e,t;for(e in oW)if(t=oW[e].detect(r),t)return e}});var aW=cr((D2e,Px)=>{"use strict";var wx=Ax(),Kq=iW();function Yq(r){var e=Kq(r);if(e in wx){var t=wx[e].calculate(r);if(t!==!1)return t.type=e,t}throw new TypeError("unsupported file type: "+e)}Px.exports=function(r){if(Buffer.isBuffer(r))return Yq(r);throw new TypeError("expecting only a buffer as input")};Px.exports.types=Object.keys(wx)});var K2=cr(cp=>{"use strict";cp.removeLeadingAndTrailingHTTPWhitespace=r=>r.replace(/^[ \t\n\r]+/u,"").replace(/[ \t\n\r]+$/u,"");cp.removeTrailingHTTPWhitespace=r=>r.replace(/[ \t\n\r]+$/u,"");cp.isHTTPWhitespaceChar=r=>r===" "||r===" "||r===`
|
|
5
|
+
`||r==="\r";cp.solelyContainsHTTPTokenCodePoints=r=>/^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/u.test(r);cp.soleyContainsHTTPQuotedStringTokenCodePoints=r=>/^[\t\u0020-\u007E\u0080-\u00FF]*$/u.test(r);cp.asciiLowercase=r=>r.replace(/[A-Z]/ug,e=>e.toLowerCase());cp.collectAnHTTPQuotedString=(r,e)=>{let t="";for(e++;;){for(;e<r.length&&r[e]!=='"'&&r[e]!=="\\";)t+=r[e],++e;if(e>=r.length)break;let o=r[e];if(++e,o==="\\"){if(e>=r.length){t+="\\";break}t+=r[e],++e}else break}return[t,e]}});var mW=cr((z5e,hW)=>{"use strict";var{asciiLowercase:b4,solelyContainsHTTPTokenCodePoints:EJ,soleyContainsHTTPQuotedStringTokenCodePoints:CJ}=K2();hW.exports=class{constructor(e){this._map=e}get size(){return this._map.size}get(e){return e=b4(String(e)),this._map.get(e)}has(e){return e=b4(String(e)),this._map.has(e)}set(e,t){if(e=b4(String(e)),t=String(t),!EJ(e))throw new Error(`Invalid MIME type parameter name "${e}": only HTTP token code points are valid.`);if(!CJ(t))throw new Error(`Invalid MIME type parameter value "${t}": only HTTP quoted-string token code points are valid.`);return this._map.set(e,t)}clear(){this._map.clear()}delete(e){return e=b4(String(e)),this._map.delete(e)}forEach(e,t){this._map.forEach(e,t)}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}[Symbol.iterator](){return this._map[Symbol.iterator]()}}});var yW=cr((j5e,dW)=>{"use strict";var{removeLeadingAndTrailingHTTPWhitespace:kJ,removeTrailingHTTPWhitespace:pW,isHTTPWhitespaceChar:MJ,solelyContainsHTTPTokenCodePoints:_x,soleyContainsHTTPQuotedStringTokenCodePoints:TJ,asciiLowercase:Ux,collectAnHTTPQuotedString:WJ}=K2();dW.exports=r=>{r=kJ(r);let e=0,t="";for(;e<r.length&&r[e]!=="/";)t+=r[e],++e;if(t.length===0||!_x(t)||e>=r.length)return null;++e;let o="";for(;e<r.length&&r[e]!==";";)o+=r[e],++e;if(o=pW(o),o.length===0||!_x(o))return null;let n={type:Ux(t),subtype:Ux(o),parameters:new Map};for(;e<r.length;){for(++e;MJ(r[e]);)++e;let i="";for(;e<r.length&&r[e]!==";"&&r[e]!=="=";)i+=r[e],++e;if(i=Ux(i),e<r.length){if(r[e]===";")continue;++e}let a=null;if(r[e]==='"')for([a,e]=WJ(r,e);e<r.length&&r[e]!==";";)++e;else{for(a="";e<r.length&&r[e]!==";";)a+=r[e],++e;if(a=pW(a),a==="")continue}i.length>0&&_x(i)&&TJ(a)&&!n.parameters.has(i)&&n.parameters.set(i,a)}return n}});var gW=cr((X5e,fW)=>{"use strict";var{solelyContainsHTTPTokenCodePoints:LJ}=K2();fW.exports=r=>{let e=`${r.type}/${r.subtype}`;if(r.parameters.size===0)return e;for(let[t,o]of r.parameters)e+=";",e+=t,e+="=",(!LJ(o)||o.length===0)&&(o=o.replace(/(["\\])/ug,"\\$1"),o=`"${o}"`),e+=o;return e}});var wW=cr((Y5e,AW)=>{"use strict";var IJ=mW(),RJ=yW(),_J=gW(),{asciiLowercase:bW,solelyContainsHTTPTokenCodePoints:SW}=K2();AW.exports=class{constructor(e){e=String(e);let t=RJ(e);if(t===null)throw new Error(`Could not parse MIME type string "${e}"`);this._type=t.type,this._subtype=t.subtype,this._parameters=new IJ(t.parameters)}static parse(e){try{return new this(e)}catch{return null}}get essence(){return`${this.type}/${this.subtype}`}get type(){return this._type}set type(e){if(e=bW(String(e)),e.length===0)throw new Error("Invalid type: must be a non-empty string");if(!SW(e))throw new Error(`Invalid type ${e}: must contain only HTTP token code points`);this._type=e}get subtype(){return this._subtype}set subtype(e){if(e=bW(String(e)),e.length===0)throw new Error("Invalid subtype: must be a non-empty string");if(!SW(e))throw new Error(`Invalid subtype ${e}: must contain only HTTP token code points`);this._subtype=e}get parameters(){return this._parameters}toString(){return _J(this)}isJavaScript({prohibitParameters:e=!1}={}){switch(this._type){case"text":switch(this._subtype){case"ecmascript":case"javascript":case"javascript1.0":case"javascript1.1":case"javascript1.2":case"javascript1.3":case"javascript1.4":case"javascript1.5":case"jscript":case"livescript":case"x-ecmascript":case"x-javascript":return!e||this._parameters.size===0;default:return!1}case"application":switch(this._subtype){case"ecmascript":case"javascript":case"x-ecmascript":case"x-javascript":return!e||this._parameters.size===0;default:return!1}default:return!1}}isXML(){return this._subtype==="xml"&&(this._type==="text"||this._type==="application")||this._subtype.endsWith("+xml")}isHTML(){return this._subtype==="html"&&this._type==="text"}}});var bh=cr((p7e,xW)=>{"use strict";var vW=["nodebuffer","arraybuffer","fragments"],NW=typeof Blob<"u";NW&&vW.push("blob");xW.exports={BINARY_TYPES:vW,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:NW,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var q2=cr((d7e,S4)=>{"use strict";var{EMPTY_BUFFER:FJ}=bh(),Gx=Buffer[Symbol.species];function GJ(r,e){if(r.length===0)return FJ;if(r.length===1)return r[0];let t=Buffer.allocUnsafe(e),o=0;for(let n=0;n<r.length;n++){let i=r[n];t.set(i,o),o+=i.length}return o<e?new Gx(t.buffer,t.byteOffset,o):t}function EW(r,e,t,o,n){for(let i=0;i<n;i++)t[o+i]=r[i]^e[i&3]}function CW(r,e){for(let t=0;t<r.length;t++)r[t]^=e[t&3]}function VJ(r){return r.length===r.buffer.byteLength?r.buffer:r.buffer.slice(r.byteOffset,r.byteOffset+r.length)}function Vx(r){if(Vx.readOnly=!0,Buffer.isBuffer(r))return r;let e;return r instanceof ArrayBuffer?e=new Gx(r):ArrayBuffer.isView(r)?e=new Gx(r.buffer,r.byteOffset,r.byteLength):(e=Buffer.from(r),Vx.readOnly=!1),e}S4.exports={concat:GJ,mask:EW,toArrayBuffer:VJ,toBuffer:Vx,unmask:CW};if(!process.env.WS_NO_BUFFER_UTIL)try{let r=Sn("bufferutil");S4.exports.mask=function(e,t,o,n,i){i<48?EW(e,t,o,n,i):r.mask(e,t,o,n,i)},S4.exports.unmask=function(e,t){e.length<32?CW(e,t):r.unmask(e,t)}}catch{}});var TW=cr((y7e,MW)=>{"use strict";var kW=Symbol("kDone"),Hx=Symbol("kRun"),zx=class{constructor(e){this[kW]=()=>{this.pending--,this[Hx]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Hx]()}[Hx](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[kW])}}};MW.exports=zx});var n1=cr((f7e,RW)=>{"use strict";var J2=Sn("zlib"),WW=q2(),HJ=TW(),{kStatusCode:LW}=bh(),zJ=Buffer[Symbol.species],jJ=Buffer.from([0,0,255,255]),w4=Symbol("permessage-deflate"),Sh=Symbol("total-length"),r1=Symbol("callback"),mp=Symbol("buffers"),o1=Symbol("error"),A4,jx=class{constructor(e){if(this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!A4){let t=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;A4=new HJ(t)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[r1];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let t=this._options,o=e.find(n=>!(t.serverNoContextTakeover===!1&&n.server_no_context_takeover||n.server_max_window_bits&&(t.serverMaxWindowBits===!1||typeof t.serverMaxWindowBits=="number"&&t.serverMaxWindowBits>n.server_max_window_bits)||typeof t.clientMaxWindowBits=="number"&&(typeof n.client_max_window_bits=="number"?t.clientMaxWindowBits>n.client_max_window_bits:!n.client_max_window_bits)));if(!o)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(o.server_no_context_takeover=!0),t.clientNoContextTakeover&&(o.client_no_context_takeover=!0),typeof t.serverMaxWindowBits=="number"&&(o.server_max_window_bits=t.serverMaxWindowBits),typeof t.clientMaxWindowBits=="number"?o.client_max_window_bits=t.clientMaxWindowBits:(o.client_max_window_bits===!0||t.clientMaxWindowBits===!1)&&delete o.client_max_window_bits,o}acceptAsClient(e){let t=e[0];if(this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!t.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return t}normalizeParams(e){return e.forEach(t=>{Object.keys(t).forEach(o=>{let n=t[o];if(n.length>1)throw new Error(`Parameter "${o}" must have only a single value`);if(n=n[0],o==="client_max_window_bits"){if(n!==!0){let i=+n;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${n}`);n=i}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${o}": ${n}`)}else if(o==="server_max_window_bits"){let i=+n;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${n}`);n=i}else if(o==="client_no_context_takeover"||o==="server_no_context_takeover"){if(n!==!0)throw new TypeError(`Invalid value for parameter "${o}": ${n}`)}else throw new Error(`Unknown parameter "${o}"`);t[o]=n})}),e}decompress(e,t,o){A4.add(n=>{this._decompress(e,t,(i,a)=>{n(),o(i,a)})})}compress(e,t,o){A4.add(n=>{this._compress(e,t,(i,a)=>{n(),o(i,a)})})}_decompress(e,t,o){let n=this._isServer?"client":"server";if(!this._inflate){let i=`${n}_max_window_bits`,a=typeof this.params[i]!="number"?J2.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=J2.createInflateRaw({...this._options.zlibInflateOptions,windowBits:a}),this._inflate[w4]=this,this._inflate[Sh]=0,this._inflate[mp]=[],this._inflate.on("error",KJ),this._inflate.on("data",IW)}this._inflate[r1]=o,this._inflate.write(e),t&&this._inflate.write(jJ),this._inflate.flush(()=>{let i=this._inflate[o1];if(i){this._inflate.close(),this._inflate=null,o(i);return}let a=WW.concat(this._inflate[mp],this._inflate[Sh]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Sh]=0,this._inflate[mp]=[],t&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),o(null,a)})}_compress(e,t,o){let n=this._isServer?"server":"client";if(!this._deflate){let i=`${n}_max_window_bits`,a=typeof this.params[i]!="number"?J2.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=J2.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:a}),this._deflate[Sh]=0,this._deflate[mp]=[],this._deflate.on("data",XJ)}this._deflate[r1]=o,this._deflate.write(e),this._deflate.flush(J2.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=WW.concat(this._deflate[mp],this._deflate[Sh]);t&&(i=new zJ(i.buffer,i.byteOffset,i.length-4)),this._deflate[r1]=null,this._deflate[Sh]=0,this._deflate[mp]=[],t&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),o(null,i)})}};RW.exports=jx;function XJ(r){this[mp].push(r),this[Sh]+=r.length}function IW(r){if(this[Sh]+=r.length,this[w4]._maxPayload<1||this[Sh]<=this[w4]._maxPayload){this[mp].push(r);return}this[o1]=new RangeError("Max payload size exceeded"),this[o1].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[o1][LW]=1009,this.removeListener("data",IW),this.reset()}function KJ(r){if(this[w4]._inflate=null,this[o1]){this[r1](this[o1]);return}r[LW]=1007,this[r1](r)}});var i1=cr((g7e,P4)=>{"use strict";var{isUtf8:_W}=Sn("buffer"),{hasBlob:YJ}=bh(),qJ=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function JJ(r){return r>=1e3&&r<=1014&&r!==1004&&r!==1005&&r!==1006||r>=3e3&&r<=4999}function Xx(r){let e=r.length,t=0;for(;t<e;)if((r[t]&128)===0)t++;else if((r[t]&224)===192){if(t+1===e||(r[t+1]&192)!==128||(r[t]&254)===192)return!1;t+=2}else if((r[t]&240)===224){if(t+2>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||r[t]===224&&(r[t+1]&224)===128||r[t]===237&&(r[t+1]&224)===160)return!1;t+=3}else if((r[t]&248)===240){if(t+3>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||(r[t+3]&192)!==128||r[t]===240&&(r[t+1]&240)===128||r[t]===244&&r[t+1]>143||r[t]>244)return!1;t+=4}else return!1;return!0}function $J(r){return YJ&&typeof r=="object"&&typeof r.arrayBuffer=="function"&&typeof r.type=="string"&&typeof r.stream=="function"&&(r[Symbol.toStringTag]==="Blob"||r[Symbol.toStringTag]==="File")}P4.exports={isBlob:$J,isValidStatusCode:JJ,isValidUTF8:Xx,tokenChars:qJ};if(_W)P4.exports.isValidUTF8=function(r){return r.length<24?Xx(r):_W(r)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let r=Sn("utf-8-validate");P4.exports.isValidUTF8=function(e){return e.length<32?Xx(e):r(e)}}catch{}});var $x=cr((b7e,VW)=>{"use strict";var{Writable:QJ}=Sn("stream"),UW=n1(),{BINARY_TYPES:ZJ,EMPTY_BUFFER:BW,kStatusCode:e$,kWebSocket:t$}=bh(),{concat:Kx,toArrayBuffer:r$,unmask:o$}=q2(),{isValidStatusCode:n$,isValidUTF8:DW}=i1(),v4=Buffer[Symbol.species],Ds=0,OW=1,FW=2,GW=3,Yx=4,qx=5,N4=6,Jx=class extends QJ{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||ZJ[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxBufferedChunks=e.maxBufferedChunks|0,this._maxFragments=e.maxFragments|0,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[t$]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._numFragments=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=Ds}_write(e,t,o){if(this._opcode===8&&this._state==Ds)return o();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){o(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(o)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let o=this._buffers[0];return this._buffers[0]=new v4(o.buffer,o.byteOffset+e,o.length-e),new v4(o.buffer,o.byteOffset,e)}let t=Buffer.allocUnsafe(e);do{let o=this._buffers[0],n=t.length-e;e>=o.length?t.set(this._buffers.shift(),n):(t.set(new Uint8Array(o.buffer,o.byteOffset,e),n),this._buffers[0]=new v4(o.buffer,o.byteOffset+e,o.length-e)),e-=o.length}while(e>0);return t}startLoop(e){this._loop=!0;do switch(this._state){case Ds:this.getInfo(e);break;case OW:this.getPayloadLength16(e);break;case FW:this.getPayloadLength64(e);break;case GW:this.getMask();break;case Yx:this.getData(e);break;case qx:case N4:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if((t[0]&48)!==0){let n=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(n);return}let o=(t[0]&64)===64;if(o&&!this._extensions[UW.extensionName]){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._fin=(t[0]&128)===128,this._opcode=t[0]&15,this._payloadLength=t[1]&127,this._opcode===0){if(o){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(!this._fragmented){let n=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}this._compressed=o}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let n=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(n);return}if(o){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(n);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let n=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(n);return}}else{let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(n);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(t[1]&128)===128,this._isServer){if(!this._masked){let n=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(n);return}}else if(this._masked){let n=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(n);return}this._payloadLength===126?this._state=OW:this._payloadLength===127?this._state=FW:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),o=t.readUInt32BE(0);if(o>Math.pow(2,21)-1){let n=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(n);return}this._payloadLength=o*Math.pow(2,32)+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let t=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}this._masked?this._state=GW:this._state=Yx}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Yx}getData(e){let t=BW;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}t=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&o$(t,this._mask)}if(this._opcode>7){this.controlMessage(t,e);return}if(this._maxFragments>0&&++this._numFragments>this._maxFragments){let o=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");e(o);return}if(this._compressed){this._state=qx,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){this._extensions[UW.extensionName].decompress(e,this._fin,(n,i)=>{if(n)return t(n);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let a=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(a);return}this._fragments.push(i)}this.dataMessage(t),this._state===Ds&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=Ds;return}let t=this._messageLength,o=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._numFragments=0,this._fragments=[],this._opcode===2){let n;this._binaryType==="nodebuffer"?n=Kx(o,t):this._binaryType==="arraybuffer"?n=r$(Kx(o,t)):this._binaryType==="blob"?n=new Blob(o):n=o,this._allowSynchronousEvents?(this.emit("message",n,!0),this._state=Ds):(this._state=N4,setImmediate(()=>{this.emit("message",n,!0),this._state=Ds,this.startLoop(e)}))}else{let n=Kx(o,t);if(!this._skipUTF8Validation&&!DW(n)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(i);return}this._state===qx||this._allowSynchronousEvents?(this.emit("message",n,!1),this._state=Ds):(this._state=N4,setImmediate(()=>{this.emit("message",n,!1),this._state=Ds,this.startLoop(e)}))}}controlMessage(e,t){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,BW),this.end();else{let o=e.readUInt16BE(0);if(!n$(o)){let i=this.createError(RangeError,`invalid status code ${o}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");t(i);return}let n=new v4(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!DW(n)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(i);return}this._loop=!1,this.emit("conclude",o,n),this.end()}this._state=Ds;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=Ds):(this._state=N4,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=Ds,this.startLoop(t)}))}createError(e,t,o,n,i){this._loop=!1,this._errored=!0;let a=new e(o?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(a,this.createError),a.code=i,a[e$]=n,a}};VW.exports=Jx});var e6=cr((A7e,jW)=>{"use strict";var{Duplex:S7e}=Sn("stream"),{randomFillSync:i$}=Sn("crypto"),{types:{isUint8Array:a$}}=Sn("util"),HW=n1(),{EMPTY_BUFFER:s$,kWebSocket:l$,NOOP:u$}=bh(),{isBlob:a1,isValidStatusCode:c$}=i1(),{mask:zW,toBuffer:Zd}=q2(),Os=Symbol("kByteLength"),h$=Buffer.alloc(4),x4=8*1024,ey,s1=x4,Wl=0,m$=1,p$=2,Qx=class r{constructor(e,t,o){this._extensions=t||{},o&&(this._generateMask=o,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=Wl,this.onerror=u$,this[l$]=void 0}static frame(e,t){let o,n=!1,i=2,a=!1;t.mask&&(o=t.maskBuffer||h$,t.generateMask?t.generateMask(o):(s1===x4&&(ey===void 0&&(ey=Buffer.alloc(x4)),i$(ey,0,x4),s1=0),o[0]=ey[s1++],o[1]=ey[s1++],o[2]=ey[s1++],o[3]=ey[s1++]),a=(o[0]|o[1]|o[2]|o[3])===0,i=6);let s;typeof e=="string"?(!t.mask||a)&&t[Os]!==void 0?s=t[Os]:(e=Buffer.from(e),s=e.length):(s=e.length,n=t.mask&&t.readOnly&&!a);let l=s;s>=65536?(i+=8,l=127):s>125&&(i+=2,l=126);let u=Buffer.allocUnsafe(n?s+i:i);return u[0]=t.fin?t.opcode|128:t.opcode,t.rsv1&&(u[0]|=64),u[1]=l,l===126?u.writeUInt16BE(s,2):l===127&&(u[2]=u[3]=0,u.writeUIntBE(s,4,6)),t.mask?(u[1]|=128,u[i-4]=o[0],u[i-3]=o[1],u[i-2]=o[2],u[i-1]=o[3],a?[u,e]:n?(zW(e,o,u,i,s),[u]):(zW(e,o,e,0,s),[u,e])):[u,e]}close(e,t,o,n){let i;if(e===void 0)i=s$;else{if(typeof e!="number"||!c$(e))throw new TypeError("First argument must be a valid error code number");if(t===void 0||!t.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(e,0);else{let s=Buffer.byteLength(t);if(s>123)throw new RangeError("The message must not be greater than 123 bytes");if(i=Buffer.allocUnsafe(2+s),i.writeUInt16BE(e,0),typeof t=="string")i.write(t,2);else if(a$(t))i.set(t,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let a={[Os]:i.length,fin:!0,generateMask:this._generateMask,mask:o,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==Wl?this.enqueue([this.dispatch,i,!1,a,n]):this.sendFrame(r.frame(i,a),n)}ping(e,t,o){let n,i;if(typeof e=="string"?(n=Buffer.byteLength(e),i=!1):a1(e)?(n=e.size,i=!1):(e=Zd(e),n=e.length,i=Zd.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[Os]:n,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};a1(e)?this._state!==Wl?this.enqueue([this.getBlobData,e,!1,a,o]):this.getBlobData(e,!1,a,o):this._state!==Wl?this.enqueue([this.dispatch,e,!1,a,o]):this.sendFrame(r.frame(e,a),o)}pong(e,t,o){let n,i;if(typeof e=="string"?(n=Buffer.byteLength(e),i=!1):a1(e)?(n=e.size,i=!1):(e=Zd(e),n=e.length,i=Zd.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[Os]:n,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};a1(e)?this._state!==Wl?this.enqueue([this.getBlobData,e,!1,a,o]):this.getBlobData(e,!1,a,o):this._state!==Wl?this.enqueue([this.dispatch,e,!1,a,o]):this.sendFrame(r.frame(e,a),o)}send(e,t,o){let n=this._extensions[HW.extensionName],i=t.binary?2:1,a=t.compress,s,l;typeof e=="string"?(s=Buffer.byteLength(e),l=!1):a1(e)?(s=e.size,l=!1):(e=Zd(e),s=e.length,l=Zd.readOnly),this._firstFragment?(this._firstFragment=!1,a&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(a=s>=n._threshold),this._compress=a):(a=!1,i=0),t.fin&&(this._firstFragment=!0);let u={[Os]:s,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:l,rsv1:a};a1(e)?this._state!==Wl?this.enqueue([this.getBlobData,e,this._compress,u,o]):this.getBlobData(e,this._compress,u,o):this._state!==Wl?this.enqueue([this.dispatch,e,this._compress,u,o]):this.dispatch(e,this._compress,u,o)}getBlobData(e,t,o,n){this._bufferedBytes+=o[Os],this._state=p$,e.arrayBuffer().then(i=>{if(this._socket.destroyed){let s=new Error("The socket was closed while the blob was being read");process.nextTick(Zx,this,s,n);return}this._bufferedBytes-=o[Os];let a=Zd(i);t?this.dispatch(a,t,o,n):(this._state=Wl,this.sendFrame(r.frame(a,o),n),this.dequeue())}).catch(i=>{process.nextTick(d$,this,i,n)})}dispatch(e,t,o,n){if(!t){this.sendFrame(r.frame(e,o),n);return}let i=this._extensions[HW.extensionName];this._bufferedBytes+=o[Os],this._state=m$,i.compress(e,o.fin,(a,s)=>{if(this._socket.destroyed){let l=new Error("The socket was closed while data was being compressed");Zx(this,l,n);return}this._bufferedBytes-=o[Os],this._state=Wl,o.readOnly=!1,this.sendFrame(r.frame(s,o),n),this.dequeue()})}dequeue(){for(;this._state===Wl&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][Os],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][Os],this._queue.push(e)}sendFrame(e,t){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};jW.exports=Qx;function Zx(r,e,t){typeof t=="function"&&t(e);for(let o=0;o<r._queue.length;o++){let n=r._queue[o],i=n[n.length-1];typeof i=="function"&&i(e)}}function d$(r,e,t){Zx(r,e,t),r.onerror(e)}});var eL=cr((w7e,ZW)=>{"use strict";var{kForOnEventAttribute:$2,kListener:t6}=bh(),XW=Symbol("kCode"),KW=Symbol("kData"),YW=Symbol("kError"),qW=Symbol("kMessage"),JW=Symbol("kReason"),l1=Symbol("kTarget"),$W=Symbol("kType"),QW=Symbol("kWasClean"),Ah=class{constructor(e){this[l1]=null,this[$W]=e}get target(){return this[l1]}get type(){return this[$W]}};Object.defineProperty(Ah.prototype,"target",{enumerable:!0});Object.defineProperty(Ah.prototype,"type",{enumerable:!0});var ty=class extends Ah{constructor(e,t={}){super(e),this[XW]=t.code===void 0?0:t.code,this[JW]=t.reason===void 0?"":t.reason,this[QW]=t.wasClean===void 0?!1:t.wasClean}get code(){return this[XW]}get reason(){return this[JW]}get wasClean(){return this[QW]}};Object.defineProperty(ty.prototype,"code",{enumerable:!0});Object.defineProperty(ty.prototype,"reason",{enumerable:!0});Object.defineProperty(ty.prototype,"wasClean",{enumerable:!0});var u1=class extends Ah{constructor(e,t={}){super(e),this[YW]=t.error===void 0?null:t.error,this[qW]=t.message===void 0?"":t.message}get error(){return this[YW]}get message(){return this[qW]}};Object.defineProperty(u1.prototype,"error",{enumerable:!0});Object.defineProperty(u1.prototype,"message",{enumerable:!0});var Q2=class extends Ah{constructor(e,t={}){super(e),this[KW]=t.data===void 0?null:t.data}get data(){return this[KW]}};Object.defineProperty(Q2.prototype,"data",{enumerable:!0});var y$={addEventListener(r,e,t={}){for(let n of this.listeners(r))if(!t[$2]&&n[t6]===e&&!n[$2])return;let o;if(r==="message")o=function(i,a){let s=new Q2("message",{data:a?i:i.toString()});s[l1]=this,E4(e,this,s)};else if(r==="close")o=function(i,a){let s=new ty("close",{code:i,reason:a.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});s[l1]=this,E4(e,this,s)};else if(r==="error")o=function(i){let a=new u1("error",{error:i,message:i.message});a[l1]=this,E4(e,this,a)};else if(r==="open")o=function(){let i=new Ah("open");i[l1]=this,E4(e,this,i)};else return;o[$2]=!!t[$2],o[t6]=e,t.once?this.once(r,o):this.on(r,o)},removeEventListener(r,e){for(let t of this.listeners(r))if(t[t6]===e&&!t[$2]){this.removeListener(r,t);break}}};ZW.exports={CloseEvent:ty,ErrorEvent:u1,Event:Ah,EventTarget:y$,MessageEvent:Q2};function E4(r,e,t){typeof r=="object"&&r.handleEvent?r.handleEvent.call(r,t):r.call(e,t)}});var C4=cr((P7e,tL)=>{"use strict";var{tokenChars:Z2}=i1();function $u(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}function f$(r){let e=Object.create(null),t=Object.create(null),o=!1,n=!1,i=!1,a,s,l=-1,u=-1,c=-1,h=0;for(;h<r.length;h++)if(u=r.charCodeAt(h),a===void 0)if(c===-1&&Z2[u]===1)l===-1&&(l=h);else if(h!==0&&(u===32||u===9))c===-1&&l!==-1&&(c=h);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${h}`);c===-1&&(c=h);let p=r.slice(l,c);u===44?($u(e,p,t),t=Object.create(null)):a=p,l=c=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);else if(s===void 0)if(c===-1&&Z2[u]===1)l===-1&&(l=h);else if(u===32||u===9)c===-1&&l!==-1&&(c=h);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${h}`);c===-1&&(c=h),$u(t,r.slice(l,c),!0),u===44&&($u(e,a,t),t=Object.create(null),a=void 0),l=c=-1}else if(u===61&&l!==-1&&c===-1)s=r.slice(l,h),l=c=-1;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(n){if(Z2[u]!==1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1?l=h:o||(o=!0),n=!1}else if(i)if(Z2[u]===1)l===-1&&(l=h);else if(u===34&&l!==-1)i=!1,c=h;else if(u===92)n=!0;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(u===34&&r.charCodeAt(h-1)===61)i=!0;else if(c===-1&&Z2[u]===1)l===-1&&(l=h);else if(l!==-1&&(u===32||u===9))c===-1&&(c=h);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${h}`);c===-1&&(c=h);let p=r.slice(l,c);o&&(p=p.replace(/\\/g,""),o=!1),$u(t,s,p),u===44&&($u(e,a,t),t=Object.create(null),a=void 0),s=void 0,l=c=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);if(l===-1||i||u===32||u===9)throw new SyntaxError("Unexpected end of input");c===-1&&(c=h);let m=r.slice(l,c);return a===void 0?$u(e,m,t):(s===void 0?$u(t,m,!0):o?$u(t,s,m.replace(/\\/g,"")):$u(t,s,m),$u(e,a,t)),e}function g$(r){return Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)||(t=[t]),t.map(o=>[e].concat(Object.keys(o).map(n=>{let i=o[n];return Array.isArray(i)||(i=[i]),i.map(a=>a===!0?n:`${n}=${a}`).join("; ")})).join("; ")).join(", ")}).join(", ")}tL.exports={format:g$,parse:f$}});var W4=cr((x7e,pL)=>{"use strict";var b$=Sn("events"),S$=Sn("https"),A$=Sn("http"),nL=Sn("net"),w$=Sn("tls"),{randomBytes:P$,createHash:v$}=Sn("crypto"),{Duplex:v7e,Readable:N7e}=Sn("stream"),{URL:r6}=Sn("url"),pp=n1(),N$=$x(),x$=e6(),{isBlob:E$}=i1(),{BINARY_TYPES:rL,CLOSE_TIMEOUT:C$,EMPTY_BUFFER:k4,GUID:k$,kForOnEventAttribute:o6,kListener:M$,kStatusCode:T$,kWebSocket:ii,NOOP:iL}=bh(),{EventTarget:{addEventListener:W$,removeEventListener:L$}}=eL(),{format:I$,parse:R$}=C4(),{toBuffer:_$}=q2(),aL=Symbol("kAborted"),n6=[8,13],wh=["CONNECTING","OPEN","CLOSING","CLOSED"],U$=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,qo=class r extends b${constructor(e,t,o){super(),this._binaryType=rL[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=k4,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=r.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,t===void 0?!o||o.protocols===void 0?t=[]:Array.isArray(o.protocols)?t=o.protocols:t=[o.protocols]:Array.isArray(t)||(typeof t=="object"&&t!==null?(o=t,o.protocols===void 0?t=[]:Array.isArray(o.protocols)?t=o.protocols:t=[o.protocols]):t=[t]),sL(this,e,t,o)):(this._autoPong=o.autoPong,this._closeTimeout=o.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){rL.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,o){let n=new N$({allowSynchronousEvents:o.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:o.maxBufferedChunks,maxFragments:o.maxFragments,maxPayload:o.maxPayload,skipUTF8Validation:o.skipUTF8Validation}),i=new x$(e,this._extensions,o.generateMask);this._receiver=n,this._sender=i,this._socket=e,n[ii]=this,i[ii]=this,e[ii]=this,n.on("conclude",O$),n.on("drain",F$),n.on("error",G$),n.on("message",V$),n.on("ping",H$),n.on("pong",z$),i.onerror=j$,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),t.length>0&&e.unshift(t),e.on("close",cL),e.on("data",T4),e.on("end",hL),e.on("error",mL),this._readyState=r.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[pp.extensionName]&&this._extensions[pp.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){ls(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===r.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._sender.close(e,t,!this._isServer,o=>{o||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),this._readyState=r.CLOSING,uL(this)}}pause(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,t,o){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(o=e,e=t=void 0):typeof t=="function"&&(o=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){i6(this,e,o);return}t===void 0&&(t=!this._isServer),this._sender.ping(e||k4,t,o)}pong(e,t,o){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(o=e,e=t=void 0):typeof t=="function"&&(o=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){i6(this,e,o);return}t===void 0&&(t=!this._isServer),this._sender.pong(e||k4,t,o)}resume(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,t,o){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"&&(o=t,t={}),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){i6(this,e,o);return}let n={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[pp.extensionName]||(n.compress=!1),this._sender.send(e||k4,n,o)}terminate(){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){ls(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=r.CLOSING,this._socket.destroy())}}};Object.defineProperty(qo,"CONNECTING",{enumerable:!0,value:wh.indexOf("CONNECTING")});Object.defineProperty(qo.prototype,"CONNECTING",{enumerable:!0,value:wh.indexOf("CONNECTING")});Object.defineProperty(qo,"OPEN",{enumerable:!0,value:wh.indexOf("OPEN")});Object.defineProperty(qo.prototype,"OPEN",{enumerable:!0,value:wh.indexOf("OPEN")});Object.defineProperty(qo,"CLOSING",{enumerable:!0,value:wh.indexOf("CLOSING")});Object.defineProperty(qo.prototype,"CLOSING",{enumerable:!0,value:wh.indexOf("CLOSING")});Object.defineProperty(qo,"CLOSED",{enumerable:!0,value:wh.indexOf("CLOSED")});Object.defineProperty(qo.prototype,"CLOSED",{enumerable:!0,value:wh.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(r=>{Object.defineProperty(qo.prototype,r,{enumerable:!0})});["open","error","close","message"].forEach(r=>{Object.defineProperty(qo.prototype,`on${r}`,{enumerable:!0,get(){for(let e of this.listeners(r))if(e[o6])return e[M$];return null},set(e){for(let t of this.listeners(r))if(t[o6]){this.removeListener(r,t);break}typeof e=="function"&&this.addEventListener(r,e,{[o6]:!0})}})});qo.prototype.addEventListener=W$;qo.prototype.removeEventListener=L$;pL.exports=qo;function sL(r,e,t,o){let n={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:C$,protocolVersion:n6[1],maxBufferedChunks:262144,maxFragments:16384,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...o,socketPath:void 0,hostname:void 0,protocol:void 0,protocols:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(r._autoPong=n.autoPong,r._closeTimeout=n.closeTimeout,!n6.includes(n.protocolVersion))throw new RangeError(`Unsupported protocol version: ${n.protocolVersion} (supported versions: ${n6.join(", ")})`);let i;if(e instanceof r6)i=e;else try{i=new r6(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),r._url=i.href;let a=i.protocol==="wss:",s=i.protocol==="ws+unix:",l;if(i.protocol!=="ws:"&&!a&&!s?l=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:s&&!i.pathname?l="The URL's pathname is empty":i.hash&&(l="The URL contains a fragment identifier"),l){let d=new SyntaxError(l);if(r._redirects===0)throw d;M4(r,d);return}let u=a?443:80,c=P$(16).toString("base64"),h=a?S$.request:A$.request,m=new Set,p;if(n.createConnection=n.createConnection||(a?D$:B$),n.defaultPort=n.defaultPort||u,n.port=i.port||u,n.host=i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,n.headers={...n.headers,"Sec-WebSocket-Version":n.protocolVersion,"Sec-WebSocket-Key":c,Connection:"Upgrade",Upgrade:"websocket"},n.path=i.pathname+i.search,n.timeout=n.handshakeTimeout,n.perMessageDeflate&&(p=new pp({...n.perMessageDeflate,isServer:!1,maxPayload:n.maxPayload}),n.headers["Sec-WebSocket-Extensions"]=I$({[pp.extensionName]:p.offer()})),t.length){for(let d of t){if(typeof d!="string"||!U$.test(d)||m.has(d))throw new SyntaxError("An invalid or duplicated subprotocol was specified");m.add(d)}n.headers["Sec-WebSocket-Protocol"]=t.join(",")}if(n.origin&&(n.protocolVersion<13?n.headers["Sec-WebSocket-Origin"]=n.origin:n.headers.Origin=n.origin),(i.username||i.password)&&(n.auth=`${i.username}:${i.password}`),s){let d=n.path.split(":");n.socketPath=d[0],n.path=d[1]}let g;if(n.followRedirects){if(r._redirects===0){r._originalIpc=s,r._originalSecure=a,r._originalHostOrSocketPath=s?n.socketPath:i.host;let d=o&&o.headers;if(o={...o,headers:{}},d)for(let[f,b]of Object.entries(d))o.headers[f.toLowerCase()]=b}else if(r.listenerCount("redirect")===0){let d=s?r._originalIpc?n.socketPath===r._originalHostOrSocketPath:!1:r._originalIpc?!1:i.host===r._originalHostOrSocketPath;(!d||r._originalSecure&&!a)&&(delete n.headers.authorization,delete n.headers.cookie,d||delete n.headers.host,n.auth=void 0)}n.auth&&!o.headers.authorization&&(o.headers.authorization="Basic "+Buffer.from(n.auth).toString("base64")),g=r._req=h(n),r._redirects&&r.emit("redirect",r.url,g)}else g=r._req=h(n);n.timeout&&g.on("timeout",()=>{ls(r,g,"Opening handshake has timed out")}),g.on("error",d=>{g===null||g[aL]||(g=r._req=null,M4(r,d))}),g.on("response",d=>{let f=d.headers.location,b=d.statusCode;if(f&&n.followRedirects&&b>=300&&b<400){if(++r._redirects>n.maxRedirects){ls(r,g,"Maximum redirects exceeded");return}g.abort();let w;try{w=new r6(f,e)}catch{let A=new SyntaxError(`Invalid URL: ${f}`);M4(r,A);return}sL(r,w,t,o)}else r.emit("unexpected-response",g,d)||ls(r,g,`Unexpected server response: ${d.statusCode}`)}),g.on("upgrade",(d,f,b)=>{if(r.emit("upgrade",d),r.readyState!==qo.CONNECTING)return;g=r._req=null;let w=d.headers.upgrade;if(w===void 0||w.toLowerCase()!=="websocket"){ls(r,f,"Invalid Upgrade header");return}let P=v$("sha1").update(c+k$).digest("base64");if(d.headers["sec-websocket-accept"]!==P){ls(r,f,"Invalid Sec-WebSocket-Accept header");return}let A=d.headers["sec-websocket-protocol"],M;if(A!==void 0?m.size?m.has(A)||(M="Server sent an invalid subprotocol"):M="Server sent a subprotocol but none was requested":m.size&&(M="Server sent no subprotocol"),M){ls(r,f,M);return}A&&(r._protocol=A);let E=d.headers["sec-websocket-extensions"];if(E!==void 0){if(!p){ls(r,f,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let U;try{U=R$(E)}catch{ls(r,f,"Invalid Sec-WebSocket-Extensions header");return}let F=Object.keys(U);if(F.length!==1||F[0]!==pp.extensionName){ls(r,f,"Server indicated an extension that was not requested");return}try{p.accept(U[pp.extensionName])}catch{ls(r,f,"Invalid Sec-WebSocket-Extensions header");return}r._extensions[pp.extensionName]=p}r.setSocket(f,b,{allowSynchronousEvents:n.allowSynchronousEvents,generateMask:n.generateMask,maxBufferedChunks:n.maxBufferedChunks,maxFragments:n.maxFragments,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation})}),n.finishRequest?n.finishRequest(g,r):g.end()}function M4(r,e){r._readyState=qo.CLOSING,r._errorEmitted=!0,r.emit("error",e),r.emitClose()}function B$(r){return r.path=r.socketPath,nL.connect(r)}function D$(r){return r.path=void 0,!r.servername&&r.servername!==""&&(r.servername=nL.isIP(r.host)?"":r.host),w$.connect(r)}function ls(r,e,t){r._readyState=qo.CLOSING;let o=new Error(t);Error.captureStackTrace(o,ls),e.setHeader?(e[aL]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(M4,r,o)):(e.destroy(o),e.once("error",r.emit.bind(r,"error")),e.once("close",r.emitClose.bind(r)))}function i6(r,e,t){if(e){let o=E$(e)?e.size:_$(e).length;r._socket?r._sender._bufferedBytes+=o:r._bufferedAmount+=o}if(t){let o=new Error(`WebSocket is not open: readyState ${r.readyState} (${wh[r.readyState]})`);process.nextTick(t,o)}}function O$(r,e){let t=this[ii];t._closeFrameReceived=!0,t._closeMessage=e,t._closeCode=r,t._socket[ii]!==void 0&&(t._socket.removeListener("data",T4),process.nextTick(lL,t._socket),r===1005?t.close():t.close(r,e))}function F$(){let r=this[ii];r.isPaused||r._socket.resume()}function G$(r){let e=this[ii];e._socket[ii]!==void 0&&(e._socket.removeListener("data",T4),process.nextTick(lL,e._socket),e.close(r[T$])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r))}function oL(){this[ii].emitClose()}function V$(r,e){this[ii].emit("message",r,e)}function H$(r){let e=this[ii];e._autoPong&&e.pong(r,!this._isServer,iL),e.emit("ping",r)}function z$(r){this[ii].emit("pong",r)}function lL(r){r.resume()}function j$(r){let e=this[ii];e.readyState!==qo.CLOSED&&(e.readyState===qo.OPEN&&(e._readyState=qo.CLOSING,uL(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r)))}function uL(r){r._closeTimer=setTimeout(r._socket.destroy.bind(r._socket),r._closeTimeout)}function cL(){let r=this[ii];if(this.removeListener("close",cL),this.removeListener("data",T4),this.removeListener("end",hL),r._readyState=qo.CLOSING,!this._readableState.endEmitted&&!r._closeFrameReceived&&!r._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);r._receiver.write(e)}r._receiver.end(),this[ii]=void 0,clearTimeout(r._closeTimer),r._receiver._writableState.finished||r._receiver._writableState.errorEmitted?r.emitClose():(r._receiver.on("error",oL),r._receiver.on("finish",oL))}function T4(r){this[ii]._receiver.write(r)||this.pause()}function hL(){let r=this[ii];r._readyState=qo.CLOSING,r._receiver.end(),this.end()}function mL(){let r=this[ii];this.removeListener("error",mL),this.on("error",iL),r&&(r._readyState=qo.CLOSING,this.destroy())}});var gL=cr((C7e,fL)=>{"use strict";var E7e=W4(),{Duplex:X$}=Sn("stream");function dL(r){r.emit("close")}function K$(){!this.destroyed&&this._writableState.finished&&this.destroy()}function yL(r){this.removeListener("error",yL),this.destroy(),this.listenerCount("error")===0&&this.emit("error",r)}function Y$(r,e){let t=!0,o=new X$({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return r.on("message",function(i,a){let s=!a&&o._readableState.objectMode?i.toString():i;o.push(s)||r.pause()}),r.once("error",function(i){o.destroyed||(t=!1,o.destroy(i))}),r.once("close",function(){o.destroyed||o.push(null)}),o._destroy=function(n,i){if(r.readyState===r.CLOSED){i(n),process.nextTick(dL,o);return}let a=!1;r.once("error",function(l){a=!0,i(l)}),r.once("close",function(){a||i(n),process.nextTick(dL,o)}),t&&r.terminate()},o._final=function(n){if(r.readyState===r.CONNECTING){r.once("open",function(){o._final(n)});return}r._socket!==null&&(r._socket._writableState.finished?(n(),o._readableState.endEmitted&&o.destroy()):(r._socket.once("finish",function(){n()}),r.close()))},o._read=function(){r.isPaused&&r.resume()},o._write=function(n,i,a){if(r.readyState===r.CONNECTING){r.once("open",function(){o._write(n,i,a)});return}r.send(n,a)},o.on("end",K$),o.on("error",yL),o}fL.exports=Y$});var a6=cr((k7e,bL)=>{"use strict";var{tokenChars:q$}=i1();function J$(r){let e=new Set,t=-1,o=-1,n=0;for(n;n<r.length;n++){let a=r.charCodeAt(n);if(o===-1&&q$[a]===1)t===-1&&(t=n);else if(n!==0&&(a===32||a===9))o===-1&&t!==-1&&(o=n);else if(a===44){if(t===-1)throw new SyntaxError(`Unexpected character at index ${n}`);o===-1&&(o=n);let s=r.slice(t,o);if(e.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);e.add(s),t=o=-1}else throw new SyntaxError(`Unexpected character at index ${n}`)}if(t===-1||o!==-1)throw new SyntaxError("Unexpected end of input");let i=r.slice(t,n);if(e.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return e.add(i),e}bL.exports={parse:J$}});var xL=cr((T7e,NL)=>{"use strict";var $$=Sn("events"),L4=Sn("http"),{Duplex:M7e}=Sn("stream"),{createHash:Q$}=Sn("crypto"),SL=C4(),ry=n1(),Z$=a6(),eQ=W4(),{CLOSE_TIMEOUT:tQ,GUID:rQ,kWebSocket:oQ}=bh(),nQ=/^[+/0-9A-Za-z]{22}==$/,AL=0,wL=1,vL=2,s6=class extends $${constructor(e,t){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:256*1024,maxFragments:16*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:tQ,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:eQ,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=L4.createServer((o,n)=>{let i=L4.STATUS_CODES[426];n.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),n.end(i)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){let o=this.emit.bind(this,"connection");this._removeListeners=iQ(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(n,i,a)=>{this.handleUpgrade(n,i,a,o)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=AL}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===vL){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(e3,this);return}if(e&&this.once("close",e),this._state!==wL)if(this._state=wL,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(e3,this):process.nextTick(e3,this);else{let t=this._server;this._removeListeners(),this._removeListeners=this._server=null,t.close(()=>{e3(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf("?");if((t!==-1?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,o,n){t.on("error",PL);let i=e.headers["sec-websocket-key"],a=e.headers.upgrade,s=+e.headers["sec-websocket-version"];if(e.method!=="GET"){oy(this,e,t,405,"Invalid HTTP method");return}if(a===void 0||a.toLowerCase()!=="websocket"){oy(this,e,t,400,"Invalid Upgrade header");return}if(i===void 0||!nQ.test(i)){oy(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header");return}if(s!==13&&s!==8){oy(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){t3(t,400);return}let l=e.headers["sec-websocket-protocol"],u=new Set;if(l!==void 0)try{u=Z$.parse(l)}catch{oy(this,e,t,400,"Invalid Sec-WebSocket-Protocol header");return}let c=e.headers["sec-websocket-extensions"],h={};if(this.options.perMessageDeflate&&c!==void 0){let m=new ry({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=SL.parse(c);p[ry.extensionName]&&(m.accept(p[ry.extensionName]),h[ry.extensionName]=m)}catch{oy(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let m={origin:e.headers[`${s===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(m,(p,g,d,f)=>{if(!p)return t3(t,g||401,d,f);this.completeUpgrade(h,i,u,e,t,o,n)});return}if(!this.options.verifyClient(m))return t3(t,401)}this.completeUpgrade(h,i,u,e,t,o,n)}completeUpgrade(e,t,o,n,i,a,s){if(!i.readable||!i.writable)return i.destroy();if(i[oQ])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>AL)return t3(i,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Q$("sha1").update(t+rQ).digest("base64")}`],c=new this.options.WebSocket(null,void 0,this.options);if(o.size){let h=this.options.handleProtocols?this.options.handleProtocols(o,n):o.values().next().value;h&&(u.push(`Sec-WebSocket-Protocol: ${h}`),c._protocol=h)}if(e[ry.extensionName]){let h=e[ry.extensionName].params,m=SL.format({[ry.extensionName]:[h]});u.push(`Sec-WebSocket-Extensions: ${m}`),c._extensions=e}this.emit("headers",u,n),i.write(u.concat(`\r
|
|
6
6
|
`).join(`\r
|
|
7
7
|
`)),i.removeListener("error",PL),c.setSocket(i,a,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(c),c.on("close",()=>{this.clients.delete(c),this._shouldEmitClose&&!this.clients.size&&process.nextTick(e3,this)})),s(c,n)}};NL.exports=s6;function iQ(r,e){for(let t of Object.keys(e))r.on(t,e[t]);return function(){for(let o of Object.keys(e))r.removeListener(o,e[o])}}function e3(r){r._state=vL,r.emit("close")}function PL(){this.destroy()}function t3(r,e,t,o){t=t||L4.STATUS_CODES[e],o={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(t),...o},r.once("finish",r.destroy),r.end(`HTTP/1.1 ${e} ${L4.STATUS_CODES[e]}\r
|
|
8
8
|
`+Object.keys(o).map(n=>`${n}: ${o[n]}`).join(`\r
|
|
@@ -230,7 +230,7 @@ It is recommended to disable code generation and freeze all builtins at process
|
|
|
230
230
|
For more information, see https://github.com/capricorn86/happy-dom/wiki/JavaScript-Evaluation-Warning
|
|
231
231
|
|
|
232
232
|
`)}[zt](){if(this.closed)return;super[zt](),this.closed=!0;let e=this[um];for(let i of e)i[zt]&&i[zt]();this[um]=[];for(let i of this[Pm])i[zt]();this[Pm]=[],this.document[zt]();let t=this.document.createElement("html"),o=this.document.createElement("head"),n=this.document.createElement("body");t.appendChild(o),t.appendChild(n),this.document[$t](t),this.location[zt]&&this.location[zt](),this.customElements[zt]&&this.customElements[zt](),this.history[zt]&&this.history[zt](),this[qf].clear(),this[Iu].json.clear(),this[Iu].css.clear(),this[Iu].esm.clear(),this.document[bi].clear(),this.document[Fo]=null,this.document[Wc]=null,this.document[Ka]=null,this.document[sm]=null,this[Yi]=null,this[Cs]=null,Ze.removeWindowBrowserFrameRelation(this)}[_8](){for(let e of[r,jt]){let t=Object.getOwnPropertyDescriptors(e.prototype),o=Object.keys(t);for(let n of o){let i=t[n];i.get||i.set?Object.defineProperty(this,n,{...i,get:i.get?.bind(this),set:i.set?.bind(this)}):n!=="constructor"&&typeof i.value=="function"&&!i.value.toString().startsWith("class ")&&Object.defineProperty(this,n,{...i,value:i.value.bind(this)})}}}};import{Script as RQ}from"vm";var kh=class{static evaluate(e,t){if(!e.window)throw new Error('The frame has been destroyed, the "window" property is not set.');return t=typeof t=="string"?new RQ(t):t,t.runInContext(e.window)}static async evaluateModule(e,t){if(!e.window)throw new Error('The frame has been destroyed, the "window" property is not set.');let o=e.window;if(t?.code){let n=t.url?new URL(t.url,o.location.href):o.location,i=t.code;switch(t?.type||"esm"){case"esm":let a=new ss(o,n);return await new mh({window:o,url:n,source:i,factory:a}).evaluate();case"json":return await new Kd({window:o,url:n,source:i}).evaluate();case"css":return await new Xd({window:o,url:n,source:i}).evaluate()}}return t?.url?await(await new ss(o,o.location).getModule(t.url,{with:{type:t.type||"esm"}})).evaluate():{}}};var cy=class{currentItem={title:"",href:"about:blank",state:null,popState:!1,scrollRestoration:Is.auto,method:"GET",formData:null};items=[this.currentItem];push(e){let t=this.items.indexOf(this.currentItem);t!==this.items.length-1&&(this.items.length=t+1),this.items.push(e),this.currentItem=e}replace(e){let t=this.items.indexOf(this.currentItem);if(t!==this.items.length-1&&(this.items.length=t+1),t===-1)throw new Error("Current history item not found");this.currentItem=e,this.items[t]=e}clear(){this.items.length=0,this.currentItem={title:"",href:"about:blank",state:null,popState:!1,scrollRestoration:Is.auto,method:"GET",formData:null},this.items.push(this.currentItem)}};var y1=class{childFrames=[];parentFrame=null;page;window;closed=!1;[Dt]=new wl(this);[Yr]={navigation:[]};[Wi]=null;[Ps]=null;[Ic]=!1;[Go]=new cy;constructor(e){this.page=e,this.window=new Ra(this),e.context.browser[Dn]&&e.context.browser[Dn].observe(this.window)}get content(){return this.window.document.documentElement.outerHTML}set content(e){this.window.document[iu]=!0,this.window.document[au]=!1,this.window.document.open(),this.window.document.write(e)}get url(){return this.window.location.href}set url(e){this.window[Ii][yi](this,_i.getRelativeURL(this,e).href)}get document(){return this.window?.document??null}async waitUntilComplete(){await Promise.all([this[Dt].waitUntilComplete(),...this.childFrames.map(e=>e.waitUntilComplete())])}waitForNavigation(){return new Promise(e=>this[Yr].navigation.push(e))}abort(){return this.childFrames.length?new Promise((e,t)=>{Promise.all(this.childFrames.map(o=>o.abort()).concat([this[Dt].abort()])).then(()=>e()).catch(t)}):this[Dt].abort()}evaluate(e){return kh.evaluate(this,e)}evaluateModule(e){return kh.evaluateModule(this,e)}goto(e,t){return ni.navigate({windowClass:Ra,frame:this,url:e,goToOptions:t})}goBack(e){return ni.navigateBack({windowClass:Ra,frame:this,goToOptions:e})}goForward(e){return ni.navigateForward({windowClass:Ra,frame:this,goToOptions:e})}goSteps(e,t){return ni.navigateSteps({windowClass:Ra,frame:this,steps:e,goToOptions:t})}reload(e){return ni.reload({windowClass:Ra,frame:this,goToOptions:e})}};var Sp=class{#e;#t={};#r={};#o=0;#n=[];constructor(e){this.#e=e}assert(e,t,...o){e||this.#e.print({type:Vo.assert,level:Ln.error,message:["Assertion failed:",...t?[t,...o]:o],group:this.#n[this.#n.length-1]||null})}clear(){this.#e.clear()}count(e="default"){this.#t[e]||(this.#t[e]=0),this.#t[e]++,this.#e.print({type:Vo.count,level:Ln.info,message:[`${e}: ${this.#t[e]}`],group:this.#n[this.#n.length-1]||null})}countReset(e="default"){delete this.#t[e],this.#e.print({type:Vo.countReset,level:Ln.warn,message:[`${e}: 0`],group:this.#n[this.#n.length-1]||null})}debug(e,...t){this.#e.print({type:Vo.debug,level:Ln.log,message:e?[e,...t]:t,group:this.#n[this.#n.length-1]||null})}dir(e){this.#e.print({type:Vo.dir,level:Ln.log,message:[e],group:this.#n[this.#n.length-1]||null})}dirxml(e){this.#e.print({type:Vo.dirxml,level:Ln.log,message:[e],group:this.#n[this.#n.length-1]||null})}error(e,...t){this.#e.print({type:Vo.error,level:Ln.error,message:e?[e,...t]:t,group:this.#n[this.#n.length-1]||null})}exception(...e){this.error(...e)}group(e){this.#o++;let t={id:this.#o,label:e||"default",collapsed:!1,parent:this.#n[this.#n.length-1]||null};this.#n.push(t),this.#e.print({type:Vo.group,level:Ln.log,message:[e||"default"],group:t})}groupCollapsed(e){this.#o++;let t={id:this.#o,label:e||"default",collapsed:!0,parent:this.#n[this.#n.length-1]||null};this.#n.push(t),this.#e.print({type:Vo.groupCollapsed,level:Ln.log,message:[e||"default"],group:t})}groupEnd(){this.#n.length!==0&&this.#n.pop()}info(e,...t){this.#e.print({type:Vo.info,level:Ln.info,message:e?[e,...t]:t,group:this.#n[this.#n.length-1]||null})}log(e,...t){this.#e.print({type:Vo.log,level:Ln.log,message:e?[e,...t]:t,group:this.#n[this.#n.length-1]||null})}profile(){throw new Error("Method not implemented.")}profileEnd(){throw new Error("Method not implemented.")}table(e){this.#e.print({type:Vo.table,level:Ln.log,message:[e],group:this.#n[this.#n.length-1]||null})}time(e="default"){this.#r[e]=performance.now()}timeEnd(e="default"){let t=this.#r[e];if(t){let o=performance.now()-t;this.#e.print({type:Vo.timeEnd,level:Ln.info,message:[`${e}: ${o}ms - timer ended`],group:this.#n[this.#n.length-1]||null})}}timeLog(e="default",...t){let o=this.#r[e];if(o){let n=performance.now()-o;this.#e.print({type:Vo.timeLog,level:Ln.info,message:[`${e}: ${n}ms`,...t],group:this.#n[this.#n.length-1]||null})}}timeStamp(){throw new Error("Method not implemented.")}trace(e,...t){this.#e.print({type:Vo.trace,level:Ln.log,message:[...e?[e,...t]:t,new Error("stack").stack.replace("Error: stack","")],group:this.#n[this.#n.length-1]||null})}warn(e,...t){this.#e.print({type:Vo.warn,level:Ln.warn,message:e?[e,...t]:t,group:this.#n[this.#n.length-1]||null})}};var Mh=class{static getFrames(e){return this.findFrames(e.mainFrame)}static closePage(e){if(e.closed)return Promise.resolve();e.closed=!0;let t=e.context.pages.indexOf(e);return t!==-1&&e.context.pages.splice(t,1),e.virtualConsolePrinter.close(),Ml.destroyFrame(e.mainFrame)}static findFrames(e){let t=[e];for(let o of e.childFrames)t=t.concat(this.findFrames(o));return t}};var f1=class{virtualConsolePrinter=new Cm;mainFrame;context;console;viewport;closed=!1;constructor(e){this.context=e,this.console=e.browser.console??new Sp(this.virtualConsolePrinter),this.mainFrame=new y1(this),this.viewport={width:e.browser.settings.viewport.width,height:e.browser.settings.viewport.height,devicePixelRatio:e.browser.settings.viewport.devicePixelRatio}}get frames(){return Mh.getFrames(this)}get content(){return this.mainFrame.content}set content(e){this.mainFrame.content=e}get url(){return this.mainFrame.url}set url(e){this.mainFrame.url=e}close(){return Mh.closePage(this)}waitUntilComplete(){return this.mainFrame.waitUntilComplete()}waitForNavigation(){return this.mainFrame.waitForNavigation()}abort(){return this.mainFrame.abort()}evaluate(e){return this.mainFrame.evaluate(e)}evaluateModule(e){return this.mainFrame.evaluateModule(e)}setViewport(e){let t=Object.assign({},this.viewport);Object.assign(this.viewport,e),(t.width!==this.viewport.width||t.height!==this.viewport.height||t.devicePixelRatio!==this.viewport.devicePixelRatio)&&this.mainFrame.window.dispatchEvent(new fe("resize"))}goto(e,t){return this.mainFrame.goto(e,t)}goBack(e){return this.mainFrame.goBack(e)}goForward(e){return this.mainFrame.goForward(e)}goSteps(e,t){return this.mainFrame.goSteps(e,t)}reload(e){return this.mainFrame.reload(e)}};var hy=class{#e=new Map;get(e){let t=this.#e.get(e.url);return t?t.expires<Date.now()?(this.#e.delete(e.url),null):t:null}add(e,t){if(this.#e.delete(e.url),e.headers.get("Cache-Control")?.includes("no-cache")||t.status<200||t.status>=300)return null;let o=t.headers.get("Access-Control-Max-Age"),n=t.headers.get("Access-Control-Allow-Origin");if(!o||!n)return null;let i=[];if(t.headers.has("Access-Control-Allow-Methods")&&t.headers.get("Access-Control-Allow-Methods")!=="*")for(let l of t.headers.get("Access-Control-Allow-Methods").split(","))i.push(l.trim().toUpperCase());let a={allowOrigin:n,allowMethods:i,expires:Date.now()+parseInt(o)*1e3};return isNaN(a.expires)||a.expires<Date.now()?null:(this.#e.set(e.url,a),a)}clear(){this.#e.clear()}};var my=class{pages=[];browser;cookieContainer=new xd;responseCache=new Ed;preflightResponseCache=new hy;closed=!1;[Nd]=new Map;constructor(e){this.browser=e}async close(){if(this.closed)return;if(this.browser.contexts[0]===this)throw new Error("Cannot close the default context. Use `browser.close()` to close the browser instead.");this.closed=!0,await Promise.all(this.pages.slice().map(o=>o.close()));let e=this.browser,t=e.contexts.indexOf(this);t!==-1&&e.contexts.splice(t,1),this.pages=[],this.cookieContainer.clearCookies(),this.responseCache.clear(),this.preflightResponseCache.clear()}async waitUntilComplete(){await Promise.all(this.pages.map(e=>e.waitUntilComplete()))}abort(){return new Promise((e,t)=>{if(!this.pages.length){e();return}Promise.all(this.pages.slice().map(o=>o.abort())).then(()=>e()).catch(o=>t(o))})}newPage(){let e=new f1(this);return this.pages.push(e),e}};var IL={version:"20.14.5"};var zs={disableJavaScriptEvaluation:!1,enableJavaScriptEvaluation:!1,disableJavaScriptFileLoading:!1,disableCSSFileLoading:!1,enableImageFileLoading:!1,disableIframePageLoading:!1,disableComputedStyleRendering:!1,handleDisabledFileLoadingAsSuccess:!1,disableErrorCapturing:!1,errorCapture:Dr.tryAndCatch,enableFileSystemHttpRequests:!1,suppressCodeGenerationFromStringsWarning:!1,suppressInsecureJavaScriptEnvironmentWarning:!1,timer:{maxTimeout:-1,maxIntervalTime:-1,maxIntervalIterations:-1,preventTimerLoops:!1},fetch:{disableSameOriginPolicy:!1,disableStrictSSL:!1,interceptor:null,requestHeaders:null,virtualServers:null},module:{resolveNodeModules:null,urlResolver:null,disableCache:!1},navigation:{disableMainFrameNavigation:!1,disableChildFrameNavigation:!1,disableChildPageNavigation:!1,disableFallbackToSetURL:!1,crossOriginPolicy:Og.anyOrigin,beforeContentCallback:null},navigator:{userAgent:`Mozilla/5.0 (X11; ${process.platform.charAt(0).toUpperCase()+process.platform.slice(1)+" "+process.arch}) AppleWebKit/537.36 (KHTML, like Gecko) HappyDOM/${IL.version}`,maxTouchPoints:0},device:{prefersColorScheme:"light",prefersReducedMotion:"no-preference",mediaType:"screen",forcedColors:"none"},debug:{traceWaitUntilComplete:-1},viewport:{width:1024,height:768,devicePixelRatio:1},canvasAdapter:null};var py=class{static createSettings(e){return e&&this.validate(zs,e),{...zs,...e,navigation:{...zs.navigation,...e?.navigation},navigator:{...zs.navigator,...e?.navigator},timer:{...zs.timer,...e?.timer},fetch:{...zs.fetch,...e?.fetch},module:{...zs.module,...e?.module},device:{...zs.device,...e?.device},debug:{...zs.debug,...e?.debug},viewport:{...zs.viewport,...e?.viewport},canvasAdapter:e?.canvasAdapter??zs.canvasAdapter}}static validate(e,t,o){for(let n of Object.keys(t)){if(e[n]===void 0){let i=o?o+"."+n:n;throw new Error(`Unknown browser setting "${i}"`)}if(typeof e[n]=="object"&&!Array.isArray(e[n])&&e[n]!==null){let i=o?o+"."+n:n;if(typeof t[n]!="object"||Array.isArray(t[n])||t[n]===null)throw new Error(`Browser setting "${i}" cannot be null`);this.validate(e[n],t[n],i)}else if((typeof e[n]=="boolean"||typeof e[n]=="number"||typeof e[n]=="string")&&typeof t[n]!=typeof e[n]&&!(n==="preventTimerLoops"&&typeof t[n]=="object"&&t[n]!==null)){let a=o?o+"."+n:n;throw new Error(`Browser setting "${a}" must be of type "${typeof e[n]}"`)}}}};var dy=class{static listenerCount=0;observedWindows=[];uncaughtExceptionListener=null;uncaughtRejectionListener=null;observe(e){if(this.observedWindows.includes(e))throw new Error("Browser window is already being observed.");this.observedWindows.push(e),!this.uncaughtExceptionListener&&(this.uncaughtExceptionListener=(t,o)=>{if(o==="unhandledRejection")return;let n=null;for(let i of this.observedWindows)if(t instanceof i.Error||t instanceof i.DOMException){n=i;break}n?(n.console.error(t),n.dispatchEvent(new n.ErrorEvent("error",{error:t,message:t.message}))):process.listenerCount("uncaughtException")===this.constructor.listenerCount&&(console.error(t),process.exit(1))},this.uncaughtRejectionListener=t=>{let o=null;for(let n of this.observedWindows)if(t instanceof n.Error||t instanceof n.DOMException){o=n;break}o?(o.console.error(t),o.dispatchEvent(new o.ErrorEvent("error",{error:t,message:t.message}))):process.listenerCount("unhandledRejection")===this.constructor.listenerCount&&(console.error(t),process.exit(1))},this.constructor.listenerCount++,process.on("uncaughtException",this.uncaughtExceptionListener),process.on("unhandledRejection",this.uncaughtRejectionListener))}disconnect(e){let t=this.observedWindows.indexOf(e);t!==-1&&(this.observedWindows.splice(t,1),this.observedWindows.length===0&&this.uncaughtExceptionListener&&(this.constructor.listenerCount--,process.off("uncaughtException",this.uncaughtExceptionListener),this.uncaughtRejectionListener&&process.off("unhandledRejection",this.uncaughtRejectionListener),this.uncaughtExceptionListener=null,this.uncaughtRejectionListener=null))}};var _4=class{contexts;settings;console;[Dn]=null;constructor(e){this.console=e?.console||null,this.settings=py.createSettings(e?.settings),this.settings.errorCapture===Dr.processLevel&&(this[Dn]=new dy),this.contexts=[new my(this)]}get closed(){return this.contexts.length===0}get defaultContext(){if(this.contexts.length===0)throw new Error("No default context. The browser has been closed.");return this.contexts[0]}async close(){if(this.contexts.length===0)return;let e=this.contexts;this.contexts=[],await Promise.all(e.map(t=>t.close()))}async waitUntilComplete(){if(this.contexts.length===0)throw new Error("No default context. The browser has been closed.");await Promise.all(this.contexts.map(e=>e.waitUntilComplete()))}abort(){return new Promise((e,t)=>{if(!this.contexts.length){e();return}Promise.all(this.contexts.slice().map(o=>o.abort())).then(()=>e()).catch(o=>t(o))})}newIncognitoContext(){if(this.contexts.length===0)throw new Error("No default context. The browser has been closed.");let e=new my(this);return this.contexts.push(e),e}newPage(){if(this.contexts.length===0)throw new Error("No default context. The browser has been closed.");return this.contexts[0].newPage()}};var g1=class{childFrames=[];parentFrame=null;page;closed=!1;[Dt]=new wl(this);[Yr]={navigation:[]};[Wi]=null;[Ps]=null;[Ic]=!1;[Go]=new cy;constructor(e){this.page=e,e.context.browser.contexts[0]?.pages[0]?.mainFrame&&(this.window=new this.page.context.browser.windowClass(this),e.context.browser[Dn]&&e.context.browser[Dn].observe(this.window))}get content(){if(!this.window)throw new Error('The frame has been destroyed, the "window" property is not set.');return this.window.document.documentElement.outerHTML}set content(e){if(!this.window)throw new Error('The frame has been destroyed, the "window" property is not set.');this.window.document[iu]=!0,this.window.document[au]=!1,this.window.document.open(),this.window.document.write(e)}get url(){if(!this.window)throw new Error('The frame has been destroyed, the "window" property is not set.');return this.window.location.href}set url(e){if(!this.window)throw new Error('The frame has been destroyed, the "window" property is not set.');this.window[Ii][yi](this,_i.getRelativeURL(this,e).href)}get document(){return this.window?.document??null}async waitUntilComplete(){await Promise.all([this[Dt].waitUntilComplete(),...this.childFrames.map(e=>e.waitUntilComplete())])}waitForNavigation(){return new Promise(e=>this[Yr].navigation.push(e))}abort(){return this.childFrames.length?new Promise((e,t)=>{Promise.all(this.childFrames.map(o=>o.abort()).concat([this[Dt].abort()])).then(()=>e()).catch(t)}):this[Dt].abort()}evaluate(e){return kh.evaluate(this,e)}evaluateModule(e){return kh.evaluateModule(this,e)}goto(e,t){return ni.navigate({windowClass:this.page.context.browser.windowClass,frame:this,url:e,goToOptions:t})}goBack(e){return ni.navigateBack({windowClass:this.page.context.browser.windowClass,frame:this,goToOptions:e})}goForward(e){return ni.navigateForward({windowClass:this.page.context.browser.windowClass,frame:this,goToOptions:e})}goSteps(e,t){return ni.navigateSteps({windowClass:this.page.context.browser.windowClass,frame:this,steps:e,goToOptions:t})}reload(e){return ni.reload({windowClass:this.page.context.browser.windowClass,frame:this,goToOptions:e})}};var yy=class{virtualConsolePrinter=new Cm;mainFrame;context;console;viewport;closed=!1;constructor(e){this.context=e,this.console=e.browser.console??new Sp(this.virtualConsolePrinter),this.mainFrame=new g1(this),this.viewport={width:e.browser.settings.viewport.width,height:e.browser.settings.viewport.height,devicePixelRatio:e.browser.settings.viewport.devicePixelRatio}}get frames(){return Mh.getFrames(this)}get content(){return this.mainFrame.content}set content(e){this.mainFrame.content=e}get url(){return this.mainFrame.url}set url(e){this.mainFrame.url=e}close(){return new Promise((e,t)=>{let o=this.context;Mh.closePage(this).then(()=>{o.pages[0]===this?o.browser.close().then(e).catch(t):e()}).catch(t)})}waitUntilComplete(){return this.mainFrame.waitUntilComplete()}waitForNavigation(){return this.mainFrame.waitForNavigation()}abort(){return this.mainFrame.abort()}evaluate(e){return this.mainFrame.evaluate(e)}evaluateModule(e){return this.mainFrame.evaluateModule(e)}setViewport(e){let t=Object.assign({},this.viewport);Object.assign(this.viewport,e),(t.width!==this.viewport.width||t.height!==this.viewport.height||t.devicePixelRatio!==this.viewport.devicePixelRatio)&&this.mainFrame.window.dispatchEvent(new fe("resize"))}goto(e,t){return this.mainFrame.goto(e,t)}goBack(e){return this.mainFrame.goBack(e)}goForward(e){return this.mainFrame.goForward(e)}goSteps(e,t){return this.mainFrame.goSteps(e,t)}reload(e){return this.mainFrame.reload(e)}};var b1=class{pages;browser;cookieContainer=new xd;responseCache=new Ed;preflightResponseCache=new hy;closed=!1;[Nd]=new Map;constructor(e){this.browser=e,this.pages=[],this.pages.push(new yy(this))}async close(){if(this.closed)return;if(this.browser.contexts[0]===this)throw new Error("Cannot close the default context. Use `browser.close()` to close the browser instead.");this.closed=!0,await Promise.all(this.pages.slice().map(o=>o.close()));let e=this.browser,t=e.contexts.indexOf(this);t!==-1&&e.contexts.splice(t,1),this.pages=[],this.cookieContainer.clearCookies(),this.responseCache.clear(),this.preflightResponseCache.clear()}async waitUntilComplete(){await Promise.all(this.pages.map(e=>e.waitUntilComplete()))}abort(){return new Promise((e,t)=>{if(!this.pages.length){e();return}Promise.all(this.pages.slice().map(o=>o.abort())).then(()=>e()).catch(o=>t(o))})}newPage(){let e=new yy(this);return this.pages.push(e),e}};var S1=class{contexts;settings;console;windowClass;[Dn]=null;constructor(e,t){this.windowClass=e,this.console=t?.console||null,this.settings=py.createSettings(t?.settings),this.settings.errorCapture===Dr.processLevel&&(this[Dn]=new dy),this.contexts=[],this.contexts.push(new b1(this))}get closed(){return this.contexts.length===0}get defaultContext(){if(this.contexts.length===0)throw new Error("No default context. The browser has been closed.");return this.contexts[0]}async close(){if(this.contexts.length===0)return;let e=this.contexts;this.contexts=[],await Promise.all(e.map(t=>t.close()))}async waitUntilComplete(){await Promise.all(this.contexts.map(e=>e.waitUntilComplete()))}abort(){return new Promise((e,t)=>{if(!this.contexts.length){e();return}Promise.all(this.contexts.slice().map(o=>o.abort())).then(()=>e()).catch(o=>t(o))})}newIncognitoContext(){throw new Error("Not possible to create a new context on a detached browser.")}newPage(){if(this.contexts.length===0)throw new Error("No default context. The browser has been closed.");return this.contexts[0].newPage()}};var A1=class{#e;constructor(e){this.#e=e}get settings(){return this.#e.page.context.browser.settings}get virtualConsolePrinter(){return this.#e.page.virtualConsolePrinter}waitUntilComplete(){return this.#e.waitUntilComplete()}whenAsyncComplete(){return this.waitUntilComplete()}abort(){return this.#e.abort()}cancelAsync(){return this.abort()}close(){return this.#e.page.close()}setURL(e){this.#e.url=e}setViewport(e){this.#e.page.setViewport(e)}setWindowSize(e){this.setViewport({width:e?.width,height:e?.height})}setInnerWidth(e){this.setViewport({width:e})}setInnerHeight(e){this.setViewport({height:e})}};var Ap=class extends Ra{happyDOM;constructor(e){let o=new S1(Ra,{console:e?.console,settings:e?.settings}).defaultContext.pages[0],n=o.mainFrame;e&&(e.width||e.height||e.innerWidth||e.innerHeight)&&Object.assign(o.viewport,{width:e.width||e.innerWidth||o.viewport.width,height:e.height||e.innerHeight||o.viewport.height}),super(n,{url:e?.url}),n.window=this,n.page.context.browser[Dn]&&n.page.context.browser[Dn].observe(this),this.happyDOM=new A1(n)}};import{Buffer as _Q}from"buffer";var U4=class extends Ap{Array=globalThis.Array;ArrayBuffer=globalThis.ArrayBuffer;Boolean=globalThis.Boolean;Buffer=_Q;DataView=globalThis.DataView;Date=globalThis.Date;Error=globalThis.Error;EvalError=globalThis.EvalError;Float32Array=globalThis.Float32Array;Float64Array=globalThis.Float64Array;Function=globalThis.Function;Infinity=globalThis.Infinity;Int16Array=globalThis.Int16Array;Int32Array=globalThis.Int32Array;Int8Array=globalThis.Int8Array;Intl=globalThis.Intl;JSON=globalThis.JSON;Map=globalThis.Map;Math=globalThis.Math;NaN=globalThis.NaN;Number=globalThis.Number;Object=globalThis.Object;Promise=globalThis.Promise;RangeError=globalThis.RangeError;ReferenceError=globalThis.ReferenceError;RegExp=globalThis.RegExp;Set=globalThis.Set;String=globalThis.String;Symbol=globalThis.Symbol;SyntaxError=globalThis.SyntaxError;TypeError=globalThis.TypeError;URIError=globalThis.URIError;Uint16Array=globalThis.Uint16Array;Uint32Array=globalThis.Uint32Array;Uint8Array=globalThis.Uint8Array;Uint8ClampedArray=globalThis.Uint8ClampedArray;WeakMap=globalThis.WeakMap;WeakSet=globalThis.WeakSet;decodeURI=globalThis.decodeURI;decodeURIComponent=globalThis.decodeURIComponent;encodeURI=globalThis.encodeURI;encodeURIComponent=globalThis.encodeURIComponent;eval=globalThis.eval;escape=globalThis.escape;global=globalThis;isFinite=globalThis.isFinite;isNaN=globalThis.isNaN;parseFloat=globalThis.parseFloat;parseInt=globalThis.parseInt;undefined=globalThis.undefined;unescape=globalThis.unescape;[qa](e,t){return t?.filename?this.eval(`${e}
|
|
233
|
-
//# sourceURL=${t.filename}`):this.eval(e)}[OS](){}};var ek={};cK(ek,{Adder:()=>wo,Delaunay:()=>ZA,FormatSpecifier:()=>tw,InternMap:()=>_l,InternSet:()=>Ua,Node:()=>pc,Path:()=>Fh,Voronoi:()=>Oy,ZoomTransform:()=>rl,active:()=>H_,arc:()=>YG,area:()=>f5,areaRadial:()=>jC,ascending:()=>Or,autoType:()=>G9,axisBottom:()=>sI,axisLeft:()=>lI,axisRight:()=>aI,axisTop:()=>iI,bin:()=>F4,bisect:()=>_a,bisectCenter:()=>BL,bisectLeft:()=>UL,bisectRight:()=>f6,bisector:()=>wp,blob:()=>BU,blur:()=>DL,blur2:()=>B4,blurImage:()=>OL,brush:()=>Z_,brushSelection:()=>J_,brushX:()=>$_,brushY:()=>Q_,buffer:()=>DU,chord:()=>tU,chordDirected:()=>oU,chordTranspose:()=>rU,cluster:()=>JD,color:()=>Ks,contourDensity:()=>fU,contours:()=>qA,count:()=>Th,create:()=>QI,creator:()=>vp,cross:()=>b6,csv:()=>FU,csvFormat:()=>EU,csvFormatBody:()=>CU,csvFormatRow:()=>MU,csvFormatRows:()=>kU,csvFormatValue:()=>TU,csvParse:()=>_v,csvParseRows:()=>xU,cubehelix:()=>Bi,cumsum:()=>S6,curveBasis:()=>lV,curveBasisClosed:()=>cV,curveBasisOpen:()=>mV,curveBumpX:()=>S5,curveBumpY:()=>A5,curveBundle:()=>dV,curveCardinal:()=>yV,curveCardinalClosed:()=>fV,curveCardinalOpen:()=>gV,curveCatmullRom:()=>SV,curveCatmullRomClosed:()=>wV,curveCatmullRomOpen:()=>vV,curveLinear:()=>qp,curveLinearClosed:()=>xV,curveMonotoneX:()=>WV,curveMonotoneY:()=>LV,curveNatural:()=>_V,curveStep:()=>UV,curveStepAfter:()=>DV,curveStepBefore:()=>BV,descending:()=>yA,deviation:()=>gA,difference:()=>H6,disjoint:()=>z6,dispatch:()=>Xs,drag:()=>rR,dragDisable:()=>Ep,dragEnable:()=>Cp,dsv:()=>V9,dsvFormat:()=>Bp,easeBack:()=>A9,easeBackIn:()=>D_,easeBackInOut:()=>A9,easeBackOut:()=>O_,easeBounce:()=>B1,easeBounceIn:()=>U_,easeBounceInOut:()=>B_,easeBounceOut:()=>B1,easeCircle:()=>g9,easeCircleIn:()=>R_,easeCircleInOut:()=>g9,easeCircleOut:()=>__,easeCubic:()=>jA,easeCubicIn:()=>N_,easeCubicInOut:()=>jA,easeCubicOut:()=>x_,easeElastic:()=>v9,easeElasticIn:()=>F_,easeElasticInOut:()=>G_,easeElasticOut:()=>v9,easeExp:()=>f9,easeExpIn:()=>L_,easeExpInOut:()=>f9,easeExpOut:()=>I_,easeLinear:()=>w_,easePoly:()=>d9,easePolyIn:()=>E_,easePolyInOut:()=>d9,easePolyOut:()=>C_,easeQuad:()=>m9,easeQuadIn:()=>P_,easeQuadInOut:()=>m9,easeQuadOut:()=>v_,easeSin:()=>y9,easeSinIn:()=>T_,easeSinInOut:()=>y9,easeSinOut:()=>W_,every:()=>B6,extent:()=>Wh,fcumsum:()=>VL,filter:()=>O6,flatGroup:()=>KL,flatRollup:()=>YL,forceCenter:()=>KU,forceCollide:()=>mB,forceLink:()=>dB,forceManyBody:()=>SB,forceRadial:()=>AB,forceSimulation:()=>bB,forceX:()=>wB,forceY:()=>PB,format:()=>zy,formatDefaultLocale:()=>Ov,formatLocale:()=>Bv,formatPrefix:()=>ow,formatSpecifier:()=>Gl,fsum:()=>GL,geoAlbers:()=>vN,geoAlbersUsa:()=>UD,geoArea:()=>UB,geoAzimuthalEqualArea:()=>BD,geoAzimuthalEqualAreaRaw:()=>xN,geoAzimuthalEquidistant:()=>DD,geoAzimuthalEquidistantRaw:()=>EN,geoBounds:()=>zB,geoCentroid:()=>JB,geoCircle:()=>tD,geoClipAntimeridian:()=>pw,geoClipCircle:()=>uN,geoClipExtent:()=>nD,geoClipRectangle:()=>Xh,geoConicConformal:()=>FD,geoConicConformalRaw:()=>kE,geoConicEqualArea:()=>Qy,geoConicEqualAreaRaw:()=>EE,geoConicEquidistant:()=>VD,geoConicEquidistantRaw:()=>ME,geoContains:()=>hD,geoDistance:()=>$1,geoEqualEarth:()=>HD,geoEqualEarthRaw:()=>MN,geoEquirectangular:()=>GD,geoEquirectangularRaw:()=>ef,geoGnomonic:()=>zD,geoGnomonicRaw:()=>TN,geoGraticule:()=>yN,geoGraticule10:()=>dD,geoIdentity:()=>jD,geoInterpolate:()=>yD,geoLength:()=>pN,geoMercator:()=>OD,geoMercatorRaw:()=>Zy,geoNaturalEarth1:()=>XD,geoNaturalEarth1Raw:()=>WN,geoOrthographic:()=>KD,geoOrthographicRaw:()=>LN,geoPath:()=>WD,geoProjection:()=>Cn,geoProjectionMutator:()=>Aw,geoRotation:()=>oN,geoStereographic:()=>YD,geoStereographicRaw:()=>IN,geoStream:()=>ui,geoTransform:()=>LD,geoTransverseMercator:()=>qD,geoTransverseMercatorRaw:()=>RN,gray:()=>bR,greatest:()=>vA,greatestIndex:()=>L6,group:()=>bA,groupSort:()=>v6,groups:()=>w6,hcl:()=>W1,hierarchy:()=>xw,histogram:()=>F4,hsl:()=>M1,html:()=>jU,image:()=>VU,index:()=>qL,indexes:()=>JL,interpolate:()=>Di,interpolateArray:()=>TR,interpolateBasis:()=>av,interpolateBasisClosed:()=>sv,interpolateBlues:()=>MG,interpolateBrBG:()=>lG,interpolateBuGn:()=>gG,interpolateBuPu:()=>bG,interpolateCividis:()=>_G,interpolateCool:()=>DG,interpolateCubehelix:()=>jR,interpolateCubehelixDefault:()=>UG,interpolateCubehelixLong:()=>Ty,interpolateDate:()=>cv,interpolateDiscrete:()=>WR,interpolateGnBu:()=>SG,interpolateGreens:()=>TG,interpolateGreys:()=>WG,interpolateHcl:()=>VR,interpolateHclLong:()=>HR,interpolateHsl:()=>OR,interpolateHslLong:()=>FR,interpolateHue:()=>LR,interpolateInferno:()=>zG,interpolateLab:()=>u9,interpolateMagma:()=>HG,interpolateNumber:()=>si,interpolateNumberArray:()=>I1,interpolateObject:()=>hv,interpolateOrRd:()=>AG,interpolateOranges:()=>RG,interpolatePRGn:()=>uG,interpolatePiYG:()=>cG,interpolatePlasma:()=>jG,interpolatePuBu:()=>PG,interpolatePuBuGn:()=>wG,interpolatePuOr:()=>hG,interpolatePuRd:()=>vG,interpolatePurples:()=>LG,interpolateRainbow:()=>OG,interpolateRdBu:()=>mG,interpolateRdGy:()=>pG,interpolateRdPu:()=>NG,interpolateRdYlBu:()=>dG,interpolateRdYlGn:()=>yG,interpolateReds:()=>IG,interpolateRgb:()=>Wp,interpolateRgbBasis:()=>lv,interpolateRgbBasisClosed:()=>MR,interpolateRound:()=>Lp,interpolateSinebow:()=>FG,interpolateSpectral:()=>fG,interpolateString:()=>R1,interpolateTransformCss:()=>dv,interpolateTransformSvg:()=>yv,interpolateTurbo:()=>GG,interpolateViridis:()=>VG,interpolateWarm:()=>BG,interpolateYlGn:()=>EG,interpolateYlGnBu:()=>xG,interpolateYlOrBr:()=>CG,interpolateYlOrRd:()=>kG,interpolateZoom:()=>fv,interrupt:()=>Ol,intersection:()=>j6,interval:()=>JR,isoFormat:()=>KF,isoParse:()=>YF,json:()=>HU,lab:()=>ky,lch:()=>AR,least:()=>W6,leastIndex:()=>NA,line:()=>dS,lineRadial:()=>zC,link:()=>Hw,linkHorizontal:()=>rV,linkRadial:()=>nV,linkVertical:()=>oV,local:()=>J4,map:()=>F6,matcher:()=>E1,max:()=>Rh,maxIndex:()=>Ay,mean:()=>E6,median:()=>C6,medianIndex:()=>eI,merge:()=>vy,min:()=>Pp,minIndex:()=>wy,mode:()=>k6,namespace:()=>rc,namespaces:()=>kA,nice:()=>by,now:()=>Ip,pack:()=>wO,packEnclose:()=>mO,packSiblings:()=>bO,pairs:()=>M6,partition:()=>PO,path:()=>YA,pathRound:()=>iU,permute:()=>SA,pie:()=>ZG,piecewise:()=>BA,pointRadial:()=>gf,pointer:()=>ai,pointers:()=>ZI,polygonArea:()=>WO,polygonCentroid:()=>LO,polygonContains:()=>UO,polygonHull:()=>_O,polygonLength:()=>BO,precisionFixed:()=>Fv,precisionPrefix:()=>Gv,precisionRound:()=>Vv,quadtree:()=>Dp,quantile:()=>tc,quantileIndex:()=>V4,quantileSorted:()=>G4,quantize:()=>XR,quickselect:()=>Py,radialArea:()=>jC,radialLine:()=>zC,randomBates:()=>GO,randomBernoulli:()=>zO,randomBeta:()=>VN,randomBinomial:()=>HN,randomCauchy:()=>XO,randomExponential:()=>VO,randomGamma:()=>uS,randomGeometric:()=>GN,randomInt:()=>OO,randomIrwinHall:()=>FN,randomLcg:()=>VE,randomLogNormal:()=>FO,randomLogistic:()=>KO,randomNormal:()=>lS,randomPareto:()=>HO,randomPoisson:()=>YO,randomUniform:()=>DO,randomWeibull:()=>jO,range:()=>js,rank:()=>T6,reduce:()=>G6,reverse:()=>V6,rgb:()=>Bh,ribbon:()=>uU,ribbonArrow:()=>cU,rollup:()=>D4,rollups:()=>P6,scaleBand:()=>Cw,scaleDiverging:()=>c5,scaleDivergingLog:()=>pC,scaleDivergingPow:()=>h5,scaleDivergingSqrt:()=>JF,scaleDivergingSymlog:()=>dC,scaleIdentity:()=>XN,scaleImplicit:()=>zN,scaleLinear:()=>jN,scaleLog:()=>KN,scaleOrdinal:()=>cS,scalePoint:()=>$O,scalePow:()=>Iw,scaleQuantile:()=>JN,scaleQuantize:()=>$N,scaleRadial:()=>qN,scaleSequential:()=>a5,scaleSequentialLog:()=>hC,scaleSequentialPow:()=>s5,scaleSequentialQuantile:()=>l5,scaleSequentialSqrt:()=>qF,scaleSequentialSymlog:()=>mC,scaleSqrt:()=>iF,scaleSymlog:()=>YN,scaleThreshold:()=>QN,scaleTime:()=>uC,scaleUtc:()=>cC,scan:()=>I6,schemeAccent:()=>QF,schemeBlues:()=>UC,schemeBrBG:()=>yC,schemeBuGn:()=>NC,schemeBuPu:()=>xC,schemeCategory10:()=>$F,schemeDark2:()=>ZF,schemeGnBu:()=>EC,schemeGreens:()=>BC,schemeGreys:()=>DC,schemeObservable10:()=>eG,schemeOrRd:()=>CC,schemeOranges:()=>GC,schemePRGn:()=>fC,schemePaired:()=>tG,schemePastel1:()=>rG,schemePastel2:()=>oG,schemePiYG:()=>gC,schemePuBu:()=>MC,schemePuBuGn:()=>kC,schemePuOr:()=>bC,schemePuRd:()=>TC,schemePurples:()=>OC,schemeRdBu:()=>SC,schemeRdGy:()=>AC,schemeRdPu:()=>WC,schemeRdYlBu:()=>wC,schemeRdYlGn:()=>PC,schemeReds:()=>FC,schemeSet1:()=>nG,schemeSet2:()=>iG,schemeSet3:()=>aG,schemeSpectral:()=>vC,schemeTableau10:()=>sG,schemeYlGn:()=>IC,schemeYlGnBu:()=>LC,schemeYlOrBr:()=>RC,schemeYlOrRd:()=>_C,select:()=>yn,selectAll:()=>eR,selection:()=>oc,selector:()=>Np,selectorAll:()=>x1,shuffle:()=>tI,shuffler:()=>R6,some:()=>D6,sort:()=>N1,stack:()=>OV,stackOffsetDiverging:()=>GV,stackOffsetExpand:()=>FV,stackOffsetNone:()=>Kl,stackOffsetSilhouette:()=>VV,stackOffsetWiggle:()=>HV,stackOrderAppearance:()=>B5,stackOrderAscending:()=>D5,stackOrderDescending:()=>zV,stackOrderInsideOut:()=>jV,stackOrderNone:()=>Yl,stackOrderReverse:()=>XV,stratify:()=>xO,style:()=>_h,subset:()=>X6,sum:()=>_6,superset:()=>EA,svg:()=>XU,symbol:()=>JC,symbolAsterisk:()=>w5,symbolCircle:()=>gS,symbolCross:()=>P5,symbolDiamond:()=>v5,symbolDiamond2:()=>N5,symbolPlus:()=>x5,symbolSquare:()=>E5,symbolSquare2:()=>C5,symbolStar:()=>k5,symbolTimes:()=>zw,symbolTriangle:()=>M5,symbolTriangle2:()=>T5,symbolWye:()=>W5,symbolX:()=>zw,symbols:()=>qC,symbolsFill:()=>qC,symbolsStroke:()=>sV,text:()=>Vy,thresholdFreedmanDiaconis:()=>N6,thresholdScott:()=>x6,thresholdSturges:()=>Sy,tickFormat:()=>kw,tickIncrement:()=>Ul,tickStep:()=>gy,ticks:()=>Ba,timeDay:()=>gc,timeDays:()=>hF,timeFormat:()=>Fw,timeFormatDefaultLocale:()=>o5,timeFormatLocale:()=>Ow,timeFriday:()=>$E,timeFridays:()=>SF,timeHour:()=>lf,timeHours:()=>uF,timeInterval:()=>Po,timeMillisecond:()=>Xp,timeMilliseconds:()=>KE,timeMinute:()=>nf,timeMinutes:()=>sF,timeMonday:()=>hf,timeMondays:()=>yF,timeMonth:()=>df,timeMonths:()=>CF,timeParse:()=>sC,timeSaturday:()=>QE,timeSaturdays:()=>AF,timeSecond:()=>ds,timeSeconds:()=>YE,timeSunday:()=>bc,timeSundays:()=>ZE,timeThursday:()=>Yh,timeThursdays:()=>bF,timeTickInterval:()=>r5,timeTicks:()=>t5,timeTuesday:()=>qE,timeTuesdays:()=>fF,timeWednesday:()=>JE,timeWednesdays:()=>gF,timeWeek:()=>bc,timeWeeks:()=>ZE,timeYear:()=>Fa,timeYears:()=>MF,timeout:()=>VA,timer:()=>Iy,timerFlush:()=>h9,transition:()=>Ev,transpose:()=>xA,tree:()=>EO,treemap:()=>CO,treemapBinary:()=>kO,treemapDice:()=>dc,treemapResquarify:()=>TO,treemapSlice:()=>zp,treemapSliceDice:()=>MO,treemapSquarify:()=>ON,tsv:()=>GU,tsvFormat:()=>LU,tsvFormatBody:()=>IU,tsvFormatRow:()=>_U,tsvFormatRows:()=>RU,tsvFormatValue:()=>UU,tsvParse:()=>Uv,tsvParseRows:()=>WU,union:()=>K6,unixDay:()=>_w,unixDays:()=>pF,utcDay:()=>Kp,utcDays:()=>mF,utcFormat:()=>ff,utcFriday:()=>rC,utcFridays:()=>xF,utcHour:()=>uf,utcHours:()=>cF,utcMillisecond:()=>Xp,utcMilliseconds:()=>KE,utcMinute:()=>af,utcMinutes:()=>lF,utcMonday:()=>pf,utcMondays:()=>wF,utcMonth:()=>yf,utcMonths:()=>kF,utcParse:()=>Gw,utcSaturday:()=>oC,utcSaturdays:()=>EF,utcSecond:()=>ds,utcSeconds:()=>YE,utcSunday:()=>Sc,utcSundays:()=>nC,utcThursday:()=>qh,utcThursdays:()=>NF,utcTickInterval:()=>e5,utcTicks:()=>ZN,utcTuesday:()=>eC,utcTuesdays:()=>PF,utcWednesday:()=>tC,utcWednesdays:()=>vF,utcWeek:()=>Sc,utcWeeks:()=>nC,utcYear:()=>Ga,utcYears:()=>TF,variance:()=>fA,window:()=>C1,xml:()=>zU,zip:()=>U6,zoom:()=>YV,zoomIdentity:()=>AS,zoomTransform:()=>O5});function Or(r,e){return r==null||e==null?NaN:r<e?-1:r>e?1:r>=e?0:NaN}function yA(r,e){return r==null||e==null?NaN:e<r?-1:e>r?1:e>=r?0:NaN}function wp(r){let e,t,o;r.length!==2?(e=Or,t=(s,l)=>Or(r(s),l),o=(s,l)=>r(s)-l):(e=r===Or||r===yA?r:UQ,t=r,o=r);function n(s,l,u=0,c=s.length){if(u<c){if(e(l,l)!==0)return c;do{let h=u+c>>>1;t(s[h],l)<0?u=h+1:c=h}while(u<c)}return u}function i(s,l,u=0,c=s.length){if(u<c){if(e(l,l)!==0)return c;do{let h=u+c>>>1;t(s[h],l)<=0?u=h+1:c=h}while(u<c)}return u}function a(s,l,u=0,c=s.length){let h=n(s,l,u,c-1);return h>u&&o(s[h-1],l)>-o(s[h],l)?h-1:h}return{left:n,center:a,right:i}}function UQ(){return 0}function fy(r){return r===null?NaN:+r}function*RL(r,e){if(e===void 0)for(let t of r)t!=null&&(t=+t)>=t&&(yield t);else{let t=-1;for(let o of r)(o=e(o,++t,r))!=null&&(o=+o)>=o&&(yield o)}}var _L=wp(Or),f6=_L.right,UL=_L.left,BL=wp(fy).center,_a=f6;function DL(r,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let t=r.length;if(!((t=Math.floor(t))>=0))throw new RangeError("invalid length");if(!t||!e)return r;let o=g6(e),n=r.slice();return o(r,n,0,t,1),o(n,r,0,t,1),o(r,n,0,t,1),r}var B4=FL(g6),OL=FL(BQ);function FL(r){return function(e,t,o=t){if(!((t=+t)>=0))throw new RangeError("invalid rx");if(!((o=+o)>=0))throw new RangeError("invalid ry");let{data:n,width:i,height:a}=e;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(a!==void 0?a:n.length/i))>=0))throw new RangeError("invalid height");if(!i||!a||!t&&!o)return e;let s=t&&r(t),l=o&&r(o),u=n.slice();return s&&l?(w1(s,u,n,i,a),w1(s,n,u,i,a),w1(s,u,n,i,a),P1(l,n,u,i,a),P1(l,u,n,i,a),P1(l,n,u,i,a)):s?(w1(s,n,u,i,a),w1(s,u,n,i,a),w1(s,n,u,i,a)):l&&(P1(l,n,u,i,a),P1(l,u,n,i,a),P1(l,n,u,i,a)),e}}function w1(r,e,t,o,n){for(let i=0,a=o*n;i<a;)r(e,t,i,i+=o,1)}function P1(r,e,t,o,n){for(let i=0,a=o*n;i<o;++i)r(e,t,i,i+a,o)}function BQ(r){let e=g6(r);return(t,o,n,i,a)=>{n<<=2,i<<=2,a<<=2,e(t,o,n+0,i+0,a),e(t,o,n+1,i+1,a),e(t,o,n+2,i+2,a),e(t,o,n+3,i+3,a)}}function g6(r){let e=Math.floor(r);if(e===r)return DQ(r);let t=r-e,o=2*r+1;return(n,i,a,s,l)=>{if(!((s-=l)>=a))return;let u=e*i[a],c=l*e,h=c+l;for(let m=a,p=a+c;m<p;m+=l)u+=i[Math.min(s,m)];for(let m=a,p=s;m<=p;m+=l)u+=i[Math.min(s,m+c)],n[m]=(u+t*(i[Math.max(a,m-h)]+i[Math.min(s,m+h)]))/o,u-=i[Math.max(a,m-c)]}}function DQ(r){let e=2*r+1;return(t,o,n,i,a)=>{if(!((i-=a)>=n))return;let s=r*o[n],l=a*r;for(let u=n,c=n+l;u<c;u+=a)s+=o[Math.min(i,u)];for(let u=n,c=i;u<=c;u+=a)s+=o[Math.min(i,u+l)],t[u]=s/e,s-=o[Math.max(n,u-l)]}}function Th(r,e){let t=0;if(e===void 0)for(let o of r)o!=null&&(o=+o)>=o&&++t;else{let o=-1;for(let n of r)(n=e(n,++o,r))!=null&&(n=+n)>=n&&++t}return t}function OQ(r){return r.length|0}function FQ(r){return!(r>0)}function GQ(r){return typeof r!="object"||"length"in r?r:Array.from(r)}function VQ(r){return e=>r(...e)}function b6(...r){let e=typeof r[r.length-1]=="function"&&VQ(r.pop());r=r.map(GQ);let t=r.map(OQ),o=r.length-1,n=new Array(o+1).fill(0),i=[];if(o<0||t.some(FQ))return i;for(;;){i.push(n.map((s,l)=>r[l][s]));let a=o;for(;++n[a]===t[a];){if(a===0)return e?i.map(e):i;n[a--]=0}}}function S6(r,e){var t=0,o=0;return Float64Array.from(r,e===void 0?n=>t+=+n||0:n=>t+=+e(n,o++,r)||0)}function fA(r,e){let t=0,o,n=0,i=0;if(e===void 0)for(let a of r)a!=null&&(a=+a)>=a&&(o=a-n,n+=o/++t,i+=o*(a-n));else{let a=-1;for(let s of r)(s=e(s,++a,r))!=null&&(s=+s)>=s&&(o=s-n,n+=o/++t,i+=o*(s-n))}if(t>1)return i/(t-1)}function gA(r,e){let t=fA(r,e);return t&&Math.sqrt(t)}function Wh(r,e){let t,o;if(e===void 0)for(let n of r)n!=null&&(t===void 0?n>=n&&(t=o=n):(t>n&&(t=n),o<n&&(o=n)));else{let n=-1;for(let i of r)(i=e(i,++n,r))!=null&&(t===void 0?i>=i&&(t=o=i):(t>i&&(t=i),o<i&&(o=i)))}return[t,o]}var wo=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){let t=this._partials,o=0;for(let n=0;n<this._n&&n<32;n++){let i=t[n],a=e+i,s=Math.abs(e)<Math.abs(i)?e-(a-i):i-(a-e);s&&(t[o++]=s),e=a}return t[o]=e,this._n=o+1,this}valueOf(){let e=this._partials,t=this._n,o,n,i,a=0;if(t>0){for(a=e[--t];t>0&&(o=a,n=e[--t],a=o+n,i=n-(a-o),!i););t>0&&(i<0&&e[t-1]<0||i>0&&e[t-1]>0)&&(n=i*2,o=a+n,n==o-a&&(a=o))}return a}};function GL(r,e){let t=new wo;if(e===void 0)for(let o of r)(o=+o)&&t.add(o);else{let o=-1;for(let n of r)(n=+e(n,++o,r))&&t.add(n)}return+t}function VL(r,e){let t=new wo,o=-1;return Float64Array.from(r,e===void 0?n=>t.add(+n||0):n=>t.add(+e(n,++o,r)||0))}var _l=class extends Map{constructor(e,t=jL){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[o,n]of e)this.set(o,n)}get(e){return super.get(A6(this,e))}has(e){return super.has(A6(this,e))}set(e,t){return super.set(HL(this,e),t)}delete(e){return super.delete(zL(this,e))}},Ua=class extends Set{constructor(e,t=jL){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let o of e)this.add(o)}has(e){return super.has(A6(this,e))}add(e){return super.add(HL(this,e))}delete(e){return super.delete(zL(this,e))}};function A6({_intern:r,_key:e},t){let o=e(t);return r.has(o)?r.get(o):t}function HL({_intern:r,_key:e},t){let o=e(t);return r.has(o)?r.get(o):(r.set(o,t),t)}function zL({_intern:r,_key:e},t){let o=e(t);return r.has(o)&&(t=r.get(o),r.delete(o)),t}function jL(r){return r!==null&&typeof r=="object"?r.valueOf():r}function Lh(r){return r}function bA(r,...e){return v1(r,Lh,Lh,e)}function w6(r,...e){return v1(r,Array.from,Lh,e)}function XL(r,e){for(let t=1,o=e.length;t<o;++t)r=r.flatMap(n=>n.pop().map(([i,a])=>[...n,i,a]));return r}function KL(r,...e){return XL(w6(r,...e),e)}function YL(r,e,...t){return XL(P6(r,e,...t),t)}function D4(r,e,...t){return v1(r,Lh,e,t)}function P6(r,e,...t){return v1(r,Array.from,e,t)}function qL(r,...e){return v1(r,Lh,$L,e)}function JL(r,...e){return v1(r,Array.from,$L,e)}function $L(r){if(r.length!==1)throw new Error("duplicate key");return r[0]}function v1(r,e,t,o){return(function n(i,a){if(a>=o.length)return t(i);let s=new _l,l=o[a++],u=-1;for(let c of i){let h=l(c,++u,i),m=s.get(h);m?m.push(c):s.set(h,[c])}for(let[c,h]of s)s.set(c,n(h,a));return e(s)})(r,0)}function SA(r,e){return Array.from(e,t=>r[t])}function N1(r,...e){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");r=Array.from(r);let[t]=e;if(t&&t.length!==2||e.length>1){let o=Uint32Array.from(r,(n,i)=>i);return e.length>1?(e=e.map(n=>r.map(n)),o.sort((n,i)=>{for(let a of e){let s=Ih(a[n],a[i]);if(s)return s}})):(t=r.map(t),o.sort((n,i)=>Ih(t[n],t[i]))),SA(r,o)}return r.sort(AA(t))}function AA(r=Or){if(r===Or)return Ih;if(typeof r!="function")throw new TypeError("compare is not a function");return(e,t)=>{let o=r(e,t);return o||o===0?o:(r(t,t)===0)-(r(e,e)===0)}}function Ih(r,e){return(r==null||!(r>=r))-(e==null||!(e>=e))||(r<e?-1:r>e?1:0)}function v6(r,e,t){return(e.length!==2?N1(D4(r,e,t),(([o,n],[i,a])=>Or(n,a)||Or(o,i))):N1(bA(r,t),(([o,n],[i,a])=>e(n,a)||Or(o,i)))).map(([o])=>o)}var QL=Array.prototype,ZL=QL.slice,KOe=QL.map;function wA(r){return()=>r}var HQ=Math.sqrt(50),zQ=Math.sqrt(10),jQ=Math.sqrt(2);function O4(r,e,t){let o=(e-r)/Math.max(0,t),n=Math.floor(Math.log10(o)),i=o/Math.pow(10,n),a=i>=HQ?10:i>=zQ?5:i>=jQ?2:1,s,l,u;return n<0?(u=Math.pow(10,-n)/a,s=Math.round(r*u),l=Math.round(e*u),s/u<r&&++s,l/u>e&&--l,u=-u):(u=Math.pow(10,n)*a,s=Math.round(r/u),l=Math.round(e/u),s*u<r&&++s,l*u>e&&--l),l<s&&.5<=t&&t<2?O4(r,e,t*2):[s,l,u]}function Ba(r,e,t){if(e=+e,r=+r,t=+t,!(t>0))return[];if(r===e)return[r];let o=e<r,[n,i,a]=o?O4(e,r,t):O4(r,e,t);if(!(i>=n))return[];let s=i-n+1,l=new Array(s);if(o)if(a<0)for(let u=0;u<s;++u)l[u]=(i-u)/-a;else for(let u=0;u<s;++u)l[u]=(i-u)*a;else if(a<0)for(let u=0;u<s;++u)l[u]=(n+u)/-a;else for(let u=0;u<s;++u)l[u]=(n+u)*a;return l}function Ul(r,e,t){return e=+e,r=+r,t=+t,O4(r,e,t)[2]}function gy(r,e,t){e=+e,r=+r,t=+t;let o=e<r,n=o?Ul(e,r,t):Ul(r,e,t);return(o?-1:1)*(n<0?1/-n:n)}function by(r,e,t){let o;for(;;){let n=Ul(r,e,t);if(n===o||n===0||!isFinite(n))return[r,e];n>0?(r=Math.floor(r/n)*n,e=Math.ceil(e/n)*n):n<0&&(r=Math.ceil(r*n)/n,e=Math.floor(e*n)/n),o=n}}function Sy(r){return Math.max(1,Math.ceil(Math.log(Th(r))/Math.LN2)+1)}function F4(){var r=Lh,e=Wh,t=Sy;function o(n){Array.isArray(n)||(n=Array.from(n));var i,a=n.length,s,l,u=new Array(a);for(i=0;i<a;++i)u[i]=r(n[i],i,n);var c=e(u),h=c[0],m=c[1],p=t(u,h,m);if(!Array.isArray(p)){let P=m,A=+p;if(e===Wh&&([h,m]=by(h,m,A)),p=Ba(h,m,A),p[0]<=h&&(l=Ul(h,m,A)),p[p.length-1]>=m)if(P>=m&&e===Wh){let M=Ul(h,m,A);isFinite(M)&&(M>0?m=(Math.floor(m/M)+1)*M:M<0&&(m=(Math.ceil(m*-M)+1)/-M))}else p.pop()}for(var g=p.length,d=0,f=g;p[d]<=h;)++d;for(;p[f-1]>m;)--f;(d||f<g)&&(p=p.slice(d,f),g=f-d);var b=new Array(g+1),w;for(i=0;i<=g;++i)w=b[i]=[],w.x0=i>0?p[i-1]:h,w.x1=i<g?p[i]:m;if(isFinite(l)){if(l>0)for(i=0;i<a;++i)(s=u[i])!=null&&h<=s&&s<=m&&b[Math.min(g,Math.floor((s-h)/l))].push(n[i]);else if(l<0){for(i=0;i<a;++i)if((s=u[i])!=null&&h<=s&&s<=m){let P=Math.floor((h-s)*l);b[Math.min(g,P+(p[P]<=s))].push(n[i])}}}else for(i=0;i<a;++i)(s=u[i])!=null&&h<=s&&s<=m&&b[_a(p,s,0,g)].push(n[i]);return b}return o.value=function(n){return arguments.length?(r=typeof n=="function"?n:wA(n),o):r},o.domain=function(n){return arguments.length?(e=typeof n=="function"?n:wA([n[0],n[1]]),o):e},o.thresholds=function(n){return arguments.length?(t=typeof n=="function"?n:wA(Array.isArray(n)?ZL.call(n):n),o):t},o}function Rh(r,e){let t;if(e===void 0)for(let o of r)o!=null&&(t<o||t===void 0&&o>=o)&&(t=o);else{let o=-1;for(let n of r)(n=e(n,++o,r))!=null&&(t<n||t===void 0&&n>=n)&&(t=n)}return t}function Ay(r,e){let t,o=-1,n=-1;if(e===void 0)for(let i of r)++n,i!=null&&(t<i||t===void 0&&i>=i)&&(t=i,o=n);else for(let i of r)(i=e(i,++n,r))!=null&&(t<i||t===void 0&&i>=i)&&(t=i,o=n);return o}function Pp(r,e){let t;if(e===void 0)for(let o of r)o!=null&&(t>o||t===void 0&&o>=o)&&(t=o);else{let o=-1;for(let n of r)(n=e(n,++o,r))!=null&&(t>n||t===void 0&&n>=n)&&(t=n)}return t}function wy(r,e){let t,o=-1,n=-1;if(e===void 0)for(let i of r)++n,i!=null&&(t>i||t===void 0&&i>=i)&&(t=i,o=n);else for(let i of r)(i=e(i,++n,r))!=null&&(t>i||t===void 0&&i>=i)&&(t=i,o=n);return o}function Py(r,e,t=0,o=1/0,n){if(e=Math.floor(e),t=Math.floor(Math.max(0,t)),o=Math.floor(Math.min(r.length-1,o)),!(t<=e&&e<=o))return r;for(n=n===void 0?Ih:AA(n);o>t;){if(o-t>600){let l=o-t+1,u=e-t+1,c=Math.log(l),h=.5*Math.exp(2*c/3),m=.5*Math.sqrt(c*h*(l-h)/l)*(u-l/2<0?-1:1),p=Math.max(t,Math.floor(e-u*h/l+m)),g=Math.min(o,Math.floor(e+(l-u)*h/l+m));Py(r,e,p,g,n)}let i=r[e],a=t,s=o;for(PA(r,t,e),n(r[o],i)>0&&PA(r,t,o);a<s;){for(PA(r,a,s),++a,--s;n(r[a],i)<0;)++a;for(;n(r[s],i)>0;)--s}n(r[t],i)===0?PA(r,t,s):(++s,PA(r,s,o)),s<=e&&(t=s+1),e<=s&&(o=s-1)}return r}function PA(r,e,t){let o=r[e];r[e]=r[t],r[t]=o}function vA(r,e=Or){let t,o=!1;if(e.length===1){let n;for(let i of r){let a=e(i);(o?Or(a,n)>0:Or(a,a)===0)&&(t=i,n=a,o=!0)}}else for(let n of r)(o?e(n,t)>0:e(n,n)===0)&&(t=n,o=!0);return t}function tc(r,e,t){if(r=Float64Array.from(RL(r,t)),!(!(o=r.length)||isNaN(e=+e))){if(e<=0||o<2)return Pp(r);if(e>=1)return Rh(r);var o,n=(o-1)*e,i=Math.floor(n),a=Rh(Py(r,i).subarray(0,i+1)),s=Pp(r.subarray(i+1));return a+(s-a)*(n-i)}}function G4(r,e,t=fy){if(!(!(o=r.length)||isNaN(e=+e))){if(e<=0||o<2)return+t(r[0],0,r);if(e>=1)return+t(r[o-1],o-1,r);var o,n=(o-1)*e,i=Math.floor(n),a=+t(r[i],i,r),s=+t(r[i+1],i+1,r);return a+(s-a)*(n-i)}}function V4(r,e,t=fy){if(!isNaN(e=+e)){if(o=Float64Array.from(r,(s,l)=>fy(t(r[l],l,r))),e<=0)return wy(o);if(e>=1)return Ay(o);var o,n=Uint32Array.from(r,(s,l)=>l),i=o.length-1,a=Math.floor(i*e);return Py(n,a,0,i,(s,l)=>Ih(o[s],o[l])),a=vA(n.subarray(0,a+1),s=>o[s]),a>=0?a:-1}}function N6(r,e,t){let o=Th(r),n=tc(r,.75)-tc(r,.25);return o&&n?Math.ceil((t-e)/(2*n*Math.pow(o,-1/3))):1}function x6(r,e,t){let o=Th(r),n=gA(r);return o&&n?Math.ceil((t-e)*Math.cbrt(o)/(3.49*n)):1}function E6(r,e){let t=0,o=0;if(e===void 0)for(let n of r)n!=null&&(n=+n)>=n&&(++t,o+=n);else{let n=-1;for(let i of r)(i=e(i,++n,r))!=null&&(i=+i)>=i&&(++t,o+=i)}if(t)return o/t}function C6(r,e){return tc(r,.5,e)}function eI(r,e){return V4(r,.5,e)}function*XQ(r){for(let e of r)yield*e}function vy(r){return Array.from(XQ(r))}function k6(r,e){let t=new _l;if(e===void 0)for(let i of r)i!=null&&i>=i&&t.set(i,(t.get(i)||0)+1);else{let i=-1;for(let a of r)(a=e(a,++i,r))!=null&&a>=a&&t.set(a,(t.get(a)||0)+1)}let o,n=0;for(let[i,a]of t)a>n&&(n=a,o=i);return o}function M6(r,e=KQ){let t=[],o,n=!1;for(let i of r)n&&t.push(e(o,i)),o=i,n=!0;return t}function KQ(r,e){return[r,e]}function js(r,e,t){r=+r,e=+e,t=(n=arguments.length)<2?(e=r,r=0,1):n<3?1:+t;for(var o=-1,n=Math.max(0,Math.ceil((e-r)/t))|0,i=new Array(n);++o<n;)i[o]=r+o*t;return i}function T6(r,e=Or){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");let t=Array.from(r),o=new Float64Array(t.length);e.length!==2&&(t=t.map(e),e=Or);let n=(s,l)=>e(t[s],t[l]),i,a;return r=Uint32Array.from(t,(s,l)=>l),r.sort(e===Or?(s,l)=>Ih(t[s],t[l]):AA(n)),r.forEach((s,l)=>{let u=n(s,i===void 0?s:i);u>=0?((i===void 0||u>0)&&(i=s,a=l),o[s]=a):o[s]=NaN}),o}function W6(r,e=Or){let t,o=!1;if(e.length===1){let n;for(let i of r){let a=e(i);(o?Or(a,n)<0:Or(a,a)===0)&&(t=i,n=a,o=!0)}}else for(let n of r)(o?e(n,t)<0:e(n,n)===0)&&(t=n,o=!0);return t}function NA(r,e=Or){if(e.length===1)return wy(r,e);let t,o=-1,n=-1;for(let i of r)++n,(o<0?e(i,i)===0:e(i,t)<0)&&(t=i,o=n);return o}function L6(r,e=Or){if(e.length===1)return Ay(r,e);let t,o=-1,n=-1;for(let i of r)++n,(o<0?e(i,i)===0:e(i,t)>0)&&(t=i,o=n);return o}function I6(r,e){let t=NA(r,e);return t<0?void 0:t}var tI=R6(Math.random);function R6(r){return function(t,o=0,n=t.length){let i=n-(o=+o);for(;i;){let a=r()*i--|0,s=t[i+o];t[i+o]=t[a+o],t[a+o]=s}return t}}function _6(r,e){let t=0;if(e===void 0)for(let o of r)(o=+o)&&(t+=o);else{let o=-1;for(let n of r)(n=+e(n,++o,r))&&(t+=n)}return t}function xA(r){if(!(i=r.length))return[];for(var e=-1,t=Pp(r,YQ),o=new Array(t);++e<t;)for(var n=-1,i,a=o[e]=new Array(i);++n<i;)a[n]=r[n][e];return o}function YQ(r){return r.length}function U6(){return xA(arguments)}function B6(r,e){if(typeof e!="function")throw new TypeError("test is not a function");let t=-1;for(let o of r)if(!e(o,++t,r))return!1;return!0}function D6(r,e){if(typeof e!="function")throw new TypeError("test is not a function");let t=-1;for(let o of r)if(e(o,++t,r))return!0;return!1}function O6(r,e){if(typeof e!="function")throw new TypeError("test is not a function");let t=[],o=-1;for(let n of r)e(n,++o,r)&&t.push(n);return t}function F6(r,e){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");if(typeof e!="function")throw new TypeError("mapper is not a function");return Array.from(r,(t,o)=>e(t,o,r))}function G6(r,e,t){if(typeof e!="function")throw new TypeError("reducer is not a function");let o=r[Symbol.iterator](),n,i,a=-1;if(arguments.length<3){if({done:n,value:t}=o.next(),n)return;++a}for(;{done:n,value:i}=o.next(),!n;)t=e(t,i,++a,r);return t}function V6(r){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");return Array.from(r).reverse()}function H6(r,...e){r=new Ua(r);for(let t of e)for(let o of t)r.delete(o);return r}function z6(r,e){let t=e[Symbol.iterator](),o=new Ua;for(let n of r){if(o.has(n))return!1;let i,a;for(;({value:i,done:a}=t.next())&&!a;){if(Object.is(n,i))return!1;o.add(i)}}return!0}function j6(r,...e){r=new Ua(r),e=e.map(qQ);e:for(let t of r)for(let o of e)if(!o.has(t)){r.delete(t);continue e}return r}function qQ(r){return r instanceof Ua?r:new Ua(r)}function EA(r,e){let t=r[Symbol.iterator](),o=new Set;for(let n of e){let i=rI(n);if(o.has(i))continue;let a,s;for(;{value:a,done:s}=t.next();){if(s)return!1;let l=rI(a);if(o.add(l),Object.is(i,l))break}}return!0}function rI(r){return r!==null&&typeof r=="object"?r.valueOf():r}function X6(r,e){return EA(e,r)}function K6(...r){let e=new Ua;for(let t of r)for(let o of t)e.add(o);return e}function oI(r){return r}var H4=1,z4=2,Y6=3,CA=4,nI=1e-6;function JQ(r){return"translate("+r+",0)"}function $Q(r){return"translate(0,"+r+")"}function QQ(r){return e=>+r(e)}function ZQ(r,e){return e=Math.max(0,r.bandwidth()-e*2)/2,r.round()&&(e=Math.round(e)),t=>+r(t)+e}function eZ(){return!this.__axis}function j4(r,e){var t=[],o=null,n=null,i=6,a=6,s=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=r===H4||r===CA?-1:1,c=r===CA||r===z4?"x":"y",h=r===H4||r===Y6?JQ:$Q;function m(p){var g=o??(e.ticks?e.ticks.apply(e,t):e.domain()),d=n??(e.tickFormat?e.tickFormat.apply(e,t):oI),f=Math.max(i,0)+s,b=e.range(),w=+b[0]+l,P=+b[b.length-1]+l,A=(e.bandwidth?ZQ:QQ)(e.copy(),l),M=p.selection?p.selection():p,E=M.selectAll(".domain").data([null]),U=M.selectAll(".tick").data(g,e).order(),F=U.exit(),L=U.enter().append("g").attr("class","tick"),T=U.select("line"),v=U.select("text");E=E.merge(E.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),U=U.merge(L),T=T.merge(L.append("line").attr("stroke","currentColor").attr(c+"2",u*i)),v=v.merge(L.append("text").attr("fill","currentColor").attr(c,u*f).attr("dy",r===H4?"0em":r===Y6?"0.71em":"0.32em")),p!==M&&(E=E.transition(p),U=U.transition(p),T=T.transition(p),v=v.transition(p),F=F.transition(p).attr("opacity",nI).attr("transform",function(I){return isFinite(I=A(I))?h(I+l):this.getAttribute("transform")}),L.attr("opacity",nI).attr("transform",function(I){var D=this.parentNode.__axis;return h((D&&isFinite(D=D(I))?D:A(I))+l)})),F.remove(),E.attr("d",r===CA||r===z4?a?"M"+u*a+","+w+"H"+l+"V"+P+"H"+u*a:"M"+l+","+w+"V"+P:a?"M"+w+","+u*a+"V"+l+"H"+P+"V"+u*a:"M"+w+","+l+"H"+P),U.attr("opacity",1).attr("transform",function(I){return h(A(I)+l)}),T.attr(c+"2",u*i),v.attr(c,u*f).text(d),M.filter(eZ).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",r===z4?"start":r===CA?"end":"middle"),M.each(function(){this.__axis=A})}return m.scale=function(p){return arguments.length?(e=p,m):e},m.ticks=function(){return t=Array.from(arguments),m},m.tickArguments=function(p){return arguments.length?(t=p==null?[]:Array.from(p),m):t.slice()},m.tickValues=function(p){return arguments.length?(o=p==null?null:Array.from(p),m):o&&o.slice()},m.tickFormat=function(p){return arguments.length?(n=p,m):n},m.tickSize=function(p){return arguments.length?(i=a=+p,m):i},m.tickSizeInner=function(p){return arguments.length?(i=+p,m):i},m.tickSizeOuter=function(p){return arguments.length?(a=+p,m):a},m.tickPadding=function(p){return arguments.length?(s=+p,m):s},m.offset=function(p){return arguments.length?(l=+p,m):l},m}function iI(r){return j4(H4,r)}function aI(r){return j4(z4,r)}function sI(r){return j4(Y6,r)}function lI(r){return j4(CA,r)}var tZ={value:()=>{}};function cI(){for(var r=0,e=arguments.length,t={},o;r<e;++r){if(!(o=arguments[r]+"")||o in t||/[\s.]/.test(o))throw new Error("illegal type: "+o);t[o]=[]}return new X4(t)}function X4(r){this._=r}function rZ(r,e){return r.trim().split(/^|\s+/).map(function(t){var o="",n=t.indexOf(".");if(n>=0&&(o=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:o}})}X4.prototype=cI.prototype={constructor:X4,on:function(r,e){var t=this._,o=rZ(r+"",t),n,i=-1,a=o.length;if(arguments.length<2){for(;++i<a;)if((n=(r=o[i]).type)&&(n=oZ(t[n],r.name)))return n;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++i<a;)if(n=(r=o[i]).type)t[n]=uI(t[n],r.name,e);else if(e==null)for(n in t)t[n]=uI(t[n],r.name,null);return this},copy:function(){var r={},e=this._;for(var t in e)r[t]=e[t].slice();return new X4(r)},call:function(r,e){if((n=arguments.length-2)>0)for(var t=new Array(n),o=0,n,i;o<n;++o)t[o]=arguments[o+2];if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(i=this._[r],o=0,n=i.length;o<n;++o)i[o].value.apply(e,t)},apply:function(r,e,t){if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(var o=this._[r],n=0,i=o.length;n<i;++n)o[n].value.apply(e,t)}};function oZ(r,e){for(var t=0,o=r.length,n;t<o;++t)if((n=r[t]).name===e)return n.value}function uI(r,e,t){for(var o=0,n=r.length;o<n;++o)if(r[o].name===e){r[o]=tZ,r=r.slice(0,o).concat(r.slice(o+1));break}return t!=null&&r.push({name:e,value:t}),r}var Xs=cI;var K4="http://www.w3.org/1999/xhtml",kA={svg:"http://www.w3.org/2000/svg",xhtml:K4,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function rc(r){var e=r+="",t=e.indexOf(":");return t>=0&&(e=r.slice(0,t))!=="xmlns"&&(r=r.slice(t+1)),kA.hasOwnProperty(e)?{space:kA[e],local:r}:r}function nZ(r){return function(){var e=this.ownerDocument,t=this.namespaceURI;return t===K4&&e.documentElement.namespaceURI===K4?e.createElement(r):e.createElementNS(t,r)}}function iZ(r){return function(){return this.ownerDocument.createElementNS(r.space,r.local)}}function vp(r){var e=rc(r);return(e.local?iZ:nZ)(e)}function aZ(){}function Np(r){return r==null?aZ:function(){return this.querySelector(r)}}function hI(r){typeof r!="function"&&(r=Np(r));for(var e=this._groups,t=e.length,o=new Array(t),n=0;n<t;++n)for(var i=e[n],a=i.length,s=o[n]=new Array(a),l,u,c=0;c<a;++c)(l=i[c])&&(u=r.call(l,l.__data__,c,i))&&("__data__"in l&&(u.__data__=l.__data__),s[c]=u);return new zo(o,this._parents)}function MA(r){return r==null?[]:Array.isArray(r)?r:Array.from(r)}function sZ(){return[]}function x1(r){return r==null?sZ:function(){return this.querySelectorAll(r)}}function lZ(r){return function(){return MA(r.apply(this,arguments))}}function mI(r){typeof r=="function"?r=lZ(r):r=x1(r);for(var e=this._groups,t=e.length,o=[],n=[],i=0;i<t;++i)for(var a=e[i],s=a.length,l,u=0;u<s;++u)(l=a[u])&&(o.push(r.call(l,l.__data__,u,a)),n.push(l));return new zo(o,n)}function E1(r){return function(){return this.matches(r)}}function Y4(r){return function(e){return e.matches(r)}}var uZ=Array.prototype.find;function cZ(r){return function(){return uZ.call(this.children,r)}}function hZ(){return this.firstElementChild}function pI(r){return this.select(r==null?hZ:cZ(typeof r=="function"?r:Y4(r)))}var mZ=Array.prototype.filter;function pZ(){return Array.from(this.children)}function dZ(r){return function(){return mZ.call(this.children,r)}}function dI(r){return this.selectAll(r==null?pZ:dZ(typeof r=="function"?r:Y4(r)))}function yI(r){typeof r!="function"&&(r=E1(r));for(var e=this._groups,t=e.length,o=new Array(t),n=0;n<t;++n)for(var i=e[n],a=i.length,s=o[n]=[],l,u=0;u<a;++u)(l=i[u])&&r.call(l,l.__data__,u,i)&&s.push(l);return new zo(o,this._parents)}function q4(r){return new Array(r.length)}function fI(){return new zo(this._enter||this._groups.map(q4),this._parents)}function TA(r,e){this.ownerDocument=r.ownerDocument,this.namespaceURI=r.namespaceURI,this._next=null,this._parent=r,this.__data__=e}TA.prototype={constructor:TA,appendChild:function(r){return this._parent.insertBefore(r,this._next)},insertBefore:function(r,e){return this._parent.insertBefore(r,e)},querySelector:function(r){return this._parent.querySelector(r)},querySelectorAll:function(r){return this._parent.querySelectorAll(r)}};function gI(r){return function(){return r}}function yZ(r,e,t,o,n,i){for(var a=0,s,l=e.length,u=i.length;a<u;++a)(s=e[a])?(s.__data__=i[a],o[a]=s):t[a]=new TA(r,i[a]);for(;a<l;++a)(s=e[a])&&(n[a]=s)}function fZ(r,e,t,o,n,i,a){var s,l,u=new Map,c=e.length,h=i.length,m=new Array(c),p;for(s=0;s<c;++s)(l=e[s])&&(m[s]=p=a.call(l,l.__data__,s,e)+"",u.has(p)?n[s]=l:u.set(p,l));for(s=0;s<h;++s)p=a.call(r,i[s],s,i)+"",(l=u.get(p))?(o[s]=l,l.__data__=i[s],u.delete(p)):t[s]=new TA(r,i[s]);for(s=0;s<c;++s)(l=e[s])&&u.get(m[s])===l&&(n[s]=l)}function gZ(r){return r.__data__}function bI(r,e){if(!arguments.length)return Array.from(this,gZ);var t=e?fZ:yZ,o=this._parents,n=this._groups;typeof r!="function"&&(r=gI(r));for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(i),u=0;u<i;++u){var c=o[u],h=n[u],m=h.length,p=bZ(r.call(c,c&&c.__data__,u,o)),g=p.length,d=s[u]=new Array(g),f=a[u]=new Array(g),b=l[u]=new Array(m);t(c,h,d,f,b,p,e);for(var w=0,P=0,A,M;w<g;++w)if(A=d[w]){for(w>=P&&(P=w+1);!(M=f[P])&&++P<g;);A._next=M||null}}return a=new zo(a,o),a._enter=s,a._exit=l,a}function bZ(r){return typeof r=="object"&&"length"in r?r:Array.from(r)}function SI(){return new zo(this._exit||this._groups.map(q4),this._parents)}function AI(r,e,t){var o=this.enter(),n=this,i=this.exit();return typeof r=="function"?(o=r(o),o&&(o=o.selection())):o=o.append(r+""),e!=null&&(n=e(n),n&&(n=n.selection())),t==null?i.remove():t(i),o&&n?o.merge(n).order():n}function wI(r){for(var e=r.selection?r.selection():r,t=this._groups,o=e._groups,n=t.length,i=o.length,a=Math.min(n,i),s=new Array(n),l=0;l<a;++l)for(var u=t[l],c=o[l],h=u.length,m=s[l]=new Array(h),p,g=0;g<h;++g)(p=u[g]||c[g])&&(m[g]=p);for(;l<n;++l)s[l]=t[l];return new zo(s,this._parents)}function PI(){for(var r=this._groups,e=-1,t=r.length;++e<t;)for(var o=r[e],n=o.length-1,i=o[n],a;--n>=0;)(a=o[n])&&(i&&a.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(a,i),i=a);return this}function vI(r){r||(r=SZ);function e(h,m){return h&&m?r(h.__data__,m.__data__):!h-!m}for(var t=this._groups,o=t.length,n=new Array(o),i=0;i<o;++i){for(var a=t[i],s=a.length,l=n[i]=new Array(s),u,c=0;c<s;++c)(u=a[c])&&(l[c]=u);l.sort(e)}return new zo(n,this._parents).order()}function SZ(r,e){return r<e?-1:r>e?1:r>=e?0:NaN}function NI(){var r=arguments[0];return arguments[0]=this,r.apply(null,arguments),this}function xI(){return Array.from(this)}function EI(){for(var r=this._groups,e=0,t=r.length;e<t;++e)for(var o=r[e],n=0,i=o.length;n<i;++n){var a=o[n];if(a)return a}return null}function CI(){let r=0;for(let e of this)++r;return r}function kI(){return!this.node()}function MI(r){for(var e=this._groups,t=0,o=e.length;t<o;++t)for(var n=e[t],i=0,a=n.length,s;i<a;++i)(s=n[i])&&r.call(s,s.__data__,i,n);return this}function AZ(r){return function(){this.removeAttribute(r)}}function wZ(r){return function(){this.removeAttributeNS(r.space,r.local)}}function PZ(r,e){return function(){this.setAttribute(r,e)}}function vZ(r,e){return function(){this.setAttributeNS(r.space,r.local,e)}}function NZ(r,e){return function(){var t=e.apply(this,arguments);t==null?this.removeAttribute(r):this.setAttribute(r,t)}}function xZ(r,e){return function(){var t=e.apply(this,arguments);t==null?this.removeAttributeNS(r.space,r.local):this.setAttributeNS(r.space,r.local,t)}}function TI(r,e){var t=rc(r);if(arguments.length<2){var o=this.node();return t.local?o.getAttributeNS(t.space,t.local):o.getAttribute(t)}return this.each((e==null?t.local?wZ:AZ:typeof e=="function"?t.local?xZ:NZ:t.local?vZ:PZ)(t,e))}function C1(r){return r.ownerDocument&&r.ownerDocument.defaultView||r.document&&r||r.defaultView}function EZ(r){return function(){this.style.removeProperty(r)}}function CZ(r,e,t){return function(){this.style.setProperty(r,e,t)}}function kZ(r,e,t){return function(){var o=e.apply(this,arguments);o==null?this.style.removeProperty(r):this.style.setProperty(r,o,t)}}function WI(r,e,t){return arguments.length>1?this.each((e==null?EZ:typeof e=="function"?kZ:CZ)(r,e,t??"")):_h(this.node(),r)}function _h(r,e){return r.style.getPropertyValue(e)||C1(r).getComputedStyle(r,null).getPropertyValue(e)}function MZ(r){return function(){delete this[r]}}function TZ(r,e){return function(){this[r]=e}}function WZ(r,e){return function(){var t=e.apply(this,arguments);t==null?delete this[r]:this[r]=t}}function LI(r,e){return arguments.length>1?this.each((e==null?MZ:typeof e=="function"?WZ:TZ)(r,e)):this.node()[r]}function II(r){return r.trim().split(/^|\s+/)}function q6(r){return r.classList||new RI(r)}function RI(r){this._node=r,this._names=II(r.getAttribute("class")||"")}RI.prototype={add:function(r){var e=this._names.indexOf(r);e<0&&(this._names.push(r),this._node.setAttribute("class",this._names.join(" ")))},remove:function(r){var e=this._names.indexOf(r);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(r){return this._names.indexOf(r)>=0}};function _I(r,e){for(var t=q6(r),o=-1,n=e.length;++o<n;)t.add(e[o])}function UI(r,e){for(var t=q6(r),o=-1,n=e.length;++o<n;)t.remove(e[o])}function LZ(r){return function(){_I(this,r)}}function IZ(r){return function(){UI(this,r)}}function RZ(r,e){return function(){(e.apply(this,arguments)?_I:UI)(this,r)}}function BI(r,e){var t=II(r+"");if(arguments.length<2){for(var o=q6(this.node()),n=-1,i=t.length;++n<i;)if(!o.contains(t[n]))return!1;return!0}return this.each((typeof e=="function"?RZ:e?LZ:IZ)(t,e))}function _Z(){this.textContent=""}function UZ(r){return function(){this.textContent=r}}function BZ(r){return function(){var e=r.apply(this,arguments);this.textContent=e??""}}function DI(r){return arguments.length?this.each(r==null?_Z:(typeof r=="function"?BZ:UZ)(r)):this.node().textContent}function DZ(){this.innerHTML=""}function OZ(r){return function(){this.innerHTML=r}}function FZ(r){return function(){var e=r.apply(this,arguments);this.innerHTML=e??""}}function OI(r){return arguments.length?this.each(r==null?DZ:(typeof r=="function"?FZ:OZ)(r)):this.node().innerHTML}function GZ(){this.nextSibling&&this.parentNode.appendChild(this)}function FI(){return this.each(GZ)}function VZ(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function GI(){return this.each(VZ)}function VI(r){var e=typeof r=="function"?r:vp(r);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function HZ(){return null}function HI(r,e){var t=typeof r=="function"?r:vp(r),o=e==null?HZ:typeof e=="function"?e:Np(e);return this.select(function(){return this.insertBefore(t.apply(this,arguments),o.apply(this,arguments)||null)})}function zZ(){var r=this.parentNode;r&&r.removeChild(this)}function zI(){return this.each(zZ)}function jZ(){var r=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(r,this.nextSibling):r}function XZ(){var r=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(r,this.nextSibling):r}function jI(r){return this.select(r?XZ:jZ)}function XI(r){return arguments.length?this.property("__data__",r):this.node().__data__}function KZ(r){return function(e){r.call(this,e,this.__data__)}}function YZ(r){return r.trim().split(/^|\s+/).map(function(e){var t="",o=e.indexOf(".");return o>=0&&(t=e.slice(o+1),e=e.slice(0,o)),{type:e,name:t}})}function qZ(r){return function(){var e=this.__on;if(e){for(var t=0,o=-1,n=e.length,i;t<n;++t)i=e[t],(!r.type||i.type===r.type)&&i.name===r.name?this.removeEventListener(i.type,i.listener,i.options):e[++o]=i;++o?e.length=o:delete this.__on}}}function JZ(r,e,t){return function(){var o=this.__on,n,i=KZ(e);if(o){for(var a=0,s=o.length;a<s;++a)if((n=o[a]).type===r.type&&n.name===r.name){this.removeEventListener(n.type,n.listener,n.options),this.addEventListener(n.type,n.listener=i,n.options=t),n.value=e;return}}this.addEventListener(r.type,i,t),n={type:r.type,name:r.name,value:e,listener:i,options:t},o?o.push(n):this.__on=[n]}}function KI(r,e,t){var o=YZ(r+""),n,i=o.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var l=0,u=s.length,c;l<u;++l)for(n=0,c=s[l];n<i;++n)if((a=o[n]).type===c.type&&a.name===c.name)return c.value}return}for(s=e?JZ:qZ,n=0;n<i;++n)this.each(s(o[n],e,t));return this}function YI(r,e,t){var o=C1(r),n=o.CustomEvent;typeof n=="function"?n=new n(e,t):(n=o.document.createEvent("Event"),t?(n.initEvent(e,t.bubbles,t.cancelable),n.detail=t.detail):n.initEvent(e,!1,!1)),r.dispatchEvent(n)}function $Z(r,e){return function(){return YI(this,r,e)}}function QZ(r,e){return function(){return YI(this,r,e.apply(this,arguments))}}function qI(r,e){return this.each((typeof e=="function"?QZ:$Z)(r,e))}function*JI(){for(var r=this._groups,e=0,t=r.length;e<t;++e)for(var o=r[e],n=0,i=o.length,a;n<i;++n)(a=o[n])&&(yield a)}var WA=[null];function zo(r,e){this._groups=r,this._parents=e}function $I(){return new zo([[document.documentElement]],WA)}function ZZ(){return this}zo.prototype=$I.prototype={constructor:zo,select:hI,selectAll:mI,selectChild:pI,selectChildren:dI,filter:yI,data:bI,enter:fI,exit:SI,join:AI,merge:wI,selection:ZZ,order:PI,sort:vI,call:NI,nodes:xI,node:EI,size:CI,empty:kI,each:MI,attr:TI,style:WI,property:LI,classed:BI,text:DI,html:OI,raise:FI,lower:GI,append:VI,insert:HI,remove:zI,clone:jI,datum:XI,on:KI,dispatch:qI,[Symbol.iterator]:JI};var oc=$I;function yn(r){return typeof r=="string"?new zo([[document.querySelector(r)]],[document.documentElement]):new zo([[r]],WA)}function QI(r){return yn(vp(r).call(document.documentElement))}var eee=0;function J4(){return new J6}function J6(){this._="@"+(++eee).toString(36)}J6.prototype=J4.prototype={constructor:J6,get:function(r){for(var e=this._;!(e in r);)if(!(r=r.parentNode))return;return r[e]},set:function(r,e){return r[this._]=e},remove:function(r){return this._ in r&&delete r[this._]},toString:function(){return this._}};function $4(r){let e;for(;e=r.sourceEvent;)r=e;return r}function ai(r,e){if(r=$4(r),e===void 0&&(e=r.currentTarget),e){var t=e.ownerSVGElement||e;if(t.createSVGPoint){var o=t.createSVGPoint();return o.x=r.clientX,o.y=r.clientY,o=o.matrixTransform(e.getScreenCTM().inverse()),[o.x,o.y]}if(e.getBoundingClientRect){var n=e.getBoundingClientRect();return[r.clientX-n.left-e.clientLeft,r.clientY-n.top-e.clientTop]}}return[r.pageX,r.pageY]}function ZI(r,e){return r.target&&(r=$4(r),e===void 0&&(e=r.currentTarget),r=r.touches||[r]),Array.from(r,t=>ai(t,e))}function eR(r){return typeof r=="string"?new zo([document.querySelectorAll(r)],[document.documentElement]):new zo([MA(r)],WA)}var tR={passive:!1},Ny={capture:!0,passive:!1};function Q4(r){r.stopImmediatePropagation()}function xp(r){r.preventDefault(),r.stopImmediatePropagation()}function Ep(r){var e=r.document.documentElement,t=yn(r).on("dragstart.drag",xp,Ny);"onselectstart"in e?t.on("selectstart.drag",xp,Ny):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Cp(r,e){var t=r.document.documentElement,o=yn(r).on("dragstart.drag",null);e&&(o.on("click.drag",xp,Ny),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in t?o.on("selectstart.drag",null):(t.style.MozUserSelect=t.__noselect,delete t.__noselect)}var LA=r=>()=>r;function IA(r,{sourceEvent:e,subject:t,target:o,identifier:n,active:i,x:a,y:s,dx:l,dy:u,dispatch:c}){Object.defineProperties(this,{type:{value:r,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:t,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:n,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:c}})}IA.prototype.on=function(){var r=this._.on.apply(this._,arguments);return r===this._?this:r};function tee(r){return!r.ctrlKey&&!r.button}function ree(){return this.parentNode}function oee(r,e){return e??{x:r.x,y:r.y}}function nee(){return navigator.maxTouchPoints||"ontouchstart"in this}function rR(){var r=tee,e=ree,t=oee,o=nee,n={},i=Xs("start","drag","end"),a=0,s,l,u,c,h=0;function m(A){A.on("mousedown.drag",p).filter(o).on("touchstart.drag",f).on("touchmove.drag",b,tR).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(A,M){if(!(c||!r.call(this,A,M))){var E=P(this,e.call(this,A,M),A,M,"mouse");E&&(yn(A.view).on("mousemove.drag",g,Ny).on("mouseup.drag",d,Ny),Ep(A.view),Q4(A),u=!1,s=A.clientX,l=A.clientY,E("start",A))}}function g(A){if(xp(A),!u){var M=A.clientX-s,E=A.clientY-l;u=M*M+E*E>h}n.mouse("drag",A)}function d(A){yn(A.view).on("mousemove.drag mouseup.drag",null),Cp(A.view,u),xp(A),n.mouse("end",A)}function f(A,M){if(r.call(this,A,M)){var E=A.changedTouches,U=e.call(this,A,M),F=E.length,L,T;for(L=0;L<F;++L)(T=P(this,U,A,M,E[L].identifier,E[L]))&&(Q4(A),T("start",A,E[L]))}}function b(A){var M=A.changedTouches,E=M.length,U,F;for(U=0;U<E;++U)(F=n[M[U].identifier])&&(xp(A),F("drag",A,M[U]))}function w(A){var M=A.changedTouches,E=M.length,U,F;for(c&&clearTimeout(c),c=setTimeout(function(){c=null},500),U=0;U<E;++U)(F=n[M[U].identifier])&&(Q4(A),F("end",A,M[U]))}function P(A,M,E,U,F,L){var T=i.copy(),v=ai(L||E,M),I,D,C;if((C=t.call(A,new IA("beforestart",{sourceEvent:E,target:m,identifier:F,active:a,x:v[0],y:v[1],dx:0,dy:0,dispatch:T}),U))!=null)return I=C.x-v[0]||0,D=C.y-v[1]||0,function O(G,j,Y){var z=v,X;switch(G){case"start":n[F]=O,X=a++;break;case"end":delete n[F],--a;case"drag":v=ai(Y||j,M),X=a;break}T.call(G,A,new IA(G,{sourceEvent:j,subject:C,target:m,identifier:F,active:X,x:v[0]+I,y:v[1]+D,dx:v[0]-z[0],dy:v[1]-z[1],dispatch:T}),U)}}return m.filter=function(A){return arguments.length?(r=typeof A=="function"?A:LA(!!A),m):r},m.container=function(A){return arguments.length?(e=typeof A=="function"?A:LA(A),m):e},m.subject=function(A){return arguments.length?(t=typeof A=="function"?A:LA(A),m):t},m.touchable=function(A){return arguments.length?(o=typeof A=="function"?A:LA(!!A),m):o},m.on=function(){var A=i.on.apply(i,arguments);return A===i?m:A},m.clickDistance=function(A){return arguments.length?(h=(A=+A)*A,m):Math.sqrt(h)},m}function Uh(r,e,t){r.prototype=e.prototype=t,t.constructor=r}function kp(r,e){var t=Object.create(r.prototype);for(var o in e)t[o]=e[o];return t}function ic(){}var Mp=.7,Cy=1/Mp,k1="\\s*([+-]?\\d+)\\s*",RA="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",nc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",iee=/^#([0-9a-f]{3,8})$/,aee=new RegExp(`^rgb\\(${k1},${k1},${k1}\\)$`),see=new RegExp(`^rgb\\(${nc},${nc},${nc}\\)$`),lee=new RegExp(`^rgba\\(${k1},${k1},${k1},${RA}\\)$`),uee=new RegExp(`^rgba\\(${nc},${nc},${nc},${RA}\\)$`),cee=new RegExp(`^hsl\\(${RA},${nc},${nc}\\)$`),hee=new RegExp(`^hsla\\(${RA},${nc},${nc},${RA}\\)$`),oR={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Uh(ic,Ks,{copy(r){return Object.assign(new this.constructor,this,r)},displayable(){return this.rgb().displayable()},hex:nR,formatHex:nR,formatHex8:mee,formatHsl:pee,formatRgb:iR,toString:iR});function nR(){return this.rgb().formatHex()}function mee(){return this.rgb().formatHex8()}function pee(){return hR(this).formatHsl()}function iR(){return this.rgb().formatRgb()}function Ks(r){var e,t;return r=(r+"").trim().toLowerCase(),(e=iee.exec(r))?(t=e[1].length,e=parseInt(e[1],16),t===6?aR(e):t===3?new Rn(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):t===8?Z4(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):t===4?Z4(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=aee.exec(r))?new Rn(e[1],e[2],e[3],1):(e=see.exec(r))?new Rn(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=lee.exec(r))?Z4(e[1],e[2],e[3],e[4]):(e=uee.exec(r))?Z4(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=cee.exec(r))?uR(e[1],e[2]/100,e[3]/100,1):(e=hee.exec(r))?uR(e[1],e[2]/100,e[3]/100,e[4]):oR.hasOwnProperty(r)?aR(oR[r]):r==="transparent"?new Rn(NaN,NaN,NaN,0):null}function aR(r){return new Rn(r>>16&255,r>>8&255,r&255,1)}function Z4(r,e,t,o){return o<=0&&(r=e=t=NaN),new Rn(r,e,t,o)}function _A(r){return r instanceof ic||(r=Ks(r)),r?(r=r.rgb(),new Rn(r.r,r.g,r.b,r.opacity)):new Rn}function Bh(r,e,t,o){return arguments.length===1?_A(r):new Rn(r,e,t,o??1)}function Rn(r,e,t,o){this.r=+r,this.g=+e,this.b=+t,this.opacity=+o}Uh(Rn,Bh,kp(ic,{brighter(r){return r=r==null?Cy:Math.pow(Cy,r),new Rn(this.r*r,this.g*r,this.b*r,this.opacity)},darker(r){return r=r==null?Mp:Math.pow(Mp,r),new Rn(this.r*r,this.g*r,this.b*r,this.opacity)},rgb(){return this},clamp(){return new Rn(Ey(this.r),Ey(this.g),Ey(this.b),tv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:sR,formatHex:sR,formatHex8:dee,formatRgb:lR,toString:lR}));function sR(){return`#${xy(this.r)}${xy(this.g)}${xy(this.b)}`}function dee(){return`#${xy(this.r)}${xy(this.g)}${xy(this.b)}${xy((isNaN(this.opacity)?1:this.opacity)*255)}`}function lR(){let r=tv(this.opacity);return`${r===1?"rgb(":"rgba("}${Ey(this.r)}, ${Ey(this.g)}, ${Ey(this.b)}${r===1?")":`, ${r})`}`}function tv(r){return isNaN(r)?1:Math.max(0,Math.min(1,r))}function Ey(r){return Math.max(0,Math.min(255,Math.round(r)||0))}function xy(r){return r=Ey(r),(r<16?"0":"")+r.toString(16)}function uR(r,e,t,o){return o<=0?r=e=t=NaN:t<=0||t>=1?r=e=NaN:e<=0&&(r=NaN),new Bl(r,e,t,o)}function hR(r){if(r instanceof Bl)return new Bl(r.h,r.s,r.l,r.opacity);if(r instanceof ic||(r=Ks(r)),!r)return new Bl;if(r instanceof Bl)return r;r=r.rgb();var e=r.r/255,t=r.g/255,o=r.b/255,n=Math.min(e,t,o),i=Math.max(e,t,o),a=NaN,s=i-n,l=(i+n)/2;return s?(e===i?a=(t-o)/s+(t<o)*6:t===i?a=(o-e)/s+2:a=(e-t)/s+4,s/=l<.5?i+n:2-i-n,a*=60):s=l>0&&l<1?0:a,new Bl(a,s,l,r.opacity)}function M1(r,e,t,o){return arguments.length===1?hR(r):new Bl(r,e,t,o??1)}function Bl(r,e,t,o){this.h=+r,this.s=+e,this.l=+t,this.opacity=+o}Uh(Bl,M1,kp(ic,{brighter(r){return r=r==null?Cy:Math.pow(Cy,r),new Bl(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?Mp:Math.pow(Mp,r),new Bl(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=this.h%360+(this.h<0)*360,e=isNaN(r)||isNaN(this.s)?0:this.s,t=this.l,o=t+(t<.5?t:1-t)*e,n=2*t-o;return new Rn($6(r>=240?r-240:r+120,n,o),$6(r,n,o),$6(r<120?r+240:r-120,n,o),this.opacity)},clamp(){return new Bl(cR(this.h),ev(this.s),ev(this.l),tv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let r=tv(this.opacity);return`${r===1?"hsl(":"hsla("}${cR(this.h)}, ${ev(this.s)*100}%, ${ev(this.l)*100}%${r===1?")":`, ${r})`}`}}));function cR(r){return r=(r||0)%360,r<0?r+360:r}function ev(r){return Math.max(0,Math.min(1,r||0))}function $6(r,e,t){return(r<60?e+(t-e)*r/60:r<180?t:r<240?e+(t-e)*(240-r)/60:e)*255}var rv=Math.PI/180,ov=180/Math.PI;var nv=18,mR=.96422,pR=1,dR=.82521,yR=4/29,T1=6/29,fR=3*T1*T1,yee=T1*T1*T1;function gR(r){if(r instanceof Dl)return new Dl(r.l,r.a,r.b,r.opacity);if(r instanceof ac)return wR(r);r instanceof Rn||(r=_A(r));var e=t9(r.r),t=t9(r.g),o=t9(r.b),n=Q6((.2225045*e+.7168786*t+.0606169*o)/pR),i,a;return e===t&&t===o?i=a=n:(i=Q6((.4360747*e+.3850649*t+.1430804*o)/mR),a=Q6((.0139322*e+.0971045*t+.7141733*o)/dR)),new Dl(116*n-16,500*(i-n),200*(n-a),r.opacity)}function bR(r,e){return new Dl(r,0,0,e??1)}function ky(r,e,t,o){return arguments.length===1?gR(r):new Dl(r,e,t,o??1)}function Dl(r,e,t,o){this.l=+r,this.a=+e,this.b=+t,this.opacity=+o}Uh(Dl,ky,kp(ic,{brighter(r){return new Dl(this.l+nv*(r??1),this.a,this.b,this.opacity)},darker(r){return new Dl(this.l-nv*(r??1),this.a,this.b,this.opacity)},rgb(){var r=(this.l+16)/116,e=isNaN(this.a)?r:r+this.a/500,t=isNaN(this.b)?r:r-this.b/200;return e=mR*Z6(e),r=pR*Z6(r),t=dR*Z6(t),new Rn(e9(3.1338561*e-1.6168667*r-.4906146*t),e9(-.9787684*e+1.9161415*r+.033454*t),e9(.0719453*e-.2289914*r+1.4052427*t),this.opacity)}}));function Q6(r){return r>yee?Math.pow(r,1/3):r/fR+yR}function Z6(r){return r>T1?r*r*r:fR*(r-yR)}function e9(r){return 255*(r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}function t9(r){return(r/=255)<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function SR(r){if(r instanceof ac)return new ac(r.h,r.c,r.l,r.opacity);if(r instanceof Dl||(r=gR(r)),r.a===0&&r.b===0)return new ac(NaN,0<r.l&&r.l<100?0:NaN,r.l,r.opacity);var e=Math.atan2(r.b,r.a)*ov;return new ac(e<0?e+360:e,Math.sqrt(r.a*r.a+r.b*r.b),r.l,r.opacity)}function AR(r,e,t,o){return arguments.length===1?SR(r):new ac(t,e,r,o??1)}function W1(r,e,t,o){return arguments.length===1?SR(r):new ac(r,e,t,o??1)}function ac(r,e,t,o){this.h=+r,this.c=+e,this.l=+t,this.opacity=+o}function wR(r){if(isNaN(r.h))return new Dl(r.l,0,0,r.opacity);var e=r.h*rv;return new Dl(r.l,Math.cos(e)*r.c,Math.sin(e)*r.c,r.opacity)}Uh(ac,W1,kp(ic,{brighter(r){return new ac(this.h,this.c,this.l+nv*(r??1),this.opacity)},darker(r){return new ac(this.h,this.c,this.l-nv*(r??1),this.opacity)},rgb(){return wR(this).rgb()}}));var xR=-.14861,r9=1.78277,o9=-.29227,iv=-.90649,UA=1.97294,PR=UA*iv,vR=UA*r9,NR=r9*o9-iv*xR;function fee(r){if(r instanceof My)return new My(r.h,r.s,r.l,r.opacity);r instanceof Rn||(r=_A(r));var e=r.r/255,t=r.g/255,o=r.b/255,n=(NR*o+PR*e-vR*t)/(NR+PR-vR),i=o-n,a=(UA*(t-n)-o9*i)/iv,s=Math.sqrt(a*a+i*i)/(UA*n*(1-n)),l=s?Math.atan2(a,i)*ov-120:NaN;return new My(l<0?l+360:l,s,n,r.opacity)}function Bi(r,e,t,o){return arguments.length===1?fee(r):new My(r,e,t,o??1)}function My(r,e,t,o){this.h=+r,this.s=+e,this.l=+t,this.opacity=+o}Uh(My,Bi,kp(ic,{brighter(r){return r=r==null?Cy:Math.pow(Cy,r),new My(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?Mp:Math.pow(Mp,r),new My(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=isNaN(this.h)?0:(this.h+120)*rv,e=+this.l,t=isNaN(this.s)?0:this.s*e*(1-e),o=Math.cos(r),n=Math.sin(r);return new Rn(255*(e+t*(xR*o+r9*n)),255*(e+t*(o9*o+iv*n)),255*(e+t*(UA*o)),this.opacity)}}));function n9(r,e,t,o,n){var i=r*r,a=i*r;return((1-3*r+3*i-a)*e+(4-6*i+3*a)*t+(1+3*r+3*i-3*a)*o+a*n)/6}function av(r){var e=r.length-1;return function(t){var o=t<=0?t=0:t>=1?(t=1,e-1):Math.floor(t*e),n=r[o],i=r[o+1],a=o>0?r[o-1]:2*n-i,s=o<e-1?r[o+2]:2*i-n;return n9((t-o/e)*e,a,n,i,s)}}function sv(r){var e=r.length;return function(t){var o=Math.floor(((t%=1)<0?++t:t)*e),n=r[(o+e-1)%e],i=r[o%e],a=r[(o+1)%e],s=r[(o+2)%e];return n9((t-o/e)*e,n,i,a,s)}}var L1=r=>()=>r;function ER(r,e){return function(t){return r+t*e}}function gee(r,e,t){return r=Math.pow(r,t),e=Math.pow(e,t)-r,t=1/t,function(o){return Math.pow(r+o*e,t)}}function Tp(r,e){var t=e-r;return t?ER(r,t>180||t<-180?t-360*Math.round(t/360):t):L1(isNaN(r)?e:r)}function CR(r){return(r=+r)==1?Jo:function(e,t){return t-e?gee(e,t,r):L1(isNaN(e)?t:e)}}function Jo(r,e){var t=e-r;return t?ER(r,t):L1(isNaN(r)?e:r)}var Wp=(function r(e){var t=CR(e);function o(n,i){var a=t((n=Bh(n)).r,(i=Bh(i)).r),s=t(n.g,i.g),l=t(n.b,i.b),u=Jo(n.opacity,i.opacity);return function(c){return n.r=a(c),n.g=s(c),n.b=l(c),n.opacity=u(c),n+""}}return o.gamma=r,o})(1);function kR(r){return function(e){var t=e.length,o=new Array(t),n=new Array(t),i=new Array(t),a,s;for(a=0;a<t;++a)s=Bh(e[a]),o[a]=s.r||0,n[a]=s.g||0,i[a]=s.b||0;return o=r(o),n=r(n),i=r(i),s.opacity=1,function(l){return s.r=o(l),s.g=n(l),s.b=i(l),s+""}}}var lv=kR(av),MR=kR(sv);function I1(r,e){e||(e=[]);var t=r?Math.min(e.length,r.length):0,o=e.slice(),n;return function(i){for(n=0;n<t;++n)o[n]=r[n]*(1-i)+e[n]*i;return o}}function uv(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function TR(r,e){return(uv(e)?I1:i9)(r,e)}function i9(r,e){var t=e?e.length:0,o=r?Math.min(t,r.length):0,n=new Array(o),i=new Array(t),a;for(a=0;a<o;++a)n[a]=Di(r[a],e[a]);for(;a<t;++a)i[a]=e[a];return function(s){for(a=0;a<o;++a)i[a]=n[a](s);return i}}function cv(r,e){var t=new Date;return r=+r,e=+e,function(o){return t.setTime(r*(1-o)+e*o),t}}function si(r,e){return r=+r,e=+e,function(t){return r*(1-t)+e*t}}function hv(r,e){var t={},o={},n;(r===null||typeof r!="object")&&(r={}),(e===null||typeof e!="object")&&(e={});for(n in e)n in r?t[n]=Di(r[n],e[n]):o[n]=e[n];return function(i){for(n in t)o[n]=t[n](i);return o}}var s9=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,a9=new RegExp(s9.source,"g");function bee(r){return function(){return r}}function See(r){return function(e){return r(e)+""}}function R1(r,e){var t=s9.lastIndex=a9.lastIndex=0,o,n,i,a=-1,s=[],l=[];for(r=r+"",e=e+"";(o=s9.exec(r))&&(n=a9.exec(e));)(i=n.index)>t&&(i=e.slice(t,i),s[a]?s[a]+=i:s[++a]=i),(o=o[0])===(n=n[0])?s[a]?s[a]+=n:s[++a]=n:(s[++a]=null,l.push({i:a,x:si(o,n)})),t=a9.lastIndex;return t<e.length&&(i=e.slice(t),s[a]?s[a]+=i:s[++a]=i),s.length<2?l[0]?See(l[0].x):bee(e):(e=l.length,function(u){for(var c=0,h;c<e;++c)s[(h=l[c]).i]=h.x(u);return s.join("")})}function Di(r,e){var t=typeof e,o;return e==null||t==="boolean"?L1(e):(t==="number"?si:t==="string"?(o=Ks(e))?(e=o,Wp):R1:e instanceof Ks?Wp:e instanceof Date?cv:uv(e)?I1:Array.isArray(e)?i9:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?hv:si)(r,e)}function WR(r){var e=r.length;return function(t){return r[Math.max(0,Math.min(e-1,Math.floor(t*e)))]}}function LR(r,e){var t=Tp(+r,+e);return function(o){var n=t(o);return n-360*Math.floor(n/360)}}function Lp(r,e){return r=+r,e=+e,function(t){return Math.round(r*(1-t)+e*t)}}var IR=180/Math.PI,mv={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function l9(r,e,t,o,n,i){var a,s,l;return(a=Math.sqrt(r*r+e*e))&&(r/=a,e/=a),(l=r*t+e*o)&&(t-=r*l,o-=e*l),(s=Math.sqrt(t*t+o*o))&&(t/=s,o/=s,l/=s),r*o<e*t&&(r=-r,e=-e,l=-l,a=-a),{translateX:n,translateY:i,rotate:Math.atan2(e,r)*IR,skewX:Math.atan(l)*IR,scaleX:a,scaleY:s}}var pv;function RR(r){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(r+"");return e.isIdentity?mv:l9(e.a,e.b,e.c,e.d,e.e,e.f)}function _R(r){return r==null?mv:(pv||(pv=document.createElementNS("http://www.w3.org/2000/svg","g")),pv.setAttribute("transform",r),(r=pv.transform.baseVal.consolidate())?(r=r.matrix,l9(r.a,r.b,r.c,r.d,r.e,r.f)):mv)}function UR(r,e,t,o){function n(u){return u.length?u.pop()+" ":""}function i(u,c,h,m,p,g){if(u!==h||c!==m){var d=p.push("translate(",null,e,null,t);g.push({i:d-4,x:si(u,h)},{i:d-2,x:si(c,m)})}else(h||m)&&p.push("translate("+h+e+m+t)}function a(u,c,h,m){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),m.push({i:h.push(n(h)+"rotate(",null,o)-2,x:si(u,c)})):c&&h.push(n(h)+"rotate("+c+o)}function s(u,c,h,m){u!==c?m.push({i:h.push(n(h)+"skewX(",null,o)-2,x:si(u,c)}):c&&h.push(n(h)+"skewX("+c+o)}function l(u,c,h,m,p,g){if(u!==h||c!==m){var d=p.push(n(p)+"scale(",null,",",null,")");g.push({i:d-4,x:si(u,h)},{i:d-2,x:si(c,m)})}else(h!==1||m!==1)&&p.push(n(p)+"scale("+h+","+m+")")}return function(u,c){var h=[],m=[];return u=r(u),c=r(c),i(u.translateX,u.translateY,c.translateX,c.translateY,h,m),a(u.rotate,c.rotate,h,m),s(u.skewX,c.skewX,h,m),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,h,m),u=c=null,function(p){for(var g=-1,d=m.length,f;++g<d;)h[(f=m[g]).i]=f.x(p);return h.join("")}}}var dv=UR(RR,"px, ","px)","deg)"),yv=UR(_R,", ",")",")");var Aee=1e-12;function BR(r){return((r=Math.exp(r))+1/r)/2}function wee(r){return((r=Math.exp(r))-1/r)/2}function Pee(r){return((r=Math.exp(2*r))-1)/(r+1)}var fv=(function r(e,t,o){function n(i,a){var s=i[0],l=i[1],u=i[2],c=a[0],h=a[1],m=a[2],p=c-s,g=h-l,d=p*p+g*g,f,b;if(d<Aee)b=Math.log(m/u)/e,f=function(U){return[s+U*p,l+U*g,u*Math.exp(e*U*b)]};else{var w=Math.sqrt(d),P=(m*m-u*u+o*d)/(2*u*t*w),A=(m*m-u*u-o*d)/(2*m*t*w),M=Math.log(Math.sqrt(P*P+1)-P),E=Math.log(Math.sqrt(A*A+1)-A);b=(E-M)/e,f=function(U){var F=U*b,L=BR(M),T=u/(t*w)*(L*Pee(e*F+M)-wee(M));return[s+T*p,l+T*g,u*L/BR(e*F+M)]}}return f.duration=b*1e3*e/Math.SQRT2,f}return n.rho=function(i){var a=Math.max(.001,+i),s=a*a,l=s*s;return r(a,s,l)},n})(Math.SQRT2,2,4);function DR(r){return function(e,t){var o=r((e=M1(e)).h,(t=M1(t)).h),n=Jo(e.s,t.s),i=Jo(e.l,t.l),a=Jo(e.opacity,t.opacity);return function(s){return e.h=o(s),e.s=n(s),e.l=i(s),e.opacity=a(s),e+""}}}var OR=DR(Tp),FR=DR(Jo);function u9(r,e){var t=Jo((r=ky(r)).l,(e=ky(e)).l),o=Jo(r.a,e.a),n=Jo(r.b,e.b),i=Jo(r.opacity,e.opacity);return function(a){return r.l=t(a),r.a=o(a),r.b=n(a),r.opacity=i(a),r+""}}function GR(r){return function(e,t){var o=r((e=W1(e)).h,(t=W1(t)).h),n=Jo(e.c,t.c),i=Jo(e.l,t.l),a=Jo(e.opacity,t.opacity);return function(s){return e.h=o(s),e.c=n(s),e.l=i(s),e.opacity=a(s),e+""}}}var VR=GR(Tp),HR=GR(Jo);function zR(r){return(function e(t){t=+t;function o(n,i){var a=r((n=Bi(n)).h,(i=Bi(i)).h),s=Jo(n.s,i.s),l=Jo(n.l,i.l),u=Jo(n.opacity,i.opacity);return function(c){return n.h=a(c),n.s=s(c),n.l=l(Math.pow(c,t)),n.opacity=u(c),n+""}}return o.gamma=e,o})(1)}var jR=zR(Tp),Ty=zR(Jo);function BA(r,e){e===void 0&&(e=r,r=Di);for(var t=0,o=e.length-1,n=e[0],i=new Array(o<0?0:o);t<o;)i[t]=r(n,n=e[++t]);return function(a){var s=Math.max(0,Math.min(o-1,Math.floor(a*=o)));return i[s](a-s)}}function XR(r,e){for(var t=new Array(e),o=0;o<e;++o)t[o]=r(o/(e-1));return t}var _1=0,OA=0,DA=0,YR=1e3,gv,FA,bv=0,Wy=0,Sv=0,GA=typeof performance=="object"&&performance.now?performance:Date,qR=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(r){setTimeout(r,17)};function Ip(){return Wy||(qR(vee),Wy=GA.now()+Sv)}function vee(){Wy=0}function Ly(){this._call=this._time=this._next=null}Ly.prototype=Iy.prototype={constructor:Ly,restart:function(r,e,t){if(typeof r!="function")throw new TypeError("callback is not a function");t=(t==null?Ip():+t)+(e==null?0:+e),!this._next&&FA!==this&&(FA?FA._next=this:gv=this,FA=this),this._call=r,this._time=t,c9()},stop:function(){this._call&&(this._call=null,this._time=1/0,c9())}};function Iy(r,e,t){var o=new Ly;return o.restart(r,e,t),o}function h9(){Ip(),++_1;for(var r=gv,e;r;)(e=Wy-r._time)>=0&&r._call.call(void 0,e),r=r._next;--_1}function KR(){Wy=(bv=GA.now())+Sv,_1=OA=0;try{h9()}finally{_1=0,xee(),Wy=0}}function Nee(){var r=GA.now(),e=r-bv;e>YR&&(Sv-=e,bv=r)}function xee(){for(var r,e=gv,t,o=1/0;e;)e._call?(o>e._time&&(o=e._time),r=e,e=e._next):(t=e._next,e._next=null,e=r?r._next=t:gv=t);FA=r,c9(o)}function c9(r){if(!_1){OA&&(OA=clearTimeout(OA));var e=r-Wy;e>24?(r<1/0&&(OA=setTimeout(KR,r-GA.now()-Sv)),DA&&(DA=clearInterval(DA))):(DA||(bv=GA.now(),DA=setInterval(Nee,YR)),_1=1,qR(KR))}}function VA(r,e,t){var o=new Ly;return e=e==null?0:+e,o.restart(n=>{o.stop(),r(n+e)},e,t),o}function JR(r,e,t){var o=new Ly,n=e;return e==null?(o.restart(r,e,t),o):(o._restart=o.restart,o.restart=function(i,a,s){a=+a,s=s==null?Ip():+s,o._restart(function l(u){u+=n,o._restart(l,n+=a,s),i(u)},a,s)},o.restart(r,e,t),o)}var Eee=Xs("start","end","cancel","interrupt"),Cee=[],QR=0,wv=1,Pv=2,Av=3,$R=4,vv=5,HA=6;function Rp(r,e,t,o,n,i){var a=r.__transition;if(!a)r.__transition={};else if(t in a)return;kee(r,t,{name:e,index:o,group:n,on:Eee,tween:Cee,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:QR})}function zA(r,e){var t=jn(r,e);if(t.state>QR)throw new Error("too late; already scheduled");return t}function Ei(r,e){var t=jn(r,e);if(t.state>Av)throw new Error("too late; already running");return t}function jn(r,e){var t=r.__transition;if(!t||!(t=t[e]))throw new Error("transition not found");return t}function kee(r,e,t){var o=r.__transition,n;o[e]=t,t.timer=Iy(i,0,t.time);function i(u){t.state=wv,t.timer.restart(a,t.delay,t.time),t.delay<=u&&a(u-t.delay)}function a(u){var c,h,m,p;if(t.state!==wv)return l();for(c in o)if(p=o[c],p.name===t.name){if(p.state===Av)return VA(a);p.state===$R?(p.state=HA,p.timer.stop(),p.on.call("interrupt",r,r.__data__,p.index,p.group),delete o[c]):+c<e&&(p.state=HA,p.timer.stop(),p.on.call("cancel",r,r.__data__,p.index,p.group),delete o[c])}if(VA(function(){t.state===Av&&(t.state=$R,t.timer.restart(s,t.delay,t.time),s(u))}),t.state=Pv,t.on.call("start",r,r.__data__,t.index,t.group),t.state===Pv){for(t.state=Av,n=new Array(m=t.tween.length),c=0,h=-1;c<m;++c)(p=t.tween[c].value.call(r,r.__data__,t.index,t.group))&&(n[++h]=p);n.length=h+1}}function s(u){for(var c=u<t.duration?t.ease.call(null,u/t.duration):(t.timer.restart(l),t.state=vv,1),h=-1,m=n.length;++h<m;)n[h].call(r,c);t.state===vv&&(t.on.call("end",r,r.__data__,t.index,t.group),l())}function l(){t.state=HA,t.timer.stop(),delete o[e];for(var u in o)return;delete r.__transition}}function Ol(r,e){var t=r.__transition,o,n,i=!0,a;if(t){e=e==null?null:e+"";for(a in t){if((o=t[a]).name!==e){i=!1;continue}n=o.state>Pv&&o.state<vv,o.state=HA,o.timer.stop(),o.on.call(n?"interrupt":"cancel",r,r.__data__,o.index,o.group),delete t[a]}i&&delete r.__transition}}function ZR(r){return this.each(function(){Ol(this,r)})}function Mee(r,e){var t,o;return function(){var n=Ei(this,r),i=n.tween;if(i!==t){o=t=i;for(var a=0,s=o.length;a<s;++a)if(o[a].name===e){o=o.slice(),o.splice(a,1);break}}n.tween=o}}function Tee(r,e,t){var o,n;if(typeof t!="function")throw new Error;return function(){var i=Ei(this,r),a=i.tween;if(a!==o){n=(o=a).slice();for(var s={name:e,value:t},l=0,u=n.length;l<u;++l)if(n[l].name===e){n[l]=s;break}l===u&&n.push(s)}i.tween=n}}function e_(r,e){var t=this._id;if(r+="",arguments.length<2){for(var o=jn(this.node(),t).tween,n=0,i=o.length,a;n<i;++n)if((a=o[n]).name===r)return a.value;return null}return this.each((e==null?Mee:Tee)(t,r,e))}function U1(r,e,t){var o=r._id;return r.each(function(){var n=Ei(this,o);(n.value||(n.value={}))[e]=t.apply(this,arguments)}),function(n){return jn(n,o).value[e]}}function Nv(r,e){var t;return(typeof e=="number"?si:e instanceof Ks?Wp:(t=Ks(e))?(e=t,Wp):R1)(r,e)}function Wee(r){return function(){this.removeAttribute(r)}}function Lee(r){return function(){this.removeAttributeNS(r.space,r.local)}}function Iee(r,e,t){var o,n=t+"",i;return function(){var a=this.getAttribute(r);return a===n?null:a===o?i:i=e(o=a,t)}}function Ree(r,e,t){var o,n=t+"",i;return function(){var a=this.getAttributeNS(r.space,r.local);return a===n?null:a===o?i:i=e(o=a,t)}}function _ee(r,e,t){var o,n,i;return function(){var a,s=t(this),l;return s==null?void this.removeAttribute(r):(a=this.getAttribute(r),l=s+"",a===l?null:a===o&&l===n?i:(n=l,i=e(o=a,s)))}}function Uee(r,e,t){var o,n,i;return function(){var a,s=t(this),l;return s==null?void this.removeAttributeNS(r.space,r.local):(a=this.getAttributeNS(r.space,r.local),l=s+"",a===l?null:a===o&&l===n?i:(n=l,i=e(o=a,s)))}}function t_(r,e){var t=rc(r),o=t==="transform"?yv:Nv;return this.attrTween(r,typeof e=="function"?(t.local?Uee:_ee)(t,o,U1(this,"attr."+r,e)):e==null?(t.local?Lee:Wee)(t):(t.local?Ree:Iee)(t,o,e))}function Bee(r,e){return function(t){this.setAttribute(r,e.call(this,t))}}function Dee(r,e){return function(t){this.setAttributeNS(r.space,r.local,e.call(this,t))}}function Oee(r,e){var t,o;function n(){var i=e.apply(this,arguments);return i!==o&&(t=(o=i)&&Dee(r,i)),t}return n._value=e,n}function Fee(r,e){var t,o;function n(){var i=e.apply(this,arguments);return i!==o&&(t=(o=i)&&Bee(r,i)),t}return n._value=e,n}function r_(r,e){var t="attr."+r;if(arguments.length<2)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;var o=rc(r);return this.tween(t,(o.local?Oee:Fee)(o,e))}function Gee(r,e){return function(){zA(this,r).delay=+e.apply(this,arguments)}}function Vee(r,e){return e=+e,function(){zA(this,r).delay=e}}function o_(r){var e=this._id;return arguments.length?this.each((typeof r=="function"?Gee:Vee)(e,r)):jn(this.node(),e).delay}function Hee(r,e){return function(){Ei(this,r).duration=+e.apply(this,arguments)}}function zee(r,e){return e=+e,function(){Ei(this,r).duration=e}}function n_(r){var e=this._id;return arguments.length?this.each((typeof r=="function"?Hee:zee)(e,r)):jn(this.node(),e).duration}function jee(r,e){if(typeof e!="function")throw new Error;return function(){Ei(this,r).ease=e}}function i_(r){var e=this._id;return arguments.length?this.each(jee(e,r)):jn(this.node(),e).ease}function Xee(r,e){return function(){var t=e.apply(this,arguments);if(typeof t!="function")throw new Error;Ei(this,r).ease=t}}function a_(r){if(typeof r!="function")throw new Error;return this.each(Xee(this._id,r))}function s_(r){typeof r!="function"&&(r=E1(r));for(var e=this._groups,t=e.length,o=new Array(t),n=0;n<t;++n)for(var i=e[n],a=i.length,s=o[n]=[],l,u=0;u<a;++u)(l=i[u])&&r.call(l,l.__data__,u,i)&&s.push(l);return new Ci(o,this._parents,this._name,this._id)}function l_(r){if(r._id!==this._id)throw new Error;for(var e=this._groups,t=r._groups,o=e.length,n=t.length,i=Math.min(o,n),a=new Array(o),s=0;s<i;++s)for(var l=e[s],u=t[s],c=l.length,h=a[s]=new Array(c),m,p=0;p<c;++p)(m=l[p]||u[p])&&(h[p]=m);for(;s<o;++s)a[s]=e[s];return new Ci(a,this._parents,this._name,this._id)}function Kee(r){return(r+"").trim().split(/^|\s+/).every(function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||e==="start"})}function Yee(r,e,t){var o,n,i=Kee(e)?zA:Ei;return function(){var a=i(this,r),s=a.on;s!==o&&(n=(o=s).copy()).on(e,t),a.on=n}}function u_(r,e){var t=this._id;return arguments.length<2?jn(this.node(),t).on.on(r):this.each(Yee(t,r,e))}function qee(r){return function(){var e=this.parentNode;for(var t in this.__transition)if(+t!==r)return;e&&e.removeChild(this)}}function c_(){return this.on("end.remove",qee(this._id))}function h_(r){var e=this._name,t=this._id;typeof r!="function"&&(r=Np(r));for(var o=this._groups,n=o.length,i=new Array(n),a=0;a<n;++a)for(var s=o[a],l=s.length,u=i[a]=new Array(l),c,h,m=0;m<l;++m)(c=s[m])&&(h=r.call(c,c.__data__,m,s))&&("__data__"in c&&(h.__data__=c.__data__),u[m]=h,Rp(u[m],e,t,m,u,jn(c,t)));return new Ci(i,this._parents,e,t)}function m_(r){var e=this._name,t=this._id;typeof r!="function"&&(r=x1(r));for(var o=this._groups,n=o.length,i=[],a=[],s=0;s<n;++s)for(var l=o[s],u=l.length,c,h=0;h<u;++h)if(c=l[h]){for(var m=r.call(c,c.__data__,h,l),p,g=jn(c,t),d=0,f=m.length;d<f;++d)(p=m[d])&&Rp(p,e,t,d,m,g);i.push(m),a.push(c)}return new Ci(i,a,e,t)}var Jee=oc.prototype.constructor;function p_(){return new Jee(this._groups,this._parents)}function $ee(r,e){var t,o,n;return function(){var i=_h(this,r),a=(this.style.removeProperty(r),_h(this,r));return i===a?null:i===t&&a===o?n:n=e(t=i,o=a)}}function d_(r){return function(){this.style.removeProperty(r)}}function Qee(r,e,t){var o,n=t+"",i;return function(){var a=_h(this,r);return a===n?null:a===o?i:i=e(o=a,t)}}function Zee(r,e,t){var o,n,i;return function(){var a=_h(this,r),s=t(this),l=s+"";return s==null&&(l=s=(this.style.removeProperty(r),_h(this,r))),a===l?null:a===o&&l===n?i:(n=l,i=e(o=a,s))}}function ete(r,e){var t,o,n,i="style."+e,a="end."+i,s;return function(){var l=Ei(this,r),u=l.on,c=l.value[i]==null?s||(s=d_(e)):void 0;(u!==t||n!==c)&&(o=(t=u).copy()).on(a,n=c),l.on=o}}function y_(r,e,t){var o=(r+="")=="transform"?dv:Nv;return e==null?this.styleTween(r,$ee(r,o)).on("end.style."+r,d_(r)):typeof e=="function"?this.styleTween(r,Zee(r,o,U1(this,"style."+r,e))).each(ete(this._id,r)):this.styleTween(r,Qee(r,o,e),t).on("end.style."+r,null)}function tte(r,e,t){return function(o){this.style.setProperty(r,e.call(this,o),t)}}function rte(r,e,t){var o,n;function i(){var a=e.apply(this,arguments);return a!==n&&(o=(n=a)&&tte(r,a,t)),o}return i._value=e,i}function f_(r,e,t){var o="style."+(r+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(e==null)return this.tween(o,null);if(typeof e!="function")throw new Error;return this.tween(o,rte(r,e,t??""))}function ote(r){return function(){this.textContent=r}}function nte(r){return function(){var e=r(this);this.textContent=e??""}}function g_(r){return this.tween("text",typeof r=="function"?nte(U1(this,"text",r)):ote(r==null?"":r+""))}function ite(r){return function(e){this.textContent=r.call(this,e)}}function ate(r){var e,t;function o(){var n=r.apply(this,arguments);return n!==t&&(e=(t=n)&&ite(n)),e}return o._value=r,o}function b_(r){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(r==null)return this.tween(e,null);if(typeof r!="function")throw new Error;return this.tween(e,ate(r))}function S_(){for(var r=this._name,e=this._id,t=xv(),o=this._groups,n=o.length,i=0;i<n;++i)for(var a=o[i],s=a.length,l,u=0;u<s;++u)if(l=a[u]){var c=jn(l,e);Rp(l,r,t,u,a,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new Ci(o,this._parents,r,t)}function A_(){var r,e,t=this,o=t._id,n=t.size();return new Promise(function(i,a){var s={value:a},l={value:function(){--n===0&&i()}};t.each(function(){var u=Ei(this,o),c=u.on;c!==r&&(e=(r=c).copy(),e._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),u.on=e}),n===0&&i()})}var ste=0;function Ci(r,e,t,o){this._groups=r,this._parents=e,this._name=t,this._id=o}function Ev(r){return oc().transition(r)}function xv(){return++ste}var Dh=oc.prototype;Ci.prototype=Ev.prototype={constructor:Ci,select:h_,selectAll:m_,selectChild:Dh.selectChild,selectChildren:Dh.selectChildren,filter:s_,merge:l_,selection:p_,transition:S_,call:Dh.call,nodes:Dh.nodes,node:Dh.node,size:Dh.size,empty:Dh.empty,each:Dh.each,on:u_,attr:t_,attrTween:r_,style:y_,styleTween:f_,text:g_,textTween:b_,remove:c_,tween:e_,delay:o_,duration:n_,ease:i_,easeVarying:a_,end:A_,[Symbol.iterator]:Dh[Symbol.iterator]};var w_=r=>+r;function P_(r){return r*r}function v_(r){return r*(2-r)}function m9(r){return((r*=2)<=1?r*r:--r*(2-r)+1)/2}function N_(r){return r*r*r}function x_(r){return--r*r*r+1}function jA(r){return((r*=2)<=1?r*r*r:(r-=2)*r*r+2)/2}var p9=3,E_=(function r(e){e=+e;function t(o){return Math.pow(o,e)}return t.exponent=r,t})(p9),C_=(function r(e){e=+e;function t(o){return 1-Math.pow(1-o,e)}return t.exponent=r,t})(p9),d9=(function r(e){e=+e;function t(o){return((o*=2)<=1?Math.pow(o,e):2-Math.pow(2-o,e))/2}return t.exponent=r,t})(p9);var k_=Math.PI,M_=k_/2;function T_(r){return+r==1?1:1-Math.cos(r*M_)}function W_(r){return Math.sin(r*M_)}function y9(r){return(1-Math.cos(k_*r))/2}function sc(r){return(Math.pow(2,-10*r)-.0009765625)*1.0009775171065494}function L_(r){return sc(1-+r)}function I_(r){return 1-sc(r)}function f9(r){return((r*=2)<=1?sc(1-r):2-sc(r-1))/2}function R_(r){return 1-Math.sqrt(1-r*r)}function __(r){return Math.sqrt(1- --r*r)}function g9(r){return((r*=2)<=1?1-Math.sqrt(1-r*r):Math.sqrt(1-(r-=2)*r)+1)/2}var b9=.36363636363636365,lte=6/11,ute=8/11,cte=3/4,hte=9/11,mte=10/11,pte=15/16,dte=21/22,yte=63/64,Cv=1/b9/b9;function U_(r){return 1-B1(1-r)}function B1(r){return(r=+r)<b9?Cv*r*r:r<ute?Cv*(r-=lte)*r+cte:r<mte?Cv*(r-=hte)*r+pte:Cv*(r-=dte)*r+yte}function B_(r){return((r*=2)<=1?1-B1(1-r):B1(r-1)+1)/2}var S9=1.70158,D_=(function r(e){e=+e;function t(o){return(o=+o)*o*(e*(o-1)+o)}return t.overshoot=r,t})(S9),O_=(function r(e){e=+e;function t(o){return--o*o*((o+1)*e+o)+1}return t.overshoot=r,t})(S9),A9=(function r(e){e=+e;function t(o){return((o*=2)<1?o*o*((e+1)*o-e):(o-=2)*o*((e+1)*o+e)+2)/2}return t.overshoot=r,t})(S9);var D1=2*Math.PI,w9=1,P9=.3,F_=(function r(e,t){var o=Math.asin(1/(e=Math.max(1,e)))*(t/=D1);function n(i){return e*sc(- --i)*Math.sin((o-i)/t)}return n.amplitude=function(i){return r(i,t*D1)},n.period=function(i){return r(e,i)},n})(w9,P9),v9=(function r(e,t){var o=Math.asin(1/(e=Math.max(1,e)))*(t/=D1);function n(i){return 1-e*sc(i=+i)*Math.sin((i+o)/t)}return n.amplitude=function(i){return r(i,t*D1)},n.period=function(i){return r(e,i)},n})(w9,P9),G_=(function r(e,t){var o=Math.asin(1/(e=Math.max(1,e)))*(t/=D1);function n(i){return((i=i*2-1)<0?e*sc(-i)*Math.sin((o-i)/t):2-e*sc(i)*Math.sin((o+i)/t))/2}return n.amplitude=function(i){return r(i,t*D1)},n.period=function(i){return r(e,i)},n})(w9,P9);var fte={time:null,delay:0,duration:250,ease:jA};function gte(r,e){for(var t;!(t=r.__transition)||!(t=t[e]);)if(!(r=r.parentNode))throw new Error(`transition ${e} not found`);return t}function V_(r){var e,t;r instanceof Ci?(e=r._id,r=r._name):(e=xv(),(t=fte).time=Ip(),r=r==null?null:r+"");for(var o=this._groups,n=o.length,i=0;i<n;++i)for(var a=o[i],s=a.length,l,u=0;u<s;++u)(l=a[u])&&Rp(l,r,e,u,a,t||gte(l,e));return new Ci(o,this._parents,r,e)}oc.prototype.interrupt=ZR;oc.prototype.transition=V_;var bte=[null];function H_(r,e){var t=r.__transition,o,n;if(t){e=e==null?null:e+"";for(n in t)if((o=t[n]).state>wv&&o.name===e)return new Ci([[r]],bte,e,+n)}return null}var kv=r=>()=>r;function N9(r,{sourceEvent:e,target:t,selection:o,mode:n,dispatch:i}){Object.defineProperties(this,{type:{value:r,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:t,enumerable:!0,configurable:!0},selection:{value:o,enumerable:!0,configurable:!0},mode:{value:n,enumerable:!0,configurable:!0},_:{value:i}})}function z_(r){r.stopImmediatePropagation()}function Mv(r){r.preventDefault(),r.stopImmediatePropagation()}var j_={name:"drag"},x9={name:"space"},O1={name:"handle"},F1={name:"center"},{abs:X_,max:Oi,min:Fi}=Math;function K_(r){return[+r[0],+r[1]]}function C9(r){return[K_(r[0]),K_(r[1])]}var Tv={name:"x",handles:["w","e"].map(XA),input:function(r,e){return r==null?null:[[+r[0],e[0][1]],[+r[1],e[1][1]]]},output:function(r){return r&&[r[0][0],r[1][0]]}},Wv={name:"y",handles:["n","s"].map(XA),input:function(r,e){return r==null?null:[[e[0][0],+r[0]],[e[1][0],+r[1]]]},output:function(r){return r&&[r[0][1],r[1][1]]}},Ste={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(XA),input:function(r){return r==null?null:C9(r)},output:function(r){return r}},Oh={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Y_={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},q_={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Ate={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},wte={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function XA(r){return{type:r}}function Pte(r){return!r.ctrlKey&&!r.button}function vte(){var r=this.ownerSVGElement||this;return r.hasAttribute("viewBox")?(r=r.viewBox.baseVal,[[r.x,r.y],[r.x+r.width,r.y+r.height]]):[[0,0],[r.width.baseVal.value,r.height.baseVal.value]]}function Nte(){return navigator.maxTouchPoints||"ontouchstart"in this}function E9(r){for(;!r.__brush;)if(!(r=r.parentNode))return;return r.__brush}function xte(r){return r[0][0]===r[1][0]||r[0][1]===r[1][1]}function J_(r){var e=r.__brush;return e?e.dim.output(e.selection):null}function $_(){return k9(Tv)}function Q_(){return k9(Wv)}function Z_(){return k9(Ste)}function k9(r){var e=vte,t=Pte,o=Nte,n=!0,i=Xs("start","brush","end"),a=6,s;function l(f){var b=f.property("__brush",d).selectAll(".overlay").data([XA("overlay")]);b.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Oh.overlay).merge(b).each(function(){var P=E9(this).extent;yn(this).attr("x",P[0][0]).attr("y",P[0][1]).attr("width",P[1][0]-P[0][0]).attr("height",P[1][1]-P[0][1])}),f.selectAll(".selection").data([XA("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Oh.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var w=f.selectAll(".handle").data(r.handles,function(P){return P.type});w.exit().remove(),w.enter().append("rect").attr("class",function(P){return"handle handle--"+P.type}).attr("cursor",function(P){return Oh[P.type]}),f.each(u).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",m).filter(o).on("touchstart.brush",m).on("touchmove.brush",p).on("touchend.brush touchcancel.brush",g).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}l.move=function(f,b,w){f.tween?f.on("start.brush",function(P){c(this,arguments).beforestart().start(P)}).on("interrupt.brush end.brush",function(P){c(this,arguments).end(P)}).tween("brush",function(){var P=this,A=P.__brush,M=c(P,arguments),E=A.selection,U=r.input(typeof b=="function"?b.apply(this,arguments):b,A.extent),F=Di(E,U);function L(T){A.selection=T===1&&U===null?null:F(T),u.call(P),M.brush()}return E!==null&&U!==null?L:L(1)}):f.each(function(){var P=this,A=arguments,M=P.__brush,E=r.input(typeof b=="function"?b.apply(P,A):b,M.extent),U=c(P,A).beforestart();Ol(P),M.selection=E===null?null:E,u.call(P),U.start(w).brush(w).end(w)})},l.clear=function(f,b){l.move(f,null,b)};function u(){var f=yn(this),b=E9(this).selection;b?(f.selectAll(".selection").style("display",null).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1]),f.selectAll(".handle").style("display",null).attr("x",function(w){return w.type[w.type.length-1]==="e"?b[1][0]-a/2:b[0][0]-a/2}).attr("y",function(w){return w.type[0]==="s"?b[1][1]-a/2:b[0][1]-a/2}).attr("width",function(w){return w.type==="n"||w.type==="s"?b[1][0]-b[0][0]+a:a}).attr("height",function(w){return w.type==="e"||w.type==="w"?b[1][1]-b[0][1]+a:a})):f.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function c(f,b,w){var P=f.__brush.emitter;return P&&(!w||!P.clean)?P:new h(f,b,w)}function h(f,b,w){this.that=f,this.args=b,this.state=f.__brush,this.active=0,this.clean=w}h.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(f,b){return this.starting?(this.starting=!1,this.emit("start",f,b)):this.emit("brush",f),this},brush:function(f,b){return this.emit("brush",f,b),this},end:function(f,b){return--this.active===0&&(delete this.state.emitter,this.emit("end",f,b)),this},emit:function(f,b,w){var P=yn(this.that).datum();i.call(f,this.that,new N9(f,{sourceEvent:b,target:l,selection:r.output(this.state.selection),mode:w,dispatch:i}),P)}};function m(f){if(s&&!f.touches||!t.apply(this,arguments))return;var b=this,w=f.target.__data__.type,P=(n&&f.metaKey?w="overlay":w)==="selection"?j_:n&&f.altKey?F1:O1,A=r===Wv?null:Ate[w],M=r===Tv?null:wte[w],E=E9(b),U=E.extent,F=E.selection,L=U[0][0],T,v,I=U[0][1],D,C,O=U[1][0],G,j,Y=U[1][1],z,X,ue=0,Q=0,ye,J=A&&M&&n&&f.shiftKey,ve,Me,re=Array.from(f.touches||[f],oe=>{let _e=oe.identifier;return oe=ai(oe,b),oe.point0=oe.slice(),oe.identifier=_e,oe});Ol(b);var pe=c(b,arguments,!0).beforestart();if(w==="overlay"){F&&(ye=!0);let oe=[re[0],re[1]||re[0]];E.selection=F=[[T=r===Wv?L:Fi(oe[0][0],oe[1][0]),D=r===Tv?I:Fi(oe[0][1],oe[1][1])],[G=r===Wv?O:Oi(oe[0][0],oe[1][0]),z=r===Tv?Y:Oi(oe[0][1],oe[1][1])]],re.length>1&&De(f)}else T=F[0][0],D=F[0][1],G=F[1][0],z=F[1][1];v=T,C=D,j=G,X=z;var ae=yn(b).attr("pointer-events","none"),ne=ae.selectAll(".overlay").attr("cursor",Oh[w]);if(f.touches)pe.moved=ce,pe.ended=Je;else{var Ce=yn(f.view).on("mousemove.brush",ce,!0).on("mouseup.brush",Je,!0);n&&Ce.on("keydown.brush",Qe,!0).on("keyup.brush",tt,!0),Ep(f.view)}u.call(b),pe.start(f,P.name);function ce(oe){for(let _e of oe.changedTouches||[oe])for(let Fe of re)Fe.identifier===_e.identifier&&(Fe.cur=ai(_e,b));if(J&&!ve&&!Me&&re.length===1){let _e=re[0];X_(_e.cur[0]-_e[0])>X_(_e.cur[1]-_e[1])?Me=!0:ve=!0}for(let _e of re)_e.cur&&(_e[0]=_e.cur[0],_e[1]=_e.cur[1]);ye=!0,Mv(oe),De(oe)}function De(oe){let _e=re[0],Fe=_e.point0;var ze;switch(ue=_e[0]-Fe[0],Q=_e[1]-Fe[1],P){case x9:case j_:{A&&(ue=Oi(L-T,Fi(O-G,ue)),v=T+ue,j=G+ue),M&&(Q=Oi(I-D,Fi(Y-z,Q)),C=D+Q,X=z+Q);break}case O1:{re[1]?(A&&(v=Oi(L,Fi(O,re[0][0])),j=Oi(L,Fi(O,re[1][0])),A=1),M&&(C=Oi(I,Fi(Y,re[0][1])),X=Oi(I,Fi(Y,re[1][1])),M=1)):(A<0?(ue=Oi(L-T,Fi(O-T,ue)),v=T+ue,j=G):A>0&&(ue=Oi(L-G,Fi(O-G,ue)),v=T,j=G+ue),M<0?(Q=Oi(I-D,Fi(Y-D,Q)),C=D+Q,X=z):M>0&&(Q=Oi(I-z,Fi(Y-z,Q)),C=D,X=z+Q));break}case F1:{A&&(v=Oi(L,Fi(O,T-ue*A)),j=Oi(L,Fi(O,G+ue*A))),M&&(C=Oi(I,Fi(Y,D-Q*M)),X=Oi(I,Fi(Y,z+Q*M)));break}}j<v&&(A*=-1,ze=T,T=G,G=ze,ze=v,v=j,j=ze,w in Y_&&ne.attr("cursor",Oh[w=Y_[w]])),X<C&&(M*=-1,ze=D,D=z,z=ze,ze=C,C=X,X=ze,w in q_&&ne.attr("cursor",Oh[w=q_[w]])),E.selection&&(F=E.selection),ve&&(v=F[0][0],j=F[1][0]),Me&&(C=F[0][1],X=F[1][1]),(F[0][0]!==v||F[0][1]!==C||F[1][0]!==j||F[1][1]!==X)&&(E.selection=[[v,C],[j,X]],u.call(b),pe.brush(oe,P.name))}function Je(oe){if(z_(oe),oe.touches){if(oe.touches.length)return;s&&clearTimeout(s),s=setTimeout(function(){s=null},500)}else Cp(oe.view,ye),Ce.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);ae.attr("pointer-events","all"),ne.attr("cursor",Oh.overlay),E.selection&&(F=E.selection),xte(F)&&(E.selection=null,u.call(b)),pe.end(oe,P.name)}function Qe(oe){switch(oe.keyCode){case 16:{J=A&&M;break}case 18:{P===O1&&(A&&(G=j-ue*A,T=v+ue*A),M&&(z=X-Q*M,D=C+Q*M),P=F1,De(oe));break}case 32:{(P===O1||P===F1)&&(A<0?G=j-ue:A>0&&(T=v-ue),M<0?z=X-Q:M>0&&(D=C-Q),P=x9,ne.attr("cursor",Oh.selection),De(oe));break}default:return}Mv(oe)}function tt(oe){switch(oe.keyCode){case 16:{J&&(ve=Me=J=!1,De(oe));break}case 18:{P===F1&&(A<0?G=j:A>0&&(T=v),M<0?z=X:M>0&&(D=C),P=O1,De(oe));break}case 32:{P===x9&&(oe.altKey?(A&&(G=j-ue*A,T=v+ue*A),M&&(z=X-Q*M,D=C+Q*M),P=F1):(A<0?G=j:A>0&&(T=v),M<0?z=X:M>0&&(D=C),P=O1),ne.attr("cursor",Oh[w]),De(oe));break}default:return}Mv(oe)}}function p(f){c(this,arguments).moved(f)}function g(f){c(this,arguments).ended(f)}function d(){var f=this.__brush||{selection:null};return f.extent=C9(e.apply(this,arguments)),f.dim=r,f}return l.extent=function(f){return arguments.length?(e=typeof f=="function"?f:kv(C9(f)),l):e},l.filter=function(f){return arguments.length?(t=typeof f=="function"?f:kv(!!f),l):t},l.touchable=function(f){return arguments.length?(o=typeof f=="function"?f:kv(!!f),l):o},l.handleSize=function(f){return arguments.length?(a=+f,l):a},l.keyModifiers=function(f){return arguments.length?(n=!!f,l):n},l.on=function(){var f=i.on.apply(i,arguments);return f===i?l:f},l}var M9=Math.abs,Ry=Math.cos,_y=Math.sin,eU=Math.PI,KA=eU/2,T9=eU*2,W9=Math.max,Lv=1e-12;function L9(r,e){return Array.from({length:e-r},(t,o)=>r+o)}function Ete(r){return function(e,t){return r(e.source.value+e.target.value,t.source.value+t.target.value)}}function tU(){return I9(!1,!1)}function rU(){return I9(!1,!0)}function oU(){return I9(!0,!1)}function I9(r,e){var t=0,o=null,n=null,i=null;function a(s){var l=s.length,u=new Array(l),c=L9(0,l),h=new Array(l*l),m=new Array(l),p=0,g;s=Float64Array.from({length:l*l},e?(d,f)=>s[f%l][f/l|0]:(d,f)=>s[f/l|0][f%l]);for(let d=0;d<l;++d){let f=0;for(let b=0;b<l;++b)f+=s[d*l+b]+r*s[b*l+d];p+=u[d]=f}p=W9(0,T9-t*l)/p,g=p?t:T9/l;{let d=0;o&&c.sort((f,b)=>o(u[f],u[b]));for(let f of c){let b=d;if(r){let w=L9(~l+1,l).filter(P=>P<0?s[~P*l+f]:s[f*l+P]);n&&w.sort((P,A)=>n(P<0?-s[~P*l+f]:s[f*l+P],A<0?-s[~A*l+f]:s[f*l+A]));for(let P of w)if(P<0){let A=h[~P*l+f]||(h[~P*l+f]={source:null,target:null});A.target={index:f,startAngle:d,endAngle:d+=s[~P*l+f]*p,value:s[~P*l+f]}}else{let A=h[f*l+P]||(h[f*l+P]={source:null,target:null});A.source={index:f,startAngle:d,endAngle:d+=s[f*l+P]*p,value:s[f*l+P]}}m[f]={index:f,startAngle:b,endAngle:d,value:u[f]}}else{let w=L9(0,l).filter(P=>s[f*l+P]||s[P*l+f]);n&&w.sort((P,A)=>n(s[f*l+P],s[f*l+A]));for(let P of w){let A;if(f<P?(A=h[f*l+P]||(h[f*l+P]={source:null,target:null}),A.source={index:f,startAngle:d,endAngle:d+=s[f*l+P]*p,value:s[f*l+P]}):(A=h[P*l+f]||(h[P*l+f]={source:null,target:null}),A.target={index:f,startAngle:d,endAngle:d+=s[f*l+P]*p,value:s[f*l+P]},f===P&&(A.source=A.target)),A.source&&A.target&&A.source.value<A.target.value){let M=A.source;A.source=A.target,A.target=M}}m[f]={index:f,startAngle:b,endAngle:d,value:u[f]}}d+=g}}return h=Object.values(h),h.groups=m,i?h.sort(i):h}return a.padAngle=function(s){return arguments.length?(t=W9(0,s),a):t},a.sortGroups=function(s){return arguments.length?(o=s,a):o},a.sortSubgroups=function(s){return arguments.length?(n=s,a):n},a.sortChords=function(s){return arguments.length?(s==null?i=null:(i=Ete(s))._=s,a):i&&i._},a}var R9=Math.PI,_9=2*R9,Uy=1e-6,Cte=_9-Uy;function nU(r){this._+=r[0];for(let e=1,t=r.length;e<t;++e)this._+=arguments[e]+r[e]}function kte(r){let e=Math.floor(r);if(!(e>=0))throw new Error(`invalid digits: ${r}`);if(e>15)return nU;let t=10**e;return function(o){this._+=o[0];for(let n=1,i=o.length;n<i;++n)this._+=Math.round(arguments[n]*t)/t+o[n]}}var Fh=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?nU:kte(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,o,n){this._append`Q${+e},${+t},${this._x1=+o},${this._y1=+n}`}bezierCurveTo(e,t,o,n,i,a){this._append`C${+e},${+t},${+o},${+n},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,o,n,i){if(e=+e,t=+t,o=+o,n=+n,i=+i,i<0)throw new Error(`negative radius: ${i}`);let a=this._x1,s=this._y1,l=o-e,u=n-t,c=a-e,h=s-t,m=c*c+h*h;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(m>Uy)if(!(Math.abs(h*l-u*c)>Uy)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=o-a,g=n-s,d=l*l+u*u,f=p*p+g*g,b=Math.sqrt(d),w=Math.sqrt(m),P=i*Math.tan((R9-Math.acos((d+m-f)/(2*b*w)))/2),A=P/w,M=P/b;Math.abs(A-1)>Uy&&this._append`L${e+A*c},${t+A*h}`,this._append`A${i},${i},0,0,${+(h*p>c*g)},${this._x1=e+M*l},${this._y1=t+M*u}`}}arc(e,t,o,n,i,a){if(e=+e,t=+t,o=+o,a=!!a,o<0)throw new Error(`negative radius: ${o}`);let s=o*Math.cos(n),l=o*Math.sin(n),u=e+s,c=t+l,h=1^a,m=a?n-i:i-n;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Uy||Math.abs(this._y1-c)>Uy)&&this._append`L${u},${c}`,o&&(m<0&&(m=m%_9+_9),m>Cte?this._append`A${o},${o},0,1,${h},${e-s},${t-l}A${o},${o},0,1,${h},${this._x1=u},${this._y1=c}`:m>Uy&&this._append`A${o},${o},0,${+(m>=R9)},${h},${this._x1=e+o*Math.cos(i)},${this._y1=t+o*Math.sin(i)}`)}rect(e,t,o,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${o=+o}v${+n}h${-o}Z`}toString(){return this._}};function YA(){return new Fh}YA.prototype=Fh.prototype;function iU(r=3){return new Fh(+r)}var aU=Array.prototype.slice;function _p(r){return function(){return r}}function Mte(r){return r.source}function Tte(r){return r.target}function sU(r){return r.radius}function Wte(r){return r.startAngle}function Lte(r){return r.endAngle}function Ite(){return 0}function Rte(){return 10}function lU(r){var e=Mte,t=Tte,o=sU,n=sU,i=Wte,a=Lte,s=Ite,l=null;function u(){var c,h=e.apply(this,arguments),m=t.apply(this,arguments),p=s.apply(this,arguments)/2,g=aU.call(arguments),d=+o.apply(this,(g[0]=h,g)),f=i.apply(this,g)-KA,b=a.apply(this,g)-KA,w=+n.apply(this,(g[0]=m,g)),P=i.apply(this,g)-KA,A=a.apply(this,g)-KA;if(l||(l=c=YA()),p>Lv&&(M9(b-f)>p*2+Lv?b>f?(f+=p,b-=p):(f-=p,b+=p):f=b=(f+b)/2,M9(A-P)>p*2+Lv?A>P?(P+=p,A-=p):(P-=p,A+=p):P=A=(P+A)/2),l.moveTo(d*Ry(f),d*_y(f)),l.arc(0,0,d,f,b),f!==P||b!==A)if(r){var M=+r.apply(this,arguments),E=w-M,U=(P+A)/2;l.quadraticCurveTo(0,0,E*Ry(P),E*_y(P)),l.lineTo(w*Ry(U),w*_y(U)),l.lineTo(E*Ry(A),E*_y(A))}else l.quadraticCurveTo(0,0,w*Ry(P),w*_y(P)),l.arc(0,0,w,P,A);if(l.quadraticCurveTo(0,0,d*Ry(f),d*_y(f)),l.closePath(),c)return l=null,c+""||null}return r&&(u.headRadius=function(c){return arguments.length?(r=typeof c=="function"?c:_p(+c),u):r}),u.radius=function(c){return arguments.length?(o=n=typeof c=="function"?c:_p(+c),u):o},u.sourceRadius=function(c){return arguments.length?(o=typeof c=="function"?c:_p(+c),u):o},u.targetRadius=function(c){return arguments.length?(n=typeof c=="function"?c:_p(+c),u):n},u.startAngle=function(c){return arguments.length?(i=typeof c=="function"?c:_p(+c),u):i},u.endAngle=function(c){return arguments.length?(a=typeof c=="function"?c:_p(+c),u):a},u.padAngle=function(c){return arguments.length?(s=typeof c=="function"?c:_p(+c),u):s},u.source=function(c){return arguments.length?(e=c,u):e},u.target=function(c){return arguments.length?(t=c,u):t},u.context=function(c){return arguments.length?(l=c??null,u):l},u}function uU(){return lU()}function cU(){return lU(Rte)}var _te=Array.prototype,Iv=_te.slice;function hU(r,e){return r-e}function mU(r){for(var e=0,t=r.length,o=r[t-1][1]*r[0][0]-r[t-1][0]*r[0][1];++e<t;)o+=r[e-1][1]*r[e][0]-r[e-1][0]*r[e][1];return o}var lc=r=>()=>r;function pU(r,e){for(var t=-1,o=e.length,n;++t<o;)if(n=Ute(r,e[t]))return n;return 0}function Ute(r,e){for(var t=e[0],o=e[1],n=-1,i=0,a=r.length,s=a-1;i<a;s=i++){var l=r[i],u=l[0],c=l[1],h=r[s],m=h[0],p=h[1];if(Bte(l,h,e))return 0;c>o!=p>o&&t<(m-u)*(o-c)/(p-c)+u&&(n=-n)}return n}function Bte(r,e,t){var o;return Dte(r,e,t)&&Ote(r[o=+(r[0]===e[0])],t[o],e[o])}function Dte(r,e,t){return(e[0]-r[0])*(t[1]-r[1])===(t[0]-r[0])*(e[1]-r[1])}function Ote(r,e,t){return r<=e&&e<=t||t<=e&&e<=r}function dU(){}var Gh=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function qA(){var r=1,e=1,t=Sy,o=l;function n(u){var c=t(u);if(Array.isArray(c))c=c.slice().sort(hU);else{let h=Wh(u,Fte);for(c=Ba(...by(h[0],h[1],c),c);c[c.length-1]>=h[1];)c.pop();for(;c[1]<h[0];)c.shift()}return c.map(h=>i(u,h))}function i(u,c){let h=c==null?NaN:+c;if(isNaN(h))throw new Error(`invalid value: ${c}`);var m=[],p=[];return a(u,h,function(g){o(g,u,h),mU(g)>0?m.push([g]):p.push(g)}),p.forEach(function(g){for(var d=0,f=m.length,b;d<f;++d)if(pU((b=m[d])[0],g)!==-1){b.push(g);return}}),{type:"MultiPolygon",value:c,coordinates:m}}function a(u,c,h){var m=new Array,p=new Array,g,d,f,b,w,P;for(g=d=-1,b=By(u[0],c),Gh[b<<1].forEach(A);++g<r-1;)f=b,b=By(u[g+1],c),Gh[f|b<<1].forEach(A);for(Gh[b<<0].forEach(A);++d<e-1;){for(g=-1,b=By(u[d*r+r],c),w=By(u[d*r],c),Gh[b<<1|w<<2].forEach(A);++g<r-1;)f=b,b=By(u[d*r+r+g+1],c),P=w,w=By(u[d*r+g+1],c),Gh[f|b<<1|w<<2|P<<3].forEach(A);Gh[b|w<<3].forEach(A)}for(g=-1,w=u[d*r]>=c,Gh[w<<2].forEach(A);++g<r-1;)P=w,w=By(u[d*r+g+1],c),Gh[w<<2|P<<3].forEach(A);Gh[w<<3].forEach(A);function A(M){var E=[M[0][0]+g,M[0][1]+d],U=[M[1][0]+g,M[1][1]+d],F=s(E),L=s(U),T,v;(T=p[F])?(v=m[L])?(delete p[T.end],delete m[v.start],T===v?(T.ring.push(U),h(T.ring)):m[T.start]=p[v.end]={start:T.start,end:v.end,ring:T.ring.concat(v.ring)}):(delete p[T.end],T.ring.push(U),p[T.end=L]=T):(T=m[L])?(v=p[F])?(delete m[T.start],delete p[v.end],T===v?(T.ring.push(U),h(T.ring)):m[v.start]=p[T.end]={start:v.start,end:T.end,ring:v.ring.concat(T.ring)}):(delete m[T.start],T.ring.unshift(E),m[T.start=F]=T):m[F]=p[L]={start:F,end:L,ring:[E,U]}}}function s(u){return u[0]*2+u[1]*(r+1)*4}function l(u,c,h){u.forEach(function(m){var p=m[0],g=m[1],d=p|0,f=g|0,b=U9(c[f*r+d]);p>0&&p<r&&d===p&&(m[0]=yU(p,U9(c[f*r+d-1]),b,h)),g>0&&g<e&&f===g&&(m[1]=yU(g,U9(c[(f-1)*r+d]),b,h))})}return n.contour=i,n.size=function(u){if(!arguments.length)return[r,e];var c=Math.floor(u[0]),h=Math.floor(u[1]);if(!(c>=0&&h>=0))throw new Error("invalid size");return r=c,e=h,n},n.thresholds=function(u){return arguments.length?(t=typeof u=="function"?u:Array.isArray(u)?lc(Iv.call(u)):lc(u),n):t},n.smooth=function(u){return arguments.length?(o=u?l:dU,n):o===l},n}function Fte(r){return isFinite(r)?r:NaN}function By(r,e){return r==null?!1:+r>=e}function U9(r){return r==null||isNaN(r=+r)?-1/0:r}function yU(r,e,t,o){let n=o-e,i=t-e,a=isFinite(n)||isFinite(i)?n/i:Math.sign(n)/Math.sign(i);return isNaN(a)?r:r+a-.5}function Gte(r){return r[0]}function Vte(r){return r[1]}function Hte(){return 1}function fU(){var r=Gte,e=Vte,t=Hte,o=960,n=500,i=20,a=2,s=i*3,l=o+s*2>>a,u=n+s*2>>a,c=lc(20);function h(w){var P=new Float32Array(l*u),A=Math.pow(2,-a),M=-1;for(let D of w){var E=(r(D,++M,w)+s)*A,U=(e(D,M,w)+s)*A,F=+t(D,M,w);if(F&&E>=0&&E<l&&U>=0&&U<u){var L=Math.floor(E),T=Math.floor(U),v=E-L-.5,I=U-T-.5;P[L+T*l]+=(1-v)*(1-I)*F,P[L+1+T*l]+=v*(1-I)*F,P[L+1+(T+1)*l]+=v*I*F,P[L+(T+1)*l]+=(1-v)*I*F}}return B4({data:P,width:l,height:u},i*A),P}function m(w){var P=h(w),A=c(P),M=Math.pow(2,2*a);return Array.isArray(A)||(A=Ba(Number.MIN_VALUE,Rh(P)/M,A)),qA().size([l,u]).thresholds(A.map(E=>E*M))(P).map((E,U)=>(E.value=+A[U],p(E)))}m.contours=function(w){var P=h(w),A=qA().size([l,u]),M=Math.pow(2,2*a),E=U=>{U=+U;var F=p(A.contour(P,U*M));return F.value=U,F};return Object.defineProperty(E,"max",{get:()=>Rh(P)/M}),E};function p(w){return w.coordinates.forEach(g),w}function g(w){w.forEach(d)}function d(w){w.forEach(f)}function f(w){w[0]=w[0]*Math.pow(2,a)-s,w[1]=w[1]*Math.pow(2,a)-s}function b(){return s=i*3,l=o+s*2>>a,u=n+s*2>>a,m}return m.x=function(w){return arguments.length?(r=typeof w=="function"?w:lc(+w),m):r},m.y=function(w){return arguments.length?(e=typeof w=="function"?w:lc(+w),m):e},m.weight=function(w){return arguments.length?(t=typeof w=="function"?w:lc(+w),m):t},m.size=function(w){if(!arguments.length)return[o,n];var P=+w[0],A=+w[1];if(!(P>=0&&A>=0))throw new Error("invalid size");return o=P,n=A,b()},m.cellSize=function(w){if(!arguments.length)return 1<<a;if(!((w=+w)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(w)/Math.LN2),b()},m.thresholds=function(w){return arguments.length?(c=typeof w=="function"?w:Array.isArray(w)?lc(Iv.call(w)):lc(w),m):c},m.bandwidth=function(w){if(!arguments.length)return Math.sqrt(i*(i+1));if(!((w=+w)>=0))throw new Error("invalid bandwidth");return i=(Math.sqrt(4*w*w+1)-1)/2,b()},m}var $r=11102230246251565e-32,_n=134217729,JA=(3+8*$r)*$r;function Dy(r,e,t,o,n){let i,a,s,l,u=e[0],c=o[0],h=0,m=0;c>u==c>-u?(i=u,u=e[++h]):(i=c,c=o[++m]);let p=0;if(h<r&&m<t)for(c>u==c>-u?(a=u+i,s=i-(a-u),u=e[++h]):(a=c+i,s=i-(a-c),c=o[++m]),i=a,s!==0&&(n[p++]=s);h<r&&m<t;)c>u==c>-u?(a=i+u,l=a-i,s=i-(a-l)+(u-l),u=e[++h]):(a=i+c,l=a-i,s=i-(a-l)+(c-l),c=o[++m]),i=a,s!==0&&(n[p++]=s);for(;h<r;)a=i+u,l=a-i,s=i-(a-l)+(u-l),u=e[++h],i=a,s!==0&&(n[p++]=s);for(;m<t;)a=i+c,l=a-i,s=i-(a-l)+(c-l),c=o[++m],i=a,s!==0&&(n[p++]=s);return(i!==0||p===0)&&(n[p++]=i),p}function $A(r,e){let t=e[0];for(let o=1;o<r;o++)t+=e[o];return t}function Ke(r){return new Float64Array(r)}var zte=(3+16*$r)*$r,jte=(2+12*$r)*$r,Xte=(9+64*$r)*$r*$r,G1=Ke(4),gU=Ke(8),bU=Ke(12),SU=Ke(16),da=Ke(4);function Kte(r,e,t,o,n,i,a){let s,l,u,c,h,m,p,g,d,f,b,w,P,A,M,E,U,F,L=r-n,T=t-n,v=e-i,I=o-i;A=L*I,m=_n*L,p=m-(m-L),g=L-p,m=_n*I,d=m-(m-I),f=I-d,M=g*f-(A-p*d-g*d-p*f),E=v*T,m=_n*v,p=m-(m-v),g=v-p,m=_n*T,d=m-(m-T),f=T-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,G1[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,G1[1]=P-(b+h)+(h-E),F=w+b,h=F-w,G1[2]=w-(F-h)+(b-h),G1[3]=F;let D=$A(4,G1),C=jte*a;if(D>=C||-D>=C||(h=r-L,s=r-(L+h)+(h-n),h=t-T,u=t-(T+h)+(h-n),h=e-v,l=e-(v+h)+(h-i),h=o-I,c=o-(I+h)+(h-i),s===0&&l===0&&u===0&&c===0)||(C=Xte*a+JA*Math.abs(D),D+=L*c+I*s-(v*u+T*l),D>=C||-D>=C))return D;A=s*I,m=_n*s,p=m-(m-s),g=s-p,m=_n*I,d=m-(m-I),f=I-d,M=g*f-(A-p*d-g*d-p*f),E=l*T,m=_n*l,p=m-(m-l),g=l-p,m=_n*T,d=m-(m-T),f=T-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,da[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,da[1]=P-(b+h)+(h-E),F=w+b,h=F-w,da[2]=w-(F-h)+(b-h),da[3]=F;let O=Dy(4,G1,4,da,gU);A=L*c,m=_n*L,p=m-(m-L),g=L-p,m=_n*c,d=m-(m-c),f=c-d,M=g*f-(A-p*d-g*d-p*f),E=v*u,m=_n*v,p=m-(m-v),g=v-p,m=_n*u,d=m-(m-u),f=u-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,da[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,da[1]=P-(b+h)+(h-E),F=w+b,h=F-w,da[2]=w-(F-h)+(b-h),da[3]=F;let G=Dy(O,gU,4,da,bU);A=s*c,m=_n*s,p=m-(m-s),g=s-p,m=_n*c,d=m-(m-c),f=c-d,M=g*f-(A-p*d-g*d-p*f),E=l*u,m=_n*l,p=m-(m-l),g=l-p,m=_n*u,d=m-(m-u),f=u-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,da[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,da[1]=P-(b+h)+(h-E),F=w+b,h=F-w,da[2]=w-(F-h)+(b-h),da[3]=F;let j=Dy(G,bU,4,da,SU);return SU[j-1]}function V1(r,e,t,o,n,i){let a=(e-i)*(t-n),s=(r-n)*(o-i),l=a-s,u=Math.abs(a+s);return Math.abs(l)>=zte*u?l:-Kte(r,e,t,o,n,i,u)}var DJe=(7+56*$r)*$r,OJe=(3+28*$r)*$r,FJe=(26+288*$r)*$r*$r,GJe=Ke(4),VJe=Ke(4),HJe=Ke(4),zJe=Ke(4),jJe=Ke(4),XJe=Ke(4),KJe=Ke(4),YJe=Ke(4),qJe=Ke(4),JJe=Ke(8),$Je=Ke(8),QJe=Ke(8),ZJe=Ke(4),e$e=Ke(8),t$e=Ke(8),r$e=Ke(16),o$e=Ke(12),n$e=Ke(192),i$e=Ke(192);var l$e=(10+96*$r)*$r,u$e=(4+48*$r)*$r,c$e=(44+576*$r)*$r*$r,h$e=Ke(4),m$e=Ke(4),p$e=Ke(4),d$e=Ke(4),y$e=Ke(4),f$e=Ke(4),g$e=Ke(4),b$e=Ke(4),S$e=Ke(8),A$e=Ke(8),w$e=Ke(8),P$e=Ke(8),v$e=Ke(8),N$e=Ke(8),x$e=Ke(8),E$e=Ke(8),C$e=Ke(8),k$e=Ke(4),M$e=Ke(4),T$e=Ke(4),W$e=Ke(8),L$e=Ke(16),I$e=Ke(16),R$e=Ke(16),_$e=Ke(32),U$e=Ke(32),B$e=Ke(48),D$e=Ke(64),O$e=Ke(1152),F$e=Ke(1152);var z$e=(16+224*$r)*$r,j$e=(5+72*$r)*$r,X$e=(71+1408*$r)*$r*$r,K$e=Ke(4),Y$e=Ke(4),q$e=Ke(4),J$e=Ke(4),$$e=Ke(4),Q$e=Ke(4),Z$e=Ke(4),eQe=Ke(4),tQe=Ke(4),rQe=Ke(4),oQe=Ke(24),nQe=Ke(24),iQe=Ke(24),aQe=Ke(24),sQe=Ke(24),lQe=Ke(24),uQe=Ke(24),cQe=Ke(24),hQe=Ke(24),mQe=Ke(24),pQe=Ke(1152),dQe=Ke(1152),yQe=Ke(1152),fQe=Ke(1152),gQe=Ke(1152),bQe=Ke(2304),SQe=Ke(2304),AQe=Ke(3456),wQe=Ke(5760),PQe=Ke(8),vQe=Ke(8),NQe=Ke(8),xQe=Ke(16),EQe=Ke(24),CQe=Ke(48),kQe=Ke(48),MQe=Ke(96),TQe=Ke(192),WQe=Ke(384),LQe=Ke(384),IQe=Ke(384),RQe=Ke(768);var _Qe=Ke(96),UQe=Ke(96),BQe=Ke(96),DQe=Ke(1152);var wU=Math.pow(2,-52),Rv=new Uint32Array(512),z1=class r{static from(e,t=Zte,o=ere){let n=e.length,i=new Float64Array(n*2);for(let a=0;a<n;a++){let s=e[a];i[2*a]=t(s),i[2*a+1]=o(s)}return new r(i)}constructor(e){let t=e.length>>1;if(t>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;let o=Math.max(2*t-5,0);this._triangles=new Uint32Array(o*3),this._halfedges=new Int32Array(o*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:o,_hullTri:n,_hullHash:i}=this,a=e.length>>1,s=1/0,l=1/0,u=-1/0,c=-1/0;for(let L=0;L<a;L++){let T=e[2*L],v=e[2*L+1];T<s&&(s=T),v<l&&(l=v),T>u&&(u=T),v>c&&(c=v),this._ids[L]=L}let h=(s+u)/2,m=(l+c)/2,p=0,g=0,d=0;for(let L=0,T=1/0;L<a;L++){let v=B9(h,m,e[2*L],e[2*L+1]);v<T&&(p=L,T=v)}let f=e[2*p],b=e[2*p+1];for(let L=0,T=1/0;L<a;L++){if(L===p)continue;let v=B9(f,b,e[2*L],e[2*L+1]);v<T&&v>0&&(g=L,T=v)}let w=e[2*g],P=e[2*g+1],A=1/0;for(let L=0;L<a;L++){if(L===p||L===g)continue;let T=$te(f,b,w,P,e[2*L],e[2*L+1]);T<A&&(d=L,A=T)}let M=e[2*d],E=e[2*d+1];if(A===1/0){for(let v=0;v<a;v++)this._dists[v]=e[2*v]-e[0]||e[2*v+1]-e[1];H1(this._ids,this._dists,0,a-1);let L=new Uint32Array(a),T=0;for(let v=0,I=-1/0;v<a;v++){let D=this._ids[v],C=this._dists[D];C>I&&(L[T++]=D,I=C)}this.hull=L.subarray(0,T),this.triangles=new Uint32Array(0),this.halfedges=new Int32Array(0);return}if(V1(f,b,w,P,M,E)<0){let L=g,T=w,v=P;g=d,w=M,P=E,d=L,M=T,E=v}let U=Qte(f,b,w,P,M,E);this._cx=U.x,this._cy=U.y;for(let L=0;L<a;L++)this._dists[L]=B9(e[2*L],e[2*L+1],U.x,U.y);H1(this._ids,this._dists,0,a-1),this._hullStart=p;let F=3;o[p]=t[d]=g,o[g]=t[p]=d,o[d]=t[g]=p,n[p]=0,n[g]=1,n[d]=2,i.fill(-1),i[this._hashKey(f,b)]=p,i[this._hashKey(w,P)]=g,i[this._hashKey(M,E)]=d,this.trianglesLen=0,this._addTriangle(p,g,d,-1,-1,-1);for(let L=0,T=0,v=0;L<this._ids.length;L++){let I=this._ids[L],D=e[2*I],C=e[2*I+1];if(L>0&&Math.abs(D-T)<=wU&&Math.abs(C-v)<=wU||(T=D,v=C,I===p||I===g||I===d))continue;let O=0;for(let X=0,ue=this._hashKey(D,C);X<this._hashSize&&(O=i[(ue+X)%this._hashSize],!(O!==-1&&O!==o[O]));X++);O=t[O];let G=O,j;for(;j=o[G],V1(D,C,e[2*G],e[2*G+1],e[2*j],e[2*j+1])>=0;)if(G=j,G===O){G=-1;break}if(G===-1)continue;let Y=this._addTriangle(G,I,o[G],-1,-1,n[G]);n[I]=this._legalize(Y+2),n[G]=Y,F++;let z=o[G];for(;j=o[z],V1(D,C,e[2*z],e[2*z+1],e[2*j],e[2*j+1])<0;)Y=this._addTriangle(z,I,j,n[I],-1,n[z]),n[I]=this._legalize(Y+2),o[z]=z,F--,z=j;if(G===O)for(;j=t[G],V1(D,C,e[2*j],e[2*j+1],e[2*G],e[2*G+1])<0;)Y=this._addTriangle(j,I,G,-1,n[G],n[j]),this._legalize(Y+2),n[j]=Y,o[G]=G,F--,G=j;this._hullStart=t[I]=G,o[G]=t[z]=I,o[I]=z,i[this._hashKey(D,C)]=I,i[this._hashKey(e[2*G],e[2*G+1])]=G}this.hull=new Uint32Array(F);for(let L=0,T=this._hullStart;L<F;L++)this.hull[L]=T,T=o[T];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(qte(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){let{_triangles:t,_halfedges:o,coords:n}=this,i=0,a=0;for(;;){let s=o[e],l=e-e%3;if(a=l+(e+2)%3,s===-1){if(i===0)break;e=Rv[--i];continue}let u=s-s%3,c=l+(e+1)%3,h=u+(s+2)%3,m=t[a],p=t[e],g=t[c],d=t[h];if(Jte(n[2*m],n[2*m+1],n[2*p],n[2*p+1],n[2*g],n[2*g+1],n[2*d],n[2*d+1])){t[e]=d,t[s]=m;let b=o[h];if(b===-1){let P=this._hullStart;do{if(this._hullTri[P]===h){this._hullTri[P]=e;break}P=this._hullPrev[P]}while(P!==this._hullStart)}this._link(e,b),this._link(s,o[a]),this._link(a,h);let w=u+(s+1)%3;i<Rv.length&&(Rv[i++]=w)}else{if(i===0)break;e=Rv[--i]}}return a}_link(e,t){this._halfedges[e]=t,t!==-1&&(this._halfedges[t]=e)}_addTriangle(e,t,o,n,i,a){let s=this.trianglesLen;return this._triangles[s]=e,this._triangles[s+1]=t,this._triangles[s+2]=o,this._link(s,n),this._link(s+1,i),this._link(s+2,a),this.trianglesLen+=3,s}};function qte(r,e){let t=r/(Math.abs(r)+Math.abs(e));return(e>0?3-t:1+t)/4}function B9(r,e,t,o){let n=r-t,i=e-o;return n*n+i*i}function Jte(r,e,t,o,n,i,a,s){let l=r-a,u=e-s,c=t-a,h=o-s,m=n-a,p=i-s,g=l*l+u*u,d=c*c+h*h,f=m*m+p*p;return l*(h*f-d*p)-u*(c*f-d*m)+g*(c*p-h*m)<0}function $te(r,e,t,o,n,i){let a=t-r,s=o-e,l=n-r,u=i-e,c=a*a+s*s,h=l*l+u*u,m=.5/(a*u-s*l),p=(u*c-s*h)*m,g=(a*h-l*c)*m;return p*p+g*g}function Qte(r,e,t,o,n,i){let a=t-r,s=o-e,l=n-r,u=i-e,c=a*a+s*s,h=l*l+u*u,m=.5/(a*u-s*l),p=r+(u*c-s*h)*m,g=e+(a*h-l*c)*m;return{x:p,y:g}}function H1(r,e,t,o){if(o-t<=20)for(let n=t+1;n<=o;n++){let i=r[n],a=e[i],s=n-1;for(;s>=t&&e[r[s]]>a;)r[s+1]=r[s--];r[s+1]=i}else{let n=t+o>>1,i=t+1,a=o;QA(r,n,i),e[r[t]]>e[r[o]]&&QA(r,t,o),e[r[i]]>e[r[o]]&&QA(r,i,o),e[r[t]]>e[r[i]]&&QA(r,t,i);let s=r[i],l=e[s];for(;;){do i++;while(e[r[i]]<l);do a--;while(e[r[a]]>l);if(a<i)break;QA(r,i,a)}r[t+1]=r[a],r[a]=s,o-i+1>=a-t?(H1(r,e,i,o),H1(r,e,t,a-1)):(H1(r,e,t,a-1),H1(r,e,i,o))}}function QA(r,e,t){let o=r[e];r[e]=r[t],r[t]=o}function Zte(r){return r[0]}function ere(r){return r[1]}var Ys=class{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,o){e=+e,t=+t,o=+o;let n=e+o,i=t;if(o<0)throw new Error("negative radius");this._x1===null?this._+=`M${n},${i}`:(Math.abs(this._x1-n)>1e-6||Math.abs(this._y1-i)>1e-6)&&(this._+="L"+n+","+i),o&&(this._+=`A${o},${o},0,1,1,${e-o},${t}A${o},${o},0,1,1,${this._x1=n},${this._y1=i}`)}rect(e,t,o,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+o}v${+n}h${-o}Z`}value(){return this._||null}};var Up=class{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}};var Oy=class{constructor(e,[t,o,n,i]=[0,0,960,500]){if(!((n=+n)>=(t=+t))||!((i=+i)>=(o=+o)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=n,this.xmin=t,this.ymax=i,this.ymin=o,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){let{delaunay:{points:e,hull:t,triangles:o},vectors:n}=this,i,a,s=this.circumcenters=this._circumcenters.subarray(0,o.length/3*2);for(let d=0,f=0,b=o.length,w,P;d<b;d+=3,f+=2){let A=o[d]*2,M=o[d+1]*2,E=o[d+2]*2,U=e[A],F=e[A+1],L=e[M],T=e[M+1],v=e[E],I=e[E+1],D=L-U,C=T-F,O=v-U,G=I-F,j=(D*G-C*O)*2;if(Math.abs(j)<1e-9){if(i===void 0){i=a=0;for(let z of t)i+=e[z*2],a+=e[z*2+1];i/=t.length,a/=t.length}let Y=1e9*Math.sign((i-U)*G-(a-F)*O);w=(U+v)/2-Y*G,P=(F+I)/2+Y*O}else{let Y=1/j,z=D*D+C*C,X=O*O+G*G;w=U+(G*z-C*X)*Y,P=F+(D*X-O*z)*Y}s[f]=w,s[f+1]=P}let l=t[t.length-1],u,c=l*4,h,m=e[2*l],p,g=e[2*l+1];n.fill(0);for(let d=0;d<t.length;++d)l=t[d],u=c,h=m,p=g,c=l*4,m=e[2*l],g=e[2*l+1],n[u+2]=n[c]=p-g,n[u+3]=n[c+1]=m-h}render(e){let t=e==null?e=new Ys:void 0,{delaunay:{halfedges:o,inedges:n,hull:i},circumcenters:a,vectors:s}=this;if(i.length<=1)return null;for(let c=0,h=o.length;c<h;++c){let m=o[c];if(m<c)continue;let p=Math.floor(c/3)*2,g=Math.floor(m/3)*2,d=a[p],f=a[p+1],b=a[g],w=a[g+1];this._renderSegment(d,f,b,w,e)}let l,u=i[i.length-1];for(let c=0;c<i.length;++c){l=u,u=i[c];let h=Math.floor(n[u]/3)*2,m=a[h],p=a[h+1],g=l*4,d=this._project(m,p,s[g+2],s[g+3]);d&&this._renderSegment(m,p,d[0],d[1],e)}return t&&t.value()}renderBounds(e){let t=e==null?e=new Ys:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){let o=t==null?t=new Ys:void 0,n=this._clip(e);if(n===null||!n.length)return;t.moveTo(n[0],n[1]);let i=n.length;for(;n[0]===n[i-2]&&n[1]===n[i-1]&&i>1;)i-=2;for(let a=2;a<i;a+=2)(n[a]!==n[a-2]||n[a+1]!==n[a-1])&&t.lineTo(n[a],n[a+1]);return t.closePath(),o&&o.value()}*cellPolygons(){let{delaunay:{points:e}}=this;for(let t=0,o=e.length/2;t<o;++t){let n=this.cellPolygon(t);n&&(n.index=t,yield n)}}cellPolygon(e){let t=new Up;return this.renderCell(e,t),t.value()}_renderSegment(e,t,o,n,i){let a,s=this._regioncode(e,t),l=this._regioncode(o,n);s===0&&l===0?(i.moveTo(e,t),i.lineTo(o,n)):(a=this._clipSegment(e,t,o,n,s,l))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(e,t,o){return t=+t,t!==t||(o=+o,o!==o)?!1:this.delaunay._step(e,t,o)===e}*neighbors(e){let t=this._clip(e);if(t)for(let o of this.delaunay.neighbors(e)){let n=this._clip(o);if(n){e:for(let i=0,a=t.length;i<a;i+=2)for(let s=0,l=n.length;s<l;s+=2)if(t[i]===n[s]&&t[i+1]===n[s+1]&&t[(i+2)%a]===n[(s+l-2)%l]&&t[(i+3)%a]===n[(s+l-1)%l]){yield o;break e}}}}_cell(e){let{circumcenters:t,delaunay:{inedges:o,halfedges:n,triangles:i}}=this,a=o[e];if(a===-1)return null;let s=[],l=a;do{let u=Math.floor(l/3);if(s.push(t[u*2],t[u*2+1]),l=l%3===2?l-2:l+1,i[l]!==e)break;l=n[l]}while(l!==a&&l!==-1);return s}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];let t=this._cell(e);if(t===null)return null;let{vectors:o}=this,n=e*4;return this._simplify(o[n]||o[n+1]?this._clipInfinite(e,t,o[n],o[n+1],o[n+2],o[n+3]):this._clipFinite(e,t))}_clipFinite(e,t){let o=t.length,n=null,i,a,s=t[o-2],l=t[o-1],u,c=this._regioncode(s,l),h,m=0;for(let p=0;p<o;p+=2)if(i=s,a=l,s=t[p],l=t[p+1],u=c,c=this._regioncode(s,l),u===0&&c===0)h=m,m=0,n?n.push(s,l):n=[s,l];else{let g,d,f,b,w;if(u===0){if((g=this._clipSegment(i,a,s,l,u,c))===null)continue;[d,f,b,w]=g}else{if((g=this._clipSegment(s,l,i,a,c,u))===null)continue;[b,w,d,f]=g,h=m,m=this._edgecode(d,f),h&&m&&this._edge(e,h,m,n,n.length),n?n.push(d,f):n=[d,f]}h=m,m=this._edgecode(b,w),h&&m&&this._edge(e,h,m,n,n.length),n?n.push(b,w):n=[b,w]}if(n)h=m,m=this._edgecode(n[0],n[1]),h&&m&&this._edge(e,h,m,n,n.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return n}_clipSegment(e,t,o,n,i,a){let s=i<a;for(s&&([e,t,o,n,i,a]=[o,n,e,t,a,i]);;){if(i===0&&a===0)return s?[o,n,e,t]:[e,t,o,n];if(i&a)return null;let l,u,c=i||a;c&8?(l=e+(o-e)*(this.ymax-t)/(n-t),u=this.ymax):c&4?(l=e+(o-e)*(this.ymin-t)/(n-t),u=this.ymin):c&2?(u=t+(n-t)*(this.xmax-e)/(o-e),l=this.xmax):(u=t+(n-t)*(this.xmin-e)/(o-e),l=this.xmin),i?(e=l,t=u,i=this._regioncode(e,t)):(o=l,n=u,a=this._regioncode(o,n))}}_clipInfinite(e,t,o,n,i,a){let s=Array.from(t),l;if((l=this._project(s[0],s[1],o,n))&&s.unshift(l[0],l[1]),(l=this._project(s[s.length-2],s[s.length-1],i,a))&&s.push(l[0],l[1]),s=this._clipFinite(e,s))for(let u=0,c=s.length,h,m=this._edgecode(s[c-2],s[c-1]);u<c;u+=2)h=m,m=this._edgecode(s[u],s[u+1]),h&&m&&(u=this._edge(e,h,m,s,u),c=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,o,n,i){for(;t!==o;){let a,s;switch(t){case 5:t=4;continue;case 4:t=6,a=this.xmax,s=this.ymin;break;case 6:t=2;continue;case 2:t=10,a=this.xmax,s=this.ymax;break;case 10:t=8;continue;case 8:t=9,a=this.xmin,s=this.ymax;break;case 9:t=1;continue;case 1:t=5,a=this.xmin,s=this.ymin;break}(n[i]!==a||n[i+1]!==s)&&this.contains(e,a,s)&&(n.splice(i,0,a,s),i+=2)}return i}_project(e,t,o,n){let i=1/0,a,s,l;if(n<0){if(t<=this.ymin)return null;(a=(this.ymin-t)/n)<i&&(l=this.ymin,s=e+(i=a)*o)}else if(n>0){if(t>=this.ymax)return null;(a=(this.ymax-t)/n)<i&&(l=this.ymax,s=e+(i=a)*o)}if(o>0){if(e>=this.xmax)return null;(a=(this.xmax-e)/o)<i&&(s=this.xmax,l=t+(i=a)*n)}else if(o<0){if(e<=this.xmin)return null;(a=(this.xmin-e)/o)<i&&(s=this.xmin,l=t+(i=a)*n)}return[s,l]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){let o=(t+2)%e.length,n=(t+4)%e.length;(e[t]===e[o]&&e[o]===e[n]||e[t+1]===e[o+1]&&e[o+1]===e[n+1])&&(e.splice(o,2),t-=2)}e.length||(e=null)}return e}};var tre=2*Math.PI,j1=Math.pow;function rre(r){return r[0]}function ore(r){return r[1]}function nre(r){let{triangles:e,coords:t}=r;for(let o=0;o<e.length;o+=3){let n=2*e[o],i=2*e[o+1],a=2*e[o+2];if((t[a]-t[n])*(t[i+1]-t[n+1])-(t[i]-t[n])*(t[a+1]-t[n+1])>1e-10)return!1}return!0}function ire(r,e,t){return[r+Math.sin(r+e)*t,e+Math.cos(r-e)*t]}var ZA=class r{static from(e,t=rre,o=ore,n){return new r("length"in e?are(e,t,o,n):Float64Array.from(sre(e,t,o,n)))}constructor(e){this._delaunator=new z1(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){let e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&nre(e)){this.collinear=Int32Array.from({length:t.length/2},(m,p)=>p).sort((m,p)=>t[2*m]-t[2*p]||t[2*m+1]-t[2*p+1]);let l=this.collinear[0],u=this.collinear[this.collinear.length-1],c=[t[2*l],t[2*l+1],t[2*u],t[2*u+1]],h=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let m=0,p=t.length/2;m<p;++m){let g=ire(t[2*m],t[2*m+1],h);t[2*m]=g[0],t[2*m+1]=g[1]}this._delaunator=new z1(t)}else delete this.collinear;let o=this.halfedges=this._delaunator.halfedges,n=this.hull=this._delaunator.hull,i=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let l=0,u=o.length;l<u;++l){let c=i[l%3===2?l-2:l+1];(o[l]===-1||a[c]===-1)&&(a[c]=l)}for(let l=0,u=n.length;l<u;++l)s[n[l]]=l;n.length<=2&&n.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=n[0],a[n[0]]=1,n.length===2&&(a[n[1]]=0,this.triangles[1]=n[1],this.triangles[2]=n[1]))}voronoi(e){return new Oy(this,e)}*neighbors(e){let{inedges:t,hull:o,_hullIndex:n,halfedges:i,triangles:a,collinear:s}=this;if(s){let h=s.indexOf(e);h>0&&(yield s[h-1]),h<s.length-1&&(yield s[h+1]);return}let l=t[e];if(l===-1)return;let u=l,c=-1;do{if(yield c=a[u],u=u%3===2?u-2:u+1,a[u]!==e)return;if(u=i[u],u===-1){let h=o[(n[e]+1)%o.length];h!==c&&(yield h);return}}while(u!==l)}find(e,t,o=0){if(e=+e,e!==e||(t=+t,t!==t))return-1;let n=o,i;for(;(i=this._step(o,e,t))>=0&&i!==o&&i!==n;)o=i;return i}_step(e,t,o){let{inedges:n,hull:i,_hullIndex:a,halfedges:s,triangles:l,points:u}=this;if(n[e]===-1||!u.length)return(e+1)%(u.length>>1);let c=e,h=j1(t-u[e*2],2)+j1(o-u[e*2+1],2),m=n[e],p=m;do{let g=l[p],d=j1(t-u[g*2],2)+j1(o-u[g*2+1],2);if(d<h&&(h=d,c=g),p=p%3===2?p-2:p+1,l[p]!==e)break;if(p=s[p],p===-1){if(p=i[(a[e]+1)%i.length],p!==g&&j1(t-u[p*2],2)+j1(o-u[p*2+1],2)<h)return p;break}}while(p!==m);return c}render(e){let t=e==null?e=new Ys:void 0,{points:o,halfedges:n,triangles:i}=this;for(let a=0,s=n.length;a<s;++a){let l=n[a];if(l<a)continue;let u=i[a]*2,c=i[l]*2;e.moveTo(o[u],o[u+1]),e.lineTo(o[c],o[c+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){t===void 0&&(!e||typeof e.moveTo!="function")&&(t=e,e=null),t=t==null?2:+t;let o=e==null?e=new Ys:void 0,{points:n}=this;for(let i=0,a=n.length;i<a;i+=2){let s=n[i],l=n[i+1];e.moveTo(s+t,l),e.arc(s,l,t,0,tre)}return o&&o.value()}renderHull(e){let t=e==null?e=new Ys:void 0,{hull:o,points:n}=this,i=o[0]*2,a=o.length;e.moveTo(n[i],n[i+1]);for(let s=1;s<a;++s){let l=2*o[s];e.lineTo(n[l],n[l+1])}return e.closePath(),t&&t.value()}hullPolygon(){let e=new Up;return this.renderHull(e),e.value()}renderTriangle(e,t){let o=t==null?t=new Ys:void 0,{points:n,triangles:i}=this,a=i[e*=3]*2,s=i[e+1]*2,l=i[e+2]*2;return t.moveTo(n[a],n[a+1]),t.lineTo(n[s],n[s+1]),t.lineTo(n[l],n[l+1]),t.closePath(),o&&o.value()}*trianglePolygons(){let{triangles:e}=this;for(let t=0,o=e.length/3;t<o;++t)yield this.trianglePolygon(t)}trianglePolygon(e){let t=new Up;return this.renderTriangle(e,t),t.value()}};function are(r,e,t,o){let n=r.length,i=new Float64Array(n*2);for(let a=0;a<n;++a){let s=r[a];i[a*2]=e.call(o,s,a,r),i[a*2+1]=t.call(o,s,a,r)}return i}function*sre(r,e,t,o){let n=0;for(let i of r)yield e.call(o,i,n,r),yield t.call(o,i,n,r),++n}var PU={},D9={},O9=34,ew=10,F9=13;function NU(r){return new Function("d","return {"+r.map(function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'}).join(",")+"}")}function lre(r,e){var t=NU(r);return function(o,n){return e(t(o),n,r)}}function vU(r){var e=Object.create(null),t=[];return r.forEach(function(o){for(var n in o)n in e||t.push(e[n]=n)}),t}function Da(r,e){var t=r+"",o=t.length;return o<e?new Array(e-o+1).join(0)+t:t}function ure(r){return r<0?"-"+Da(-r,6):r>9999?"+"+Da(r,6):Da(r,4)}function cre(r){var e=r.getUTCHours(),t=r.getUTCMinutes(),o=r.getUTCSeconds(),n=r.getUTCMilliseconds();return isNaN(r)?"Invalid Date":ure(r.getUTCFullYear(),4)+"-"+Da(r.getUTCMonth()+1,2)+"-"+Da(r.getUTCDate(),2)+(n?"T"+Da(e,2)+":"+Da(t,2)+":"+Da(o,2)+"."+Da(n,3)+"Z":o?"T"+Da(e,2)+":"+Da(t,2)+":"+Da(o,2)+"Z":t||e?"T"+Da(e,2)+":"+Da(t,2)+"Z":"")}function Bp(r){var e=new RegExp('["'+r+`
|
|
233
|
+
//# sourceURL=${t.filename}`):this.eval(e)}[OS](){}};var ek={};cK(ek,{Adder:()=>wo,Delaunay:()=>ZA,FormatSpecifier:()=>tw,InternMap:()=>_l,InternSet:()=>Ua,Node:()=>pc,Path:()=>Fh,Voronoi:()=>Oy,ZoomTransform:()=>rl,active:()=>H_,arc:()=>YG,area:()=>f5,areaRadial:()=>jC,ascending:()=>Or,autoType:()=>G9,axisBottom:()=>sI,axisLeft:()=>lI,axisRight:()=>aI,axisTop:()=>iI,bin:()=>F4,bisect:()=>_a,bisectCenter:()=>BL,bisectLeft:()=>UL,bisectRight:()=>f6,bisector:()=>wp,blob:()=>BU,blur:()=>DL,blur2:()=>B4,blurImage:()=>OL,brush:()=>Z_,brushSelection:()=>J_,brushX:()=>$_,brushY:()=>Q_,buffer:()=>DU,chord:()=>tU,chordDirected:()=>oU,chordTranspose:()=>rU,cluster:()=>JD,color:()=>Ks,contourDensity:()=>fU,contours:()=>qA,count:()=>Th,create:()=>QI,creator:()=>vp,cross:()=>b6,csv:()=>FU,csvFormat:()=>EU,csvFormatBody:()=>CU,csvFormatRow:()=>MU,csvFormatRows:()=>kU,csvFormatValue:()=>TU,csvParse:()=>_v,csvParseRows:()=>xU,cubehelix:()=>Bi,cumsum:()=>S6,curveBasis:()=>lV,curveBasisClosed:()=>cV,curveBasisOpen:()=>mV,curveBumpX:()=>S5,curveBumpY:()=>A5,curveBundle:()=>dV,curveCardinal:()=>yV,curveCardinalClosed:()=>fV,curveCardinalOpen:()=>gV,curveCatmullRom:()=>SV,curveCatmullRomClosed:()=>wV,curveCatmullRomOpen:()=>vV,curveLinear:()=>qp,curveLinearClosed:()=>xV,curveMonotoneX:()=>WV,curveMonotoneY:()=>LV,curveNatural:()=>_V,curveStep:()=>UV,curveStepAfter:()=>DV,curveStepBefore:()=>BV,descending:()=>yA,deviation:()=>gA,difference:()=>H6,disjoint:()=>z6,dispatch:()=>Xs,drag:()=>rR,dragDisable:()=>Ep,dragEnable:()=>Cp,dsv:()=>V9,dsvFormat:()=>Bp,easeBack:()=>A9,easeBackIn:()=>D_,easeBackInOut:()=>A9,easeBackOut:()=>O_,easeBounce:()=>B1,easeBounceIn:()=>U_,easeBounceInOut:()=>B_,easeBounceOut:()=>B1,easeCircle:()=>g9,easeCircleIn:()=>R_,easeCircleInOut:()=>g9,easeCircleOut:()=>__,easeCubic:()=>jA,easeCubicIn:()=>N_,easeCubicInOut:()=>jA,easeCubicOut:()=>x_,easeElastic:()=>v9,easeElasticIn:()=>F_,easeElasticInOut:()=>G_,easeElasticOut:()=>v9,easeExp:()=>f9,easeExpIn:()=>L_,easeExpInOut:()=>f9,easeExpOut:()=>I_,easeLinear:()=>w_,easePoly:()=>d9,easePolyIn:()=>E_,easePolyInOut:()=>d9,easePolyOut:()=>C_,easeQuad:()=>m9,easeQuadIn:()=>P_,easeQuadInOut:()=>m9,easeQuadOut:()=>v_,easeSin:()=>y9,easeSinIn:()=>T_,easeSinInOut:()=>y9,easeSinOut:()=>W_,every:()=>B6,extent:()=>Wh,fcumsum:()=>VL,filter:()=>O6,flatGroup:()=>KL,flatRollup:()=>YL,forceCenter:()=>KU,forceCollide:()=>mB,forceLink:()=>dB,forceManyBody:()=>SB,forceRadial:()=>AB,forceSimulation:()=>bB,forceX:()=>wB,forceY:()=>PB,format:()=>zy,formatDefaultLocale:()=>Ov,formatLocale:()=>Bv,formatPrefix:()=>ow,formatSpecifier:()=>Gl,fsum:()=>GL,geoAlbers:()=>vN,geoAlbersUsa:()=>UD,geoArea:()=>UB,geoAzimuthalEqualArea:()=>BD,geoAzimuthalEqualAreaRaw:()=>xN,geoAzimuthalEquidistant:()=>DD,geoAzimuthalEquidistantRaw:()=>EN,geoBounds:()=>zB,geoCentroid:()=>JB,geoCircle:()=>tD,geoClipAntimeridian:()=>pw,geoClipCircle:()=>uN,geoClipExtent:()=>nD,geoClipRectangle:()=>Xh,geoConicConformal:()=>FD,geoConicConformalRaw:()=>kE,geoConicEqualArea:()=>Qy,geoConicEqualAreaRaw:()=>EE,geoConicEquidistant:()=>VD,geoConicEquidistantRaw:()=>ME,geoContains:()=>hD,geoDistance:()=>$1,geoEqualEarth:()=>HD,geoEqualEarthRaw:()=>MN,geoEquirectangular:()=>GD,geoEquirectangularRaw:()=>ef,geoGnomonic:()=>zD,geoGnomonicRaw:()=>TN,geoGraticule:()=>yN,geoGraticule10:()=>dD,geoIdentity:()=>jD,geoInterpolate:()=>yD,geoLength:()=>pN,geoMercator:()=>OD,geoMercatorRaw:()=>Zy,geoNaturalEarth1:()=>XD,geoNaturalEarth1Raw:()=>WN,geoOrthographic:()=>KD,geoOrthographicRaw:()=>LN,geoPath:()=>WD,geoProjection:()=>Cn,geoProjectionMutator:()=>Aw,geoRotation:()=>oN,geoStereographic:()=>YD,geoStereographicRaw:()=>IN,geoStream:()=>ui,geoTransform:()=>LD,geoTransverseMercator:()=>qD,geoTransverseMercatorRaw:()=>RN,gray:()=>bR,greatest:()=>vA,greatestIndex:()=>L6,group:()=>bA,groupSort:()=>v6,groups:()=>w6,hcl:()=>W1,hierarchy:()=>xw,histogram:()=>F4,hsl:()=>M1,html:()=>jU,image:()=>VU,index:()=>qL,indexes:()=>JL,interpolate:()=>Di,interpolateArray:()=>TR,interpolateBasis:()=>av,interpolateBasisClosed:()=>sv,interpolateBlues:()=>MG,interpolateBrBG:()=>lG,interpolateBuGn:()=>gG,interpolateBuPu:()=>bG,interpolateCividis:()=>_G,interpolateCool:()=>DG,interpolateCubehelix:()=>jR,interpolateCubehelixDefault:()=>UG,interpolateCubehelixLong:()=>Ty,interpolateDate:()=>cv,interpolateDiscrete:()=>WR,interpolateGnBu:()=>SG,interpolateGreens:()=>TG,interpolateGreys:()=>WG,interpolateHcl:()=>VR,interpolateHclLong:()=>HR,interpolateHsl:()=>OR,interpolateHslLong:()=>FR,interpolateHue:()=>LR,interpolateInferno:()=>zG,interpolateLab:()=>u9,interpolateMagma:()=>HG,interpolateNumber:()=>si,interpolateNumberArray:()=>I1,interpolateObject:()=>hv,interpolateOrRd:()=>AG,interpolateOranges:()=>RG,interpolatePRGn:()=>uG,interpolatePiYG:()=>cG,interpolatePlasma:()=>jG,interpolatePuBu:()=>PG,interpolatePuBuGn:()=>wG,interpolatePuOr:()=>hG,interpolatePuRd:()=>vG,interpolatePurples:()=>LG,interpolateRainbow:()=>OG,interpolateRdBu:()=>mG,interpolateRdGy:()=>pG,interpolateRdPu:()=>NG,interpolateRdYlBu:()=>dG,interpolateRdYlGn:()=>yG,interpolateReds:()=>IG,interpolateRgb:()=>Wp,interpolateRgbBasis:()=>lv,interpolateRgbBasisClosed:()=>MR,interpolateRound:()=>Lp,interpolateSinebow:()=>FG,interpolateSpectral:()=>fG,interpolateString:()=>R1,interpolateTransformCss:()=>dv,interpolateTransformSvg:()=>yv,interpolateTurbo:()=>GG,interpolateViridis:()=>VG,interpolateWarm:()=>BG,interpolateYlGn:()=>EG,interpolateYlGnBu:()=>xG,interpolateYlOrBr:()=>CG,interpolateYlOrRd:()=>kG,interpolateZoom:()=>fv,interrupt:()=>Ol,intersection:()=>j6,interval:()=>JR,isoFormat:()=>KF,isoParse:()=>YF,json:()=>HU,lab:()=>ky,lch:()=>AR,least:()=>W6,leastIndex:()=>NA,line:()=>dS,lineRadial:()=>zC,link:()=>Hw,linkHorizontal:()=>rV,linkRadial:()=>nV,linkVertical:()=>oV,local:()=>J4,map:()=>F6,matcher:()=>E1,max:()=>Rh,maxIndex:()=>Ay,mean:()=>E6,median:()=>C6,medianIndex:()=>eI,merge:()=>vy,min:()=>Pp,minIndex:()=>wy,mode:()=>k6,namespace:()=>rc,namespaces:()=>kA,nice:()=>by,now:()=>Ip,pack:()=>wO,packEnclose:()=>mO,packSiblings:()=>bO,pairs:()=>M6,partition:()=>PO,path:()=>YA,pathRound:()=>iU,permute:()=>SA,pie:()=>ZG,piecewise:()=>BA,pointRadial:()=>gf,pointer:()=>ai,pointers:()=>ZI,polygonArea:()=>WO,polygonCentroid:()=>LO,polygonContains:()=>UO,polygonHull:()=>_O,polygonLength:()=>BO,precisionFixed:()=>Fv,precisionPrefix:()=>Gv,precisionRound:()=>Vv,quadtree:()=>Dp,quantile:()=>tc,quantileIndex:()=>V4,quantileSorted:()=>G4,quantize:()=>XR,quickselect:()=>Py,radialArea:()=>jC,radialLine:()=>zC,randomBates:()=>GO,randomBernoulli:()=>zO,randomBeta:()=>VN,randomBinomial:()=>HN,randomCauchy:()=>XO,randomExponential:()=>VO,randomGamma:()=>uS,randomGeometric:()=>GN,randomInt:()=>OO,randomIrwinHall:()=>FN,randomLcg:()=>VE,randomLogNormal:()=>FO,randomLogistic:()=>KO,randomNormal:()=>lS,randomPareto:()=>HO,randomPoisson:()=>YO,randomUniform:()=>DO,randomWeibull:()=>jO,range:()=>js,rank:()=>T6,reduce:()=>G6,reverse:()=>V6,rgb:()=>Bh,ribbon:()=>uU,ribbonArrow:()=>cU,rollup:()=>D4,rollups:()=>P6,scaleBand:()=>Cw,scaleDiverging:()=>c5,scaleDivergingLog:()=>pC,scaleDivergingPow:()=>h5,scaleDivergingSqrt:()=>JF,scaleDivergingSymlog:()=>dC,scaleIdentity:()=>XN,scaleImplicit:()=>zN,scaleLinear:()=>jN,scaleLog:()=>KN,scaleOrdinal:()=>cS,scalePoint:()=>$O,scalePow:()=>Iw,scaleQuantile:()=>JN,scaleQuantize:()=>$N,scaleRadial:()=>qN,scaleSequential:()=>a5,scaleSequentialLog:()=>hC,scaleSequentialPow:()=>s5,scaleSequentialQuantile:()=>l5,scaleSequentialSqrt:()=>qF,scaleSequentialSymlog:()=>mC,scaleSqrt:()=>iF,scaleSymlog:()=>YN,scaleThreshold:()=>QN,scaleTime:()=>uC,scaleUtc:()=>cC,scan:()=>I6,schemeAccent:()=>QF,schemeBlues:()=>UC,schemeBrBG:()=>yC,schemeBuGn:()=>NC,schemeBuPu:()=>xC,schemeCategory10:()=>$F,schemeDark2:()=>ZF,schemeGnBu:()=>EC,schemeGreens:()=>BC,schemeGreys:()=>DC,schemeObservable10:()=>eG,schemeOrRd:()=>CC,schemeOranges:()=>GC,schemePRGn:()=>fC,schemePaired:()=>tG,schemePastel1:()=>rG,schemePastel2:()=>oG,schemePiYG:()=>gC,schemePuBu:()=>MC,schemePuBuGn:()=>kC,schemePuOr:()=>bC,schemePuRd:()=>TC,schemePurples:()=>OC,schemeRdBu:()=>SC,schemeRdGy:()=>AC,schemeRdPu:()=>WC,schemeRdYlBu:()=>wC,schemeRdYlGn:()=>PC,schemeReds:()=>FC,schemeSet1:()=>nG,schemeSet2:()=>iG,schemeSet3:()=>aG,schemeSpectral:()=>vC,schemeTableau10:()=>sG,schemeYlGn:()=>IC,schemeYlGnBu:()=>LC,schemeYlOrBr:()=>RC,schemeYlOrRd:()=>_C,select:()=>yn,selectAll:()=>eR,selection:()=>oc,selector:()=>Np,selectorAll:()=>x1,shuffle:()=>tI,shuffler:()=>R6,some:()=>D6,sort:()=>N1,stack:()=>OV,stackOffsetDiverging:()=>GV,stackOffsetExpand:()=>FV,stackOffsetNone:()=>Kl,stackOffsetSilhouette:()=>VV,stackOffsetWiggle:()=>HV,stackOrderAppearance:()=>B5,stackOrderAscending:()=>D5,stackOrderDescending:()=>zV,stackOrderInsideOut:()=>jV,stackOrderNone:()=>Yl,stackOrderReverse:()=>XV,stratify:()=>xO,style:()=>_h,subset:()=>X6,sum:()=>_6,superset:()=>EA,svg:()=>XU,symbol:()=>JC,symbolAsterisk:()=>w5,symbolCircle:()=>gS,symbolCross:()=>P5,symbolDiamond:()=>v5,symbolDiamond2:()=>N5,symbolPlus:()=>x5,symbolSquare:()=>E5,symbolSquare2:()=>C5,symbolStar:()=>k5,symbolTimes:()=>zw,symbolTriangle:()=>M5,symbolTriangle2:()=>T5,symbolWye:()=>W5,symbolX:()=>zw,symbols:()=>qC,symbolsFill:()=>qC,symbolsStroke:()=>sV,text:()=>Vy,thresholdFreedmanDiaconis:()=>N6,thresholdScott:()=>x6,thresholdSturges:()=>Sy,tickFormat:()=>kw,tickIncrement:()=>Ul,tickStep:()=>gy,ticks:()=>Ba,timeDay:()=>gc,timeDays:()=>hF,timeFormat:()=>Fw,timeFormatDefaultLocale:()=>o5,timeFormatLocale:()=>Ow,timeFriday:()=>$E,timeFridays:()=>SF,timeHour:()=>lf,timeHours:()=>uF,timeInterval:()=>Po,timeMillisecond:()=>Xp,timeMilliseconds:()=>KE,timeMinute:()=>nf,timeMinutes:()=>sF,timeMonday:()=>hf,timeMondays:()=>yF,timeMonth:()=>df,timeMonths:()=>CF,timeParse:()=>sC,timeSaturday:()=>QE,timeSaturdays:()=>AF,timeSecond:()=>ds,timeSeconds:()=>YE,timeSunday:()=>bc,timeSundays:()=>ZE,timeThursday:()=>Yh,timeThursdays:()=>bF,timeTickInterval:()=>r5,timeTicks:()=>t5,timeTuesday:()=>qE,timeTuesdays:()=>fF,timeWednesday:()=>JE,timeWednesdays:()=>gF,timeWeek:()=>bc,timeWeeks:()=>ZE,timeYear:()=>Fa,timeYears:()=>MF,timeout:()=>VA,timer:()=>Iy,timerFlush:()=>h9,transition:()=>Ev,transpose:()=>xA,tree:()=>EO,treemap:()=>CO,treemapBinary:()=>kO,treemapDice:()=>dc,treemapResquarify:()=>TO,treemapSlice:()=>zp,treemapSliceDice:()=>MO,treemapSquarify:()=>ON,tsv:()=>GU,tsvFormat:()=>LU,tsvFormatBody:()=>IU,tsvFormatRow:()=>_U,tsvFormatRows:()=>RU,tsvFormatValue:()=>UU,tsvParse:()=>Uv,tsvParseRows:()=>WU,union:()=>K6,unixDay:()=>_w,unixDays:()=>pF,utcDay:()=>Kp,utcDays:()=>mF,utcFormat:()=>ff,utcFriday:()=>rC,utcFridays:()=>xF,utcHour:()=>uf,utcHours:()=>cF,utcMillisecond:()=>Xp,utcMilliseconds:()=>KE,utcMinute:()=>af,utcMinutes:()=>lF,utcMonday:()=>pf,utcMondays:()=>wF,utcMonth:()=>yf,utcMonths:()=>kF,utcParse:()=>Gw,utcSaturday:()=>oC,utcSaturdays:()=>EF,utcSecond:()=>ds,utcSeconds:()=>YE,utcSunday:()=>Sc,utcSundays:()=>nC,utcThursday:()=>qh,utcThursdays:()=>NF,utcTickInterval:()=>e5,utcTicks:()=>ZN,utcTuesday:()=>eC,utcTuesdays:()=>PF,utcWednesday:()=>tC,utcWednesdays:()=>vF,utcWeek:()=>Sc,utcWeeks:()=>nC,utcYear:()=>Ga,utcYears:()=>TF,variance:()=>fA,window:()=>C1,xml:()=>zU,zip:()=>U6,zoom:()=>YV,zoomIdentity:()=>AS,zoomTransform:()=>O5});function Or(r,e){return r==null||e==null?NaN:r<e?-1:r>e?1:r>=e?0:NaN}function yA(r,e){return r==null||e==null?NaN:e<r?-1:e>r?1:e>=r?0:NaN}function wp(r){let e,t,o;r.length!==2?(e=Or,t=(s,l)=>Or(r(s),l),o=(s,l)=>r(s)-l):(e=r===Or||r===yA?r:UQ,t=r,o=r);function n(s,l,u=0,c=s.length){if(u<c){if(e(l,l)!==0)return c;do{let h=u+c>>>1;t(s[h],l)<0?u=h+1:c=h}while(u<c)}return u}function i(s,l,u=0,c=s.length){if(u<c){if(e(l,l)!==0)return c;do{let h=u+c>>>1;t(s[h],l)<=0?u=h+1:c=h}while(u<c)}return u}function a(s,l,u=0,c=s.length){let h=n(s,l,u,c-1);return h>u&&o(s[h-1],l)>-o(s[h],l)?h-1:h}return{left:n,center:a,right:i}}function UQ(){return 0}function fy(r){return r===null?NaN:+r}function*RL(r,e){if(e===void 0)for(let t of r)t!=null&&(t=+t)>=t&&(yield t);else{let t=-1;for(let o of r)(o=e(o,++t,r))!=null&&(o=+o)>=o&&(yield o)}}var _L=wp(Or),f6=_L.right,UL=_L.left,BL=wp(fy).center,_a=f6;function DL(r,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let t=r.length;if(!((t=Math.floor(t))>=0))throw new RangeError("invalid length");if(!t||!e)return r;let o=g6(e),n=r.slice();return o(r,n,0,t,1),o(n,r,0,t,1),o(r,n,0,t,1),r}var B4=FL(g6),OL=FL(BQ);function FL(r){return function(e,t,o=t){if(!((t=+t)>=0))throw new RangeError("invalid rx");if(!((o=+o)>=0))throw new RangeError("invalid ry");let{data:n,width:i,height:a}=e;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(a!==void 0?a:n.length/i))>=0))throw new RangeError("invalid height");if(!i||!a||!t&&!o)return e;let s=t&&r(t),l=o&&r(o),u=n.slice();return s&&l?(w1(s,u,n,i,a),w1(s,n,u,i,a),w1(s,u,n,i,a),P1(l,n,u,i,a),P1(l,u,n,i,a),P1(l,n,u,i,a)):s?(w1(s,n,u,i,a),w1(s,u,n,i,a),w1(s,n,u,i,a)):l&&(P1(l,n,u,i,a),P1(l,u,n,i,a),P1(l,n,u,i,a)),e}}function w1(r,e,t,o,n){for(let i=0,a=o*n;i<a;)r(e,t,i,i+=o,1)}function P1(r,e,t,o,n){for(let i=0,a=o*n;i<o;++i)r(e,t,i,i+a,o)}function BQ(r){let e=g6(r);return(t,o,n,i,a)=>{n<<=2,i<<=2,a<<=2,e(t,o,n+0,i+0,a),e(t,o,n+1,i+1,a),e(t,o,n+2,i+2,a),e(t,o,n+3,i+3,a)}}function g6(r){let e=Math.floor(r);if(e===r)return DQ(r);let t=r-e,o=2*r+1;return(n,i,a,s,l)=>{if(!((s-=l)>=a))return;let u=e*i[a],c=l*e,h=c+l;for(let m=a,p=a+c;m<p;m+=l)u+=i[Math.min(s,m)];for(let m=a,p=s;m<=p;m+=l)u+=i[Math.min(s,m+c)],n[m]=(u+t*(i[Math.max(a,m-h)]+i[Math.min(s,m+h)]))/o,u-=i[Math.max(a,m-c)]}}function DQ(r){let e=2*r+1;return(t,o,n,i,a)=>{if(!((i-=a)>=n))return;let s=r*o[n],l=a*r;for(let u=n,c=n+l;u<c;u+=a)s+=o[Math.min(i,u)];for(let u=n,c=i;u<=c;u+=a)s+=o[Math.min(i,u+l)],t[u]=s/e,s-=o[Math.max(n,u-l)]}}function Th(r,e){let t=0;if(e===void 0)for(let o of r)o!=null&&(o=+o)>=o&&++t;else{let o=-1;for(let n of r)(n=e(n,++o,r))!=null&&(n=+n)>=n&&++t}return t}function OQ(r){return r.length|0}function FQ(r){return!(r>0)}function GQ(r){return typeof r!="object"||"length"in r?r:Array.from(r)}function VQ(r){return e=>r(...e)}function b6(...r){let e=typeof r[r.length-1]=="function"&&VQ(r.pop());r=r.map(GQ);let t=r.map(OQ),o=r.length-1,n=new Array(o+1).fill(0),i=[];if(o<0||t.some(FQ))return i;for(;;){i.push(n.map((s,l)=>r[l][s]));let a=o;for(;++n[a]===t[a];){if(a===0)return e?i.map(e):i;n[a--]=0}}}function S6(r,e){var t=0,o=0;return Float64Array.from(r,e===void 0?n=>t+=+n||0:n=>t+=+e(n,o++,r)||0)}function fA(r,e){let t=0,o,n=0,i=0;if(e===void 0)for(let a of r)a!=null&&(a=+a)>=a&&(o=a-n,n+=o/++t,i+=o*(a-n));else{let a=-1;for(let s of r)(s=e(s,++a,r))!=null&&(s=+s)>=s&&(o=s-n,n+=o/++t,i+=o*(s-n))}if(t>1)return i/(t-1)}function gA(r,e){let t=fA(r,e);return t&&Math.sqrt(t)}function Wh(r,e){let t,o;if(e===void 0)for(let n of r)n!=null&&(t===void 0?n>=n&&(t=o=n):(t>n&&(t=n),o<n&&(o=n)));else{let n=-1;for(let i of r)(i=e(i,++n,r))!=null&&(t===void 0?i>=i&&(t=o=i):(t>i&&(t=i),o<i&&(o=i)))}return[t,o]}var wo=class{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){let t=this._partials,o=0;for(let n=0;n<this._n&&n<32;n++){let i=t[n],a=e+i,s=Math.abs(e)<Math.abs(i)?e-(a-i):i-(a-e);s&&(t[o++]=s),e=a}return t[o]=e,this._n=o+1,this}valueOf(){let e=this._partials,t=this._n,o,n,i,a=0;if(t>0){for(a=e[--t];t>0&&(o=a,n=e[--t],a=o+n,i=n-(a-o),!i););t>0&&(i<0&&e[t-1]<0||i>0&&e[t-1]>0)&&(n=i*2,o=a+n,n==o-a&&(a=o))}return a}};function GL(r,e){let t=new wo;if(e===void 0)for(let o of r)(o=+o)&&t.add(o);else{let o=-1;for(let n of r)(n=+e(n,++o,r))&&t.add(n)}return+t}function VL(r,e){let t=new wo,o=-1;return Float64Array.from(r,e===void 0?n=>t.add(+n||0):n=>t.add(+e(n,++o,r)||0))}var _l=class extends Map{constructor(e,t=jL){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[o,n]of e)this.set(o,n)}get(e){return super.get(A6(this,e))}has(e){return super.has(A6(this,e))}set(e,t){return super.set(HL(this,e),t)}delete(e){return super.delete(zL(this,e))}},Ua=class extends Set{constructor(e,t=jL){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let o of e)this.add(o)}has(e){return super.has(A6(this,e))}add(e){return super.add(HL(this,e))}delete(e){return super.delete(zL(this,e))}};function A6({_intern:r,_key:e},t){let o=e(t);return r.has(o)?r.get(o):t}function HL({_intern:r,_key:e},t){let o=e(t);return r.has(o)?r.get(o):(r.set(o,t),t)}function zL({_intern:r,_key:e},t){let o=e(t);return r.has(o)&&(t=r.get(o),r.delete(o)),t}function jL(r){return r!==null&&typeof r=="object"?r.valueOf():r}function Lh(r){return r}function bA(r,...e){return v1(r,Lh,Lh,e)}function w6(r,...e){return v1(r,Array.from,Lh,e)}function XL(r,e){for(let t=1,o=e.length;t<o;++t)r=r.flatMap(n=>n.pop().map(([i,a])=>[...n,i,a]));return r}function KL(r,...e){return XL(w6(r,...e),e)}function YL(r,e,...t){return XL(P6(r,e,...t),t)}function D4(r,e,...t){return v1(r,Lh,e,t)}function P6(r,e,...t){return v1(r,Array.from,e,t)}function qL(r,...e){return v1(r,Lh,$L,e)}function JL(r,...e){return v1(r,Array.from,$L,e)}function $L(r){if(r.length!==1)throw new Error("duplicate key");return r[0]}function v1(r,e,t,o){return(function n(i,a){if(a>=o.length)return t(i);let s=new _l,l=o[a++],u=-1;for(let c of i){let h=l(c,++u,i),m=s.get(h);m?m.push(c):s.set(h,[c])}for(let[c,h]of s)s.set(c,n(h,a));return e(s)})(r,0)}function SA(r,e){return Array.from(e,t=>r[t])}function N1(r,...e){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");r=Array.from(r);let[t]=e;if(t&&t.length!==2||e.length>1){let o=Uint32Array.from(r,(n,i)=>i);return e.length>1?(e=e.map(n=>r.map(n)),o.sort((n,i)=>{for(let a of e){let s=Ih(a[n],a[i]);if(s)return s}})):(t=r.map(t),o.sort((n,i)=>Ih(t[n],t[i]))),SA(r,o)}return r.sort(AA(t))}function AA(r=Or){if(r===Or)return Ih;if(typeof r!="function")throw new TypeError("compare is not a function");return(e,t)=>{let o=r(e,t);return o||o===0?o:(r(t,t)===0)-(r(e,e)===0)}}function Ih(r,e){return(r==null||!(r>=r))-(e==null||!(e>=e))||(r<e?-1:r>e?1:0)}function v6(r,e,t){return(e.length!==2?N1(D4(r,e,t),(([o,n],[i,a])=>Or(n,a)||Or(o,i))):N1(bA(r,t),(([o,n],[i,a])=>e(n,a)||Or(o,i)))).map(([o])=>o)}var QL=Array.prototype,ZL=QL.slice,YOe=QL.map;function wA(r){return()=>r}var HQ=Math.sqrt(50),zQ=Math.sqrt(10),jQ=Math.sqrt(2);function O4(r,e,t){let o=(e-r)/Math.max(0,t),n=Math.floor(Math.log10(o)),i=o/Math.pow(10,n),a=i>=HQ?10:i>=zQ?5:i>=jQ?2:1,s,l,u;return n<0?(u=Math.pow(10,-n)/a,s=Math.round(r*u),l=Math.round(e*u),s/u<r&&++s,l/u>e&&--l,u=-u):(u=Math.pow(10,n)*a,s=Math.round(r/u),l=Math.round(e/u),s*u<r&&++s,l*u>e&&--l),l<s&&.5<=t&&t<2?O4(r,e,t*2):[s,l,u]}function Ba(r,e,t){if(e=+e,r=+r,t=+t,!(t>0))return[];if(r===e)return[r];let o=e<r,[n,i,a]=o?O4(e,r,t):O4(r,e,t);if(!(i>=n))return[];let s=i-n+1,l=new Array(s);if(o)if(a<0)for(let u=0;u<s;++u)l[u]=(i-u)/-a;else for(let u=0;u<s;++u)l[u]=(i-u)*a;else if(a<0)for(let u=0;u<s;++u)l[u]=(n+u)/-a;else for(let u=0;u<s;++u)l[u]=(n+u)*a;return l}function Ul(r,e,t){return e=+e,r=+r,t=+t,O4(r,e,t)[2]}function gy(r,e,t){e=+e,r=+r,t=+t;let o=e<r,n=o?Ul(e,r,t):Ul(r,e,t);return(o?-1:1)*(n<0?1/-n:n)}function by(r,e,t){let o;for(;;){let n=Ul(r,e,t);if(n===o||n===0||!isFinite(n))return[r,e];n>0?(r=Math.floor(r/n)*n,e=Math.ceil(e/n)*n):n<0&&(r=Math.ceil(r*n)/n,e=Math.floor(e*n)/n),o=n}}function Sy(r){return Math.max(1,Math.ceil(Math.log(Th(r))/Math.LN2)+1)}function F4(){var r=Lh,e=Wh,t=Sy;function o(n){Array.isArray(n)||(n=Array.from(n));var i,a=n.length,s,l,u=new Array(a);for(i=0;i<a;++i)u[i]=r(n[i],i,n);var c=e(u),h=c[0],m=c[1],p=t(u,h,m);if(!Array.isArray(p)){let P=m,A=+p;if(e===Wh&&([h,m]=by(h,m,A)),p=Ba(h,m,A),p[0]<=h&&(l=Ul(h,m,A)),p[p.length-1]>=m)if(P>=m&&e===Wh){let M=Ul(h,m,A);isFinite(M)&&(M>0?m=(Math.floor(m/M)+1)*M:M<0&&(m=(Math.ceil(m*-M)+1)/-M))}else p.pop()}for(var g=p.length,d=0,f=g;p[d]<=h;)++d;for(;p[f-1]>m;)--f;(d||f<g)&&(p=p.slice(d,f),g=f-d);var b=new Array(g+1),w;for(i=0;i<=g;++i)w=b[i]=[],w.x0=i>0?p[i-1]:h,w.x1=i<g?p[i]:m;if(isFinite(l)){if(l>0)for(i=0;i<a;++i)(s=u[i])!=null&&h<=s&&s<=m&&b[Math.min(g,Math.floor((s-h)/l))].push(n[i]);else if(l<0){for(i=0;i<a;++i)if((s=u[i])!=null&&h<=s&&s<=m){let P=Math.floor((h-s)*l);b[Math.min(g,P+(p[P]<=s))].push(n[i])}}}else for(i=0;i<a;++i)(s=u[i])!=null&&h<=s&&s<=m&&b[_a(p,s,0,g)].push(n[i]);return b}return o.value=function(n){return arguments.length?(r=typeof n=="function"?n:wA(n),o):r},o.domain=function(n){return arguments.length?(e=typeof n=="function"?n:wA([n[0],n[1]]),o):e},o.thresholds=function(n){return arguments.length?(t=typeof n=="function"?n:wA(Array.isArray(n)?ZL.call(n):n),o):t},o}function Rh(r,e){let t;if(e===void 0)for(let o of r)o!=null&&(t<o||t===void 0&&o>=o)&&(t=o);else{let o=-1;for(let n of r)(n=e(n,++o,r))!=null&&(t<n||t===void 0&&n>=n)&&(t=n)}return t}function Ay(r,e){let t,o=-1,n=-1;if(e===void 0)for(let i of r)++n,i!=null&&(t<i||t===void 0&&i>=i)&&(t=i,o=n);else for(let i of r)(i=e(i,++n,r))!=null&&(t<i||t===void 0&&i>=i)&&(t=i,o=n);return o}function Pp(r,e){let t;if(e===void 0)for(let o of r)o!=null&&(t>o||t===void 0&&o>=o)&&(t=o);else{let o=-1;for(let n of r)(n=e(n,++o,r))!=null&&(t>n||t===void 0&&n>=n)&&(t=n)}return t}function wy(r,e){let t,o=-1,n=-1;if(e===void 0)for(let i of r)++n,i!=null&&(t>i||t===void 0&&i>=i)&&(t=i,o=n);else for(let i of r)(i=e(i,++n,r))!=null&&(t>i||t===void 0&&i>=i)&&(t=i,o=n);return o}function Py(r,e,t=0,o=1/0,n){if(e=Math.floor(e),t=Math.floor(Math.max(0,t)),o=Math.floor(Math.min(r.length-1,o)),!(t<=e&&e<=o))return r;for(n=n===void 0?Ih:AA(n);o>t;){if(o-t>600){let l=o-t+1,u=e-t+1,c=Math.log(l),h=.5*Math.exp(2*c/3),m=.5*Math.sqrt(c*h*(l-h)/l)*(u-l/2<0?-1:1),p=Math.max(t,Math.floor(e-u*h/l+m)),g=Math.min(o,Math.floor(e+(l-u)*h/l+m));Py(r,e,p,g,n)}let i=r[e],a=t,s=o;for(PA(r,t,e),n(r[o],i)>0&&PA(r,t,o);a<s;){for(PA(r,a,s),++a,--s;n(r[a],i)<0;)++a;for(;n(r[s],i)>0;)--s}n(r[t],i)===0?PA(r,t,s):(++s,PA(r,s,o)),s<=e&&(t=s+1),e<=s&&(o=s-1)}return r}function PA(r,e,t){let o=r[e];r[e]=r[t],r[t]=o}function vA(r,e=Or){let t,o=!1;if(e.length===1){let n;for(let i of r){let a=e(i);(o?Or(a,n)>0:Or(a,a)===0)&&(t=i,n=a,o=!0)}}else for(let n of r)(o?e(n,t)>0:e(n,n)===0)&&(t=n,o=!0);return t}function tc(r,e,t){if(r=Float64Array.from(RL(r,t)),!(!(o=r.length)||isNaN(e=+e))){if(e<=0||o<2)return Pp(r);if(e>=1)return Rh(r);var o,n=(o-1)*e,i=Math.floor(n),a=Rh(Py(r,i).subarray(0,i+1)),s=Pp(r.subarray(i+1));return a+(s-a)*(n-i)}}function G4(r,e,t=fy){if(!(!(o=r.length)||isNaN(e=+e))){if(e<=0||o<2)return+t(r[0],0,r);if(e>=1)return+t(r[o-1],o-1,r);var o,n=(o-1)*e,i=Math.floor(n),a=+t(r[i],i,r),s=+t(r[i+1],i+1,r);return a+(s-a)*(n-i)}}function V4(r,e,t=fy){if(!isNaN(e=+e)){if(o=Float64Array.from(r,(s,l)=>fy(t(r[l],l,r))),e<=0)return wy(o);if(e>=1)return Ay(o);var o,n=Uint32Array.from(r,(s,l)=>l),i=o.length-1,a=Math.floor(i*e);return Py(n,a,0,i,(s,l)=>Ih(o[s],o[l])),a=vA(n.subarray(0,a+1),s=>o[s]),a>=0?a:-1}}function N6(r,e,t){let o=Th(r),n=tc(r,.75)-tc(r,.25);return o&&n?Math.ceil((t-e)/(2*n*Math.pow(o,-1/3))):1}function x6(r,e,t){let o=Th(r),n=gA(r);return o&&n?Math.ceil((t-e)*Math.cbrt(o)/(3.49*n)):1}function E6(r,e){let t=0,o=0;if(e===void 0)for(let n of r)n!=null&&(n=+n)>=n&&(++t,o+=n);else{let n=-1;for(let i of r)(i=e(i,++n,r))!=null&&(i=+i)>=i&&(++t,o+=i)}if(t)return o/t}function C6(r,e){return tc(r,.5,e)}function eI(r,e){return V4(r,.5,e)}function*XQ(r){for(let e of r)yield*e}function vy(r){return Array.from(XQ(r))}function k6(r,e){let t=new _l;if(e===void 0)for(let i of r)i!=null&&i>=i&&t.set(i,(t.get(i)||0)+1);else{let i=-1;for(let a of r)(a=e(a,++i,r))!=null&&a>=a&&t.set(a,(t.get(a)||0)+1)}let o,n=0;for(let[i,a]of t)a>n&&(n=a,o=i);return o}function M6(r,e=KQ){let t=[],o,n=!1;for(let i of r)n&&t.push(e(o,i)),o=i,n=!0;return t}function KQ(r,e){return[r,e]}function js(r,e,t){r=+r,e=+e,t=(n=arguments.length)<2?(e=r,r=0,1):n<3?1:+t;for(var o=-1,n=Math.max(0,Math.ceil((e-r)/t))|0,i=new Array(n);++o<n;)i[o]=r+o*t;return i}function T6(r,e=Or){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");let t=Array.from(r),o=new Float64Array(t.length);e.length!==2&&(t=t.map(e),e=Or);let n=(s,l)=>e(t[s],t[l]),i,a;return r=Uint32Array.from(t,(s,l)=>l),r.sort(e===Or?(s,l)=>Ih(t[s],t[l]):AA(n)),r.forEach((s,l)=>{let u=n(s,i===void 0?s:i);u>=0?((i===void 0||u>0)&&(i=s,a=l),o[s]=a):o[s]=NaN}),o}function W6(r,e=Or){let t,o=!1;if(e.length===1){let n;for(let i of r){let a=e(i);(o?Or(a,n)<0:Or(a,a)===0)&&(t=i,n=a,o=!0)}}else for(let n of r)(o?e(n,t)<0:e(n,n)===0)&&(t=n,o=!0);return t}function NA(r,e=Or){if(e.length===1)return wy(r,e);let t,o=-1,n=-1;for(let i of r)++n,(o<0?e(i,i)===0:e(i,t)<0)&&(t=i,o=n);return o}function L6(r,e=Or){if(e.length===1)return Ay(r,e);let t,o=-1,n=-1;for(let i of r)++n,(o<0?e(i,i)===0:e(i,t)>0)&&(t=i,o=n);return o}function I6(r,e){let t=NA(r,e);return t<0?void 0:t}var tI=R6(Math.random);function R6(r){return function(t,o=0,n=t.length){let i=n-(o=+o);for(;i;){let a=r()*i--|0,s=t[i+o];t[i+o]=t[a+o],t[a+o]=s}return t}}function _6(r,e){let t=0;if(e===void 0)for(let o of r)(o=+o)&&(t+=o);else{let o=-1;for(let n of r)(n=+e(n,++o,r))&&(t+=n)}return t}function xA(r){if(!(i=r.length))return[];for(var e=-1,t=Pp(r,YQ),o=new Array(t);++e<t;)for(var n=-1,i,a=o[e]=new Array(i);++n<i;)a[n]=r[n][e];return o}function YQ(r){return r.length}function U6(){return xA(arguments)}function B6(r,e){if(typeof e!="function")throw new TypeError("test is not a function");let t=-1;for(let o of r)if(!e(o,++t,r))return!1;return!0}function D6(r,e){if(typeof e!="function")throw new TypeError("test is not a function");let t=-1;for(let o of r)if(e(o,++t,r))return!0;return!1}function O6(r,e){if(typeof e!="function")throw new TypeError("test is not a function");let t=[],o=-1;for(let n of r)e(n,++o,r)&&t.push(n);return t}function F6(r,e){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");if(typeof e!="function")throw new TypeError("mapper is not a function");return Array.from(r,(t,o)=>e(t,o,r))}function G6(r,e,t){if(typeof e!="function")throw new TypeError("reducer is not a function");let o=r[Symbol.iterator](),n,i,a=-1;if(arguments.length<3){if({done:n,value:t}=o.next(),n)return;++a}for(;{done:n,value:i}=o.next(),!n;)t=e(t,i,++a,r);return t}function V6(r){if(typeof r[Symbol.iterator]!="function")throw new TypeError("values is not iterable");return Array.from(r).reverse()}function H6(r,...e){r=new Ua(r);for(let t of e)for(let o of t)r.delete(o);return r}function z6(r,e){let t=e[Symbol.iterator](),o=new Ua;for(let n of r){if(o.has(n))return!1;let i,a;for(;({value:i,done:a}=t.next())&&!a;){if(Object.is(n,i))return!1;o.add(i)}}return!0}function j6(r,...e){r=new Ua(r),e=e.map(qQ);e:for(let t of r)for(let o of e)if(!o.has(t)){r.delete(t);continue e}return r}function qQ(r){return r instanceof Ua?r:new Ua(r)}function EA(r,e){let t=r[Symbol.iterator](),o=new Set;for(let n of e){let i=rI(n);if(o.has(i))continue;let a,s;for(;{value:a,done:s}=t.next();){if(s)return!1;let l=rI(a);if(o.add(l),Object.is(i,l))break}}return!0}function rI(r){return r!==null&&typeof r=="object"?r.valueOf():r}function X6(r,e){return EA(e,r)}function K6(...r){let e=new Ua;for(let t of r)for(let o of t)e.add(o);return e}function oI(r){return r}var H4=1,z4=2,Y6=3,CA=4,nI=1e-6;function JQ(r){return"translate("+r+",0)"}function $Q(r){return"translate(0,"+r+")"}function QQ(r){return e=>+r(e)}function ZQ(r,e){return e=Math.max(0,r.bandwidth()-e*2)/2,r.round()&&(e=Math.round(e)),t=>+r(t)+e}function eZ(){return!this.__axis}function j4(r,e){var t=[],o=null,n=null,i=6,a=6,s=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=r===H4||r===CA?-1:1,c=r===CA||r===z4?"x":"y",h=r===H4||r===Y6?JQ:$Q;function m(p){var g=o??(e.ticks?e.ticks.apply(e,t):e.domain()),d=n??(e.tickFormat?e.tickFormat.apply(e,t):oI),f=Math.max(i,0)+s,b=e.range(),w=+b[0]+l,P=+b[b.length-1]+l,A=(e.bandwidth?ZQ:QQ)(e.copy(),l),M=p.selection?p.selection():p,E=M.selectAll(".domain").data([null]),U=M.selectAll(".tick").data(g,e).order(),F=U.exit(),L=U.enter().append("g").attr("class","tick"),T=U.select("line"),v=U.select("text");E=E.merge(E.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),U=U.merge(L),T=T.merge(L.append("line").attr("stroke","currentColor").attr(c+"2",u*i)),v=v.merge(L.append("text").attr("fill","currentColor").attr(c,u*f).attr("dy",r===H4?"0em":r===Y6?"0.71em":"0.32em")),p!==M&&(E=E.transition(p),U=U.transition(p),T=T.transition(p),v=v.transition(p),F=F.transition(p).attr("opacity",nI).attr("transform",function(I){return isFinite(I=A(I))?h(I+l):this.getAttribute("transform")}),L.attr("opacity",nI).attr("transform",function(I){var D=this.parentNode.__axis;return h((D&&isFinite(D=D(I))?D:A(I))+l)})),F.remove(),E.attr("d",r===CA||r===z4?a?"M"+u*a+","+w+"H"+l+"V"+P+"H"+u*a:"M"+l+","+w+"V"+P:a?"M"+w+","+u*a+"V"+l+"H"+P+"V"+u*a:"M"+w+","+l+"H"+P),U.attr("opacity",1).attr("transform",function(I){return h(A(I)+l)}),T.attr(c+"2",u*i),v.attr(c,u*f).text(d),M.filter(eZ).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",r===z4?"start":r===CA?"end":"middle"),M.each(function(){this.__axis=A})}return m.scale=function(p){return arguments.length?(e=p,m):e},m.ticks=function(){return t=Array.from(arguments),m},m.tickArguments=function(p){return arguments.length?(t=p==null?[]:Array.from(p),m):t.slice()},m.tickValues=function(p){return arguments.length?(o=p==null?null:Array.from(p),m):o&&o.slice()},m.tickFormat=function(p){return arguments.length?(n=p,m):n},m.tickSize=function(p){return arguments.length?(i=a=+p,m):i},m.tickSizeInner=function(p){return arguments.length?(i=+p,m):i},m.tickSizeOuter=function(p){return arguments.length?(a=+p,m):a},m.tickPadding=function(p){return arguments.length?(s=+p,m):s},m.offset=function(p){return arguments.length?(l=+p,m):l},m}function iI(r){return j4(H4,r)}function aI(r){return j4(z4,r)}function sI(r){return j4(Y6,r)}function lI(r){return j4(CA,r)}var tZ={value:()=>{}};function cI(){for(var r=0,e=arguments.length,t={},o;r<e;++r){if(!(o=arguments[r]+"")||o in t||/[\s.]/.test(o))throw new Error("illegal type: "+o);t[o]=[]}return new X4(t)}function X4(r){this._=r}function rZ(r,e){return r.trim().split(/^|\s+/).map(function(t){var o="",n=t.indexOf(".");if(n>=0&&(o=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:o}})}X4.prototype=cI.prototype={constructor:X4,on:function(r,e){var t=this._,o=rZ(r+"",t),n,i=-1,a=o.length;if(arguments.length<2){for(;++i<a;)if((n=(r=o[i]).type)&&(n=oZ(t[n],r.name)))return n;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++i<a;)if(n=(r=o[i]).type)t[n]=uI(t[n],r.name,e);else if(e==null)for(n in t)t[n]=uI(t[n],r.name,null);return this},copy:function(){var r={},e=this._;for(var t in e)r[t]=e[t].slice();return new X4(r)},call:function(r,e){if((n=arguments.length-2)>0)for(var t=new Array(n),o=0,n,i;o<n;++o)t[o]=arguments[o+2];if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(i=this._[r],o=0,n=i.length;o<n;++o)i[o].value.apply(e,t)},apply:function(r,e,t){if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(var o=this._[r],n=0,i=o.length;n<i;++n)o[n].value.apply(e,t)}};function oZ(r,e){for(var t=0,o=r.length,n;t<o;++t)if((n=r[t]).name===e)return n.value}function uI(r,e,t){for(var o=0,n=r.length;o<n;++o)if(r[o].name===e){r[o]=tZ,r=r.slice(0,o).concat(r.slice(o+1));break}return t!=null&&r.push({name:e,value:t}),r}var Xs=cI;var K4="http://www.w3.org/1999/xhtml",kA={svg:"http://www.w3.org/2000/svg",xhtml:K4,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function rc(r){var e=r+="",t=e.indexOf(":");return t>=0&&(e=r.slice(0,t))!=="xmlns"&&(r=r.slice(t+1)),kA.hasOwnProperty(e)?{space:kA[e],local:r}:r}function nZ(r){return function(){var e=this.ownerDocument,t=this.namespaceURI;return t===K4&&e.documentElement.namespaceURI===K4?e.createElement(r):e.createElementNS(t,r)}}function iZ(r){return function(){return this.ownerDocument.createElementNS(r.space,r.local)}}function vp(r){var e=rc(r);return(e.local?iZ:nZ)(e)}function aZ(){}function Np(r){return r==null?aZ:function(){return this.querySelector(r)}}function hI(r){typeof r!="function"&&(r=Np(r));for(var e=this._groups,t=e.length,o=new Array(t),n=0;n<t;++n)for(var i=e[n],a=i.length,s=o[n]=new Array(a),l,u,c=0;c<a;++c)(l=i[c])&&(u=r.call(l,l.__data__,c,i))&&("__data__"in l&&(u.__data__=l.__data__),s[c]=u);return new zo(o,this._parents)}function MA(r){return r==null?[]:Array.isArray(r)?r:Array.from(r)}function sZ(){return[]}function x1(r){return r==null?sZ:function(){return this.querySelectorAll(r)}}function lZ(r){return function(){return MA(r.apply(this,arguments))}}function mI(r){typeof r=="function"?r=lZ(r):r=x1(r);for(var e=this._groups,t=e.length,o=[],n=[],i=0;i<t;++i)for(var a=e[i],s=a.length,l,u=0;u<s;++u)(l=a[u])&&(o.push(r.call(l,l.__data__,u,a)),n.push(l));return new zo(o,n)}function E1(r){return function(){return this.matches(r)}}function Y4(r){return function(e){return e.matches(r)}}var uZ=Array.prototype.find;function cZ(r){return function(){return uZ.call(this.children,r)}}function hZ(){return this.firstElementChild}function pI(r){return this.select(r==null?hZ:cZ(typeof r=="function"?r:Y4(r)))}var mZ=Array.prototype.filter;function pZ(){return Array.from(this.children)}function dZ(r){return function(){return mZ.call(this.children,r)}}function dI(r){return this.selectAll(r==null?pZ:dZ(typeof r=="function"?r:Y4(r)))}function yI(r){typeof r!="function"&&(r=E1(r));for(var e=this._groups,t=e.length,o=new Array(t),n=0;n<t;++n)for(var i=e[n],a=i.length,s=o[n]=[],l,u=0;u<a;++u)(l=i[u])&&r.call(l,l.__data__,u,i)&&s.push(l);return new zo(o,this._parents)}function q4(r){return new Array(r.length)}function fI(){return new zo(this._enter||this._groups.map(q4),this._parents)}function TA(r,e){this.ownerDocument=r.ownerDocument,this.namespaceURI=r.namespaceURI,this._next=null,this._parent=r,this.__data__=e}TA.prototype={constructor:TA,appendChild:function(r){return this._parent.insertBefore(r,this._next)},insertBefore:function(r,e){return this._parent.insertBefore(r,e)},querySelector:function(r){return this._parent.querySelector(r)},querySelectorAll:function(r){return this._parent.querySelectorAll(r)}};function gI(r){return function(){return r}}function yZ(r,e,t,o,n,i){for(var a=0,s,l=e.length,u=i.length;a<u;++a)(s=e[a])?(s.__data__=i[a],o[a]=s):t[a]=new TA(r,i[a]);for(;a<l;++a)(s=e[a])&&(n[a]=s)}function fZ(r,e,t,o,n,i,a){var s,l,u=new Map,c=e.length,h=i.length,m=new Array(c),p;for(s=0;s<c;++s)(l=e[s])&&(m[s]=p=a.call(l,l.__data__,s,e)+"",u.has(p)?n[s]=l:u.set(p,l));for(s=0;s<h;++s)p=a.call(r,i[s],s,i)+"",(l=u.get(p))?(o[s]=l,l.__data__=i[s],u.delete(p)):t[s]=new TA(r,i[s]);for(s=0;s<c;++s)(l=e[s])&&u.get(m[s])===l&&(n[s]=l)}function gZ(r){return r.__data__}function bI(r,e){if(!arguments.length)return Array.from(this,gZ);var t=e?fZ:yZ,o=this._parents,n=this._groups;typeof r!="function"&&(r=gI(r));for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(i),u=0;u<i;++u){var c=o[u],h=n[u],m=h.length,p=bZ(r.call(c,c&&c.__data__,u,o)),g=p.length,d=s[u]=new Array(g),f=a[u]=new Array(g),b=l[u]=new Array(m);t(c,h,d,f,b,p,e);for(var w=0,P=0,A,M;w<g;++w)if(A=d[w]){for(w>=P&&(P=w+1);!(M=f[P])&&++P<g;);A._next=M||null}}return a=new zo(a,o),a._enter=s,a._exit=l,a}function bZ(r){return typeof r=="object"&&"length"in r?r:Array.from(r)}function SI(){return new zo(this._exit||this._groups.map(q4),this._parents)}function AI(r,e,t){var o=this.enter(),n=this,i=this.exit();return typeof r=="function"?(o=r(o),o&&(o=o.selection())):o=o.append(r+""),e!=null&&(n=e(n),n&&(n=n.selection())),t==null?i.remove():t(i),o&&n?o.merge(n).order():n}function wI(r){for(var e=r.selection?r.selection():r,t=this._groups,o=e._groups,n=t.length,i=o.length,a=Math.min(n,i),s=new Array(n),l=0;l<a;++l)for(var u=t[l],c=o[l],h=u.length,m=s[l]=new Array(h),p,g=0;g<h;++g)(p=u[g]||c[g])&&(m[g]=p);for(;l<n;++l)s[l]=t[l];return new zo(s,this._parents)}function PI(){for(var r=this._groups,e=-1,t=r.length;++e<t;)for(var o=r[e],n=o.length-1,i=o[n],a;--n>=0;)(a=o[n])&&(i&&a.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(a,i),i=a);return this}function vI(r){r||(r=SZ);function e(h,m){return h&&m?r(h.__data__,m.__data__):!h-!m}for(var t=this._groups,o=t.length,n=new Array(o),i=0;i<o;++i){for(var a=t[i],s=a.length,l=n[i]=new Array(s),u,c=0;c<s;++c)(u=a[c])&&(l[c]=u);l.sort(e)}return new zo(n,this._parents).order()}function SZ(r,e){return r<e?-1:r>e?1:r>=e?0:NaN}function NI(){var r=arguments[0];return arguments[0]=this,r.apply(null,arguments),this}function xI(){return Array.from(this)}function EI(){for(var r=this._groups,e=0,t=r.length;e<t;++e)for(var o=r[e],n=0,i=o.length;n<i;++n){var a=o[n];if(a)return a}return null}function CI(){let r=0;for(let e of this)++r;return r}function kI(){return!this.node()}function MI(r){for(var e=this._groups,t=0,o=e.length;t<o;++t)for(var n=e[t],i=0,a=n.length,s;i<a;++i)(s=n[i])&&r.call(s,s.__data__,i,n);return this}function AZ(r){return function(){this.removeAttribute(r)}}function wZ(r){return function(){this.removeAttributeNS(r.space,r.local)}}function PZ(r,e){return function(){this.setAttribute(r,e)}}function vZ(r,e){return function(){this.setAttributeNS(r.space,r.local,e)}}function NZ(r,e){return function(){var t=e.apply(this,arguments);t==null?this.removeAttribute(r):this.setAttribute(r,t)}}function xZ(r,e){return function(){var t=e.apply(this,arguments);t==null?this.removeAttributeNS(r.space,r.local):this.setAttributeNS(r.space,r.local,t)}}function TI(r,e){var t=rc(r);if(arguments.length<2){var o=this.node();return t.local?o.getAttributeNS(t.space,t.local):o.getAttribute(t)}return this.each((e==null?t.local?wZ:AZ:typeof e=="function"?t.local?xZ:NZ:t.local?vZ:PZ)(t,e))}function C1(r){return r.ownerDocument&&r.ownerDocument.defaultView||r.document&&r||r.defaultView}function EZ(r){return function(){this.style.removeProperty(r)}}function CZ(r,e,t){return function(){this.style.setProperty(r,e,t)}}function kZ(r,e,t){return function(){var o=e.apply(this,arguments);o==null?this.style.removeProperty(r):this.style.setProperty(r,o,t)}}function WI(r,e,t){return arguments.length>1?this.each((e==null?EZ:typeof e=="function"?kZ:CZ)(r,e,t??"")):_h(this.node(),r)}function _h(r,e){return r.style.getPropertyValue(e)||C1(r).getComputedStyle(r,null).getPropertyValue(e)}function MZ(r){return function(){delete this[r]}}function TZ(r,e){return function(){this[r]=e}}function WZ(r,e){return function(){var t=e.apply(this,arguments);t==null?delete this[r]:this[r]=t}}function LI(r,e){return arguments.length>1?this.each((e==null?MZ:typeof e=="function"?WZ:TZ)(r,e)):this.node()[r]}function II(r){return r.trim().split(/^|\s+/)}function q6(r){return r.classList||new RI(r)}function RI(r){this._node=r,this._names=II(r.getAttribute("class")||"")}RI.prototype={add:function(r){var e=this._names.indexOf(r);e<0&&(this._names.push(r),this._node.setAttribute("class",this._names.join(" ")))},remove:function(r){var e=this._names.indexOf(r);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(r){return this._names.indexOf(r)>=0}};function _I(r,e){for(var t=q6(r),o=-1,n=e.length;++o<n;)t.add(e[o])}function UI(r,e){for(var t=q6(r),o=-1,n=e.length;++o<n;)t.remove(e[o])}function LZ(r){return function(){_I(this,r)}}function IZ(r){return function(){UI(this,r)}}function RZ(r,e){return function(){(e.apply(this,arguments)?_I:UI)(this,r)}}function BI(r,e){var t=II(r+"");if(arguments.length<2){for(var o=q6(this.node()),n=-1,i=t.length;++n<i;)if(!o.contains(t[n]))return!1;return!0}return this.each((typeof e=="function"?RZ:e?LZ:IZ)(t,e))}function _Z(){this.textContent=""}function UZ(r){return function(){this.textContent=r}}function BZ(r){return function(){var e=r.apply(this,arguments);this.textContent=e??""}}function DI(r){return arguments.length?this.each(r==null?_Z:(typeof r=="function"?BZ:UZ)(r)):this.node().textContent}function DZ(){this.innerHTML=""}function OZ(r){return function(){this.innerHTML=r}}function FZ(r){return function(){var e=r.apply(this,arguments);this.innerHTML=e??""}}function OI(r){return arguments.length?this.each(r==null?DZ:(typeof r=="function"?FZ:OZ)(r)):this.node().innerHTML}function GZ(){this.nextSibling&&this.parentNode.appendChild(this)}function FI(){return this.each(GZ)}function VZ(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function GI(){return this.each(VZ)}function VI(r){var e=typeof r=="function"?r:vp(r);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function HZ(){return null}function HI(r,e){var t=typeof r=="function"?r:vp(r),o=e==null?HZ:typeof e=="function"?e:Np(e);return this.select(function(){return this.insertBefore(t.apply(this,arguments),o.apply(this,arguments)||null)})}function zZ(){var r=this.parentNode;r&&r.removeChild(this)}function zI(){return this.each(zZ)}function jZ(){var r=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(r,this.nextSibling):r}function XZ(){var r=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(r,this.nextSibling):r}function jI(r){return this.select(r?XZ:jZ)}function XI(r){return arguments.length?this.property("__data__",r):this.node().__data__}function KZ(r){return function(e){r.call(this,e,this.__data__)}}function YZ(r){return r.trim().split(/^|\s+/).map(function(e){var t="",o=e.indexOf(".");return o>=0&&(t=e.slice(o+1),e=e.slice(0,o)),{type:e,name:t}})}function qZ(r){return function(){var e=this.__on;if(e){for(var t=0,o=-1,n=e.length,i;t<n;++t)i=e[t],(!r.type||i.type===r.type)&&i.name===r.name?this.removeEventListener(i.type,i.listener,i.options):e[++o]=i;++o?e.length=o:delete this.__on}}}function JZ(r,e,t){return function(){var o=this.__on,n,i=KZ(e);if(o){for(var a=0,s=o.length;a<s;++a)if((n=o[a]).type===r.type&&n.name===r.name){this.removeEventListener(n.type,n.listener,n.options),this.addEventListener(n.type,n.listener=i,n.options=t),n.value=e;return}}this.addEventListener(r.type,i,t),n={type:r.type,name:r.name,value:e,listener:i,options:t},o?o.push(n):this.__on=[n]}}function KI(r,e,t){var o=YZ(r+""),n,i=o.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var l=0,u=s.length,c;l<u;++l)for(n=0,c=s[l];n<i;++n)if((a=o[n]).type===c.type&&a.name===c.name)return c.value}return}for(s=e?JZ:qZ,n=0;n<i;++n)this.each(s(o[n],e,t));return this}function YI(r,e,t){var o=C1(r),n=o.CustomEvent;typeof n=="function"?n=new n(e,t):(n=o.document.createEvent("Event"),t?(n.initEvent(e,t.bubbles,t.cancelable),n.detail=t.detail):n.initEvent(e,!1,!1)),r.dispatchEvent(n)}function $Z(r,e){return function(){return YI(this,r,e)}}function QZ(r,e){return function(){return YI(this,r,e.apply(this,arguments))}}function qI(r,e){return this.each((typeof e=="function"?QZ:$Z)(r,e))}function*JI(){for(var r=this._groups,e=0,t=r.length;e<t;++e)for(var o=r[e],n=0,i=o.length,a;n<i;++n)(a=o[n])&&(yield a)}var WA=[null];function zo(r,e){this._groups=r,this._parents=e}function $I(){return new zo([[document.documentElement]],WA)}function ZZ(){return this}zo.prototype=$I.prototype={constructor:zo,select:hI,selectAll:mI,selectChild:pI,selectChildren:dI,filter:yI,data:bI,enter:fI,exit:SI,join:AI,merge:wI,selection:ZZ,order:PI,sort:vI,call:NI,nodes:xI,node:EI,size:CI,empty:kI,each:MI,attr:TI,style:WI,property:LI,classed:BI,text:DI,html:OI,raise:FI,lower:GI,append:VI,insert:HI,remove:zI,clone:jI,datum:XI,on:KI,dispatch:qI,[Symbol.iterator]:JI};var oc=$I;function yn(r){return typeof r=="string"?new zo([[document.querySelector(r)]],[document.documentElement]):new zo([[r]],WA)}function QI(r){return yn(vp(r).call(document.documentElement))}var eee=0;function J4(){return new J6}function J6(){this._="@"+(++eee).toString(36)}J6.prototype=J4.prototype={constructor:J6,get:function(r){for(var e=this._;!(e in r);)if(!(r=r.parentNode))return;return r[e]},set:function(r,e){return r[this._]=e},remove:function(r){return this._ in r&&delete r[this._]},toString:function(){return this._}};function $4(r){let e;for(;e=r.sourceEvent;)r=e;return r}function ai(r,e){if(r=$4(r),e===void 0&&(e=r.currentTarget),e){var t=e.ownerSVGElement||e;if(t.createSVGPoint){var o=t.createSVGPoint();return o.x=r.clientX,o.y=r.clientY,o=o.matrixTransform(e.getScreenCTM().inverse()),[o.x,o.y]}if(e.getBoundingClientRect){var n=e.getBoundingClientRect();return[r.clientX-n.left-e.clientLeft,r.clientY-n.top-e.clientTop]}}return[r.pageX,r.pageY]}function ZI(r,e){return r.target&&(r=$4(r),e===void 0&&(e=r.currentTarget),r=r.touches||[r]),Array.from(r,t=>ai(t,e))}function eR(r){return typeof r=="string"?new zo([document.querySelectorAll(r)],[document.documentElement]):new zo([MA(r)],WA)}var tR={passive:!1},Ny={capture:!0,passive:!1};function Q4(r){r.stopImmediatePropagation()}function xp(r){r.preventDefault(),r.stopImmediatePropagation()}function Ep(r){var e=r.document.documentElement,t=yn(r).on("dragstart.drag",xp,Ny);"onselectstart"in e?t.on("selectstart.drag",xp,Ny):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Cp(r,e){var t=r.document.documentElement,o=yn(r).on("dragstart.drag",null);e&&(o.on("click.drag",xp,Ny),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in t?o.on("selectstart.drag",null):(t.style.MozUserSelect=t.__noselect,delete t.__noselect)}var LA=r=>()=>r;function IA(r,{sourceEvent:e,subject:t,target:o,identifier:n,active:i,x:a,y:s,dx:l,dy:u,dispatch:c}){Object.defineProperties(this,{type:{value:r,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:t,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:n,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:c}})}IA.prototype.on=function(){var r=this._.on.apply(this._,arguments);return r===this._?this:r};function tee(r){return!r.ctrlKey&&!r.button}function ree(){return this.parentNode}function oee(r,e){return e??{x:r.x,y:r.y}}function nee(){return navigator.maxTouchPoints||"ontouchstart"in this}function rR(){var r=tee,e=ree,t=oee,o=nee,n={},i=Xs("start","drag","end"),a=0,s,l,u,c,h=0;function m(A){A.on("mousedown.drag",p).filter(o).on("touchstart.drag",f).on("touchmove.drag",b,tR).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(A,M){if(!(c||!r.call(this,A,M))){var E=P(this,e.call(this,A,M),A,M,"mouse");E&&(yn(A.view).on("mousemove.drag",g,Ny).on("mouseup.drag",d,Ny),Ep(A.view),Q4(A),u=!1,s=A.clientX,l=A.clientY,E("start",A))}}function g(A){if(xp(A),!u){var M=A.clientX-s,E=A.clientY-l;u=M*M+E*E>h}n.mouse("drag",A)}function d(A){yn(A.view).on("mousemove.drag mouseup.drag",null),Cp(A.view,u),xp(A),n.mouse("end",A)}function f(A,M){if(r.call(this,A,M)){var E=A.changedTouches,U=e.call(this,A,M),F=E.length,L,T;for(L=0;L<F;++L)(T=P(this,U,A,M,E[L].identifier,E[L]))&&(Q4(A),T("start",A,E[L]))}}function b(A){var M=A.changedTouches,E=M.length,U,F;for(U=0;U<E;++U)(F=n[M[U].identifier])&&(xp(A),F("drag",A,M[U]))}function w(A){var M=A.changedTouches,E=M.length,U,F;for(c&&clearTimeout(c),c=setTimeout(function(){c=null},500),U=0;U<E;++U)(F=n[M[U].identifier])&&(Q4(A),F("end",A,M[U]))}function P(A,M,E,U,F,L){var T=i.copy(),v=ai(L||E,M),I,D,C;if((C=t.call(A,new IA("beforestart",{sourceEvent:E,target:m,identifier:F,active:a,x:v[0],y:v[1],dx:0,dy:0,dispatch:T}),U))!=null)return I=C.x-v[0]||0,D=C.y-v[1]||0,function O(G,j,Y){var z=v,X;switch(G){case"start":n[F]=O,X=a++;break;case"end":delete n[F],--a;case"drag":v=ai(Y||j,M),X=a;break}T.call(G,A,new IA(G,{sourceEvent:j,subject:C,target:m,identifier:F,active:X,x:v[0]+I,y:v[1]+D,dx:v[0]-z[0],dy:v[1]-z[1],dispatch:T}),U)}}return m.filter=function(A){return arguments.length?(r=typeof A=="function"?A:LA(!!A),m):r},m.container=function(A){return arguments.length?(e=typeof A=="function"?A:LA(A),m):e},m.subject=function(A){return arguments.length?(t=typeof A=="function"?A:LA(A),m):t},m.touchable=function(A){return arguments.length?(o=typeof A=="function"?A:LA(!!A),m):o},m.on=function(){var A=i.on.apply(i,arguments);return A===i?m:A},m.clickDistance=function(A){return arguments.length?(h=(A=+A)*A,m):Math.sqrt(h)},m}function Uh(r,e,t){r.prototype=e.prototype=t,t.constructor=r}function kp(r,e){var t=Object.create(r.prototype);for(var o in e)t[o]=e[o];return t}function ic(){}var Mp=.7,Cy=1/Mp,k1="\\s*([+-]?\\d+)\\s*",RA="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",nc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",iee=/^#([0-9a-f]{3,8})$/,aee=new RegExp(`^rgb\\(${k1},${k1},${k1}\\)$`),see=new RegExp(`^rgb\\(${nc},${nc},${nc}\\)$`),lee=new RegExp(`^rgba\\(${k1},${k1},${k1},${RA}\\)$`),uee=new RegExp(`^rgba\\(${nc},${nc},${nc},${RA}\\)$`),cee=new RegExp(`^hsl\\(${RA},${nc},${nc}\\)$`),hee=new RegExp(`^hsla\\(${RA},${nc},${nc},${RA}\\)$`),oR={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Uh(ic,Ks,{copy(r){return Object.assign(new this.constructor,this,r)},displayable(){return this.rgb().displayable()},hex:nR,formatHex:nR,formatHex8:mee,formatHsl:pee,formatRgb:iR,toString:iR});function nR(){return this.rgb().formatHex()}function mee(){return this.rgb().formatHex8()}function pee(){return hR(this).formatHsl()}function iR(){return this.rgb().formatRgb()}function Ks(r){var e,t;return r=(r+"").trim().toLowerCase(),(e=iee.exec(r))?(t=e[1].length,e=parseInt(e[1],16),t===6?aR(e):t===3?new Rn(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):t===8?Z4(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):t===4?Z4(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=aee.exec(r))?new Rn(e[1],e[2],e[3],1):(e=see.exec(r))?new Rn(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=lee.exec(r))?Z4(e[1],e[2],e[3],e[4]):(e=uee.exec(r))?Z4(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=cee.exec(r))?uR(e[1],e[2]/100,e[3]/100,1):(e=hee.exec(r))?uR(e[1],e[2]/100,e[3]/100,e[4]):oR.hasOwnProperty(r)?aR(oR[r]):r==="transparent"?new Rn(NaN,NaN,NaN,0):null}function aR(r){return new Rn(r>>16&255,r>>8&255,r&255,1)}function Z4(r,e,t,o){return o<=0&&(r=e=t=NaN),new Rn(r,e,t,o)}function _A(r){return r instanceof ic||(r=Ks(r)),r?(r=r.rgb(),new Rn(r.r,r.g,r.b,r.opacity)):new Rn}function Bh(r,e,t,o){return arguments.length===1?_A(r):new Rn(r,e,t,o??1)}function Rn(r,e,t,o){this.r=+r,this.g=+e,this.b=+t,this.opacity=+o}Uh(Rn,Bh,kp(ic,{brighter(r){return r=r==null?Cy:Math.pow(Cy,r),new Rn(this.r*r,this.g*r,this.b*r,this.opacity)},darker(r){return r=r==null?Mp:Math.pow(Mp,r),new Rn(this.r*r,this.g*r,this.b*r,this.opacity)},rgb(){return this},clamp(){return new Rn(Ey(this.r),Ey(this.g),Ey(this.b),tv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:sR,formatHex:sR,formatHex8:dee,formatRgb:lR,toString:lR}));function sR(){return`#${xy(this.r)}${xy(this.g)}${xy(this.b)}`}function dee(){return`#${xy(this.r)}${xy(this.g)}${xy(this.b)}${xy((isNaN(this.opacity)?1:this.opacity)*255)}`}function lR(){let r=tv(this.opacity);return`${r===1?"rgb(":"rgba("}${Ey(this.r)}, ${Ey(this.g)}, ${Ey(this.b)}${r===1?")":`, ${r})`}`}function tv(r){return isNaN(r)?1:Math.max(0,Math.min(1,r))}function Ey(r){return Math.max(0,Math.min(255,Math.round(r)||0))}function xy(r){return r=Ey(r),(r<16?"0":"")+r.toString(16)}function uR(r,e,t,o){return o<=0?r=e=t=NaN:t<=0||t>=1?r=e=NaN:e<=0&&(r=NaN),new Bl(r,e,t,o)}function hR(r){if(r instanceof Bl)return new Bl(r.h,r.s,r.l,r.opacity);if(r instanceof ic||(r=Ks(r)),!r)return new Bl;if(r instanceof Bl)return r;r=r.rgb();var e=r.r/255,t=r.g/255,o=r.b/255,n=Math.min(e,t,o),i=Math.max(e,t,o),a=NaN,s=i-n,l=(i+n)/2;return s?(e===i?a=(t-o)/s+(t<o)*6:t===i?a=(o-e)/s+2:a=(e-t)/s+4,s/=l<.5?i+n:2-i-n,a*=60):s=l>0&&l<1?0:a,new Bl(a,s,l,r.opacity)}function M1(r,e,t,o){return arguments.length===1?hR(r):new Bl(r,e,t,o??1)}function Bl(r,e,t,o){this.h=+r,this.s=+e,this.l=+t,this.opacity=+o}Uh(Bl,M1,kp(ic,{brighter(r){return r=r==null?Cy:Math.pow(Cy,r),new Bl(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?Mp:Math.pow(Mp,r),new Bl(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=this.h%360+(this.h<0)*360,e=isNaN(r)||isNaN(this.s)?0:this.s,t=this.l,o=t+(t<.5?t:1-t)*e,n=2*t-o;return new Rn($6(r>=240?r-240:r+120,n,o),$6(r,n,o),$6(r<120?r+240:r-120,n,o),this.opacity)},clamp(){return new Bl(cR(this.h),ev(this.s),ev(this.l),tv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let r=tv(this.opacity);return`${r===1?"hsl(":"hsla("}${cR(this.h)}, ${ev(this.s)*100}%, ${ev(this.l)*100}%${r===1?")":`, ${r})`}`}}));function cR(r){return r=(r||0)%360,r<0?r+360:r}function ev(r){return Math.max(0,Math.min(1,r||0))}function $6(r,e,t){return(r<60?e+(t-e)*r/60:r<180?t:r<240?e+(t-e)*(240-r)/60:e)*255}var rv=Math.PI/180,ov=180/Math.PI;var nv=18,mR=.96422,pR=1,dR=.82521,yR=4/29,T1=6/29,fR=3*T1*T1,yee=T1*T1*T1;function gR(r){if(r instanceof Dl)return new Dl(r.l,r.a,r.b,r.opacity);if(r instanceof ac)return wR(r);r instanceof Rn||(r=_A(r));var e=t9(r.r),t=t9(r.g),o=t9(r.b),n=Q6((.2225045*e+.7168786*t+.0606169*o)/pR),i,a;return e===t&&t===o?i=a=n:(i=Q6((.4360747*e+.3850649*t+.1430804*o)/mR),a=Q6((.0139322*e+.0971045*t+.7141733*o)/dR)),new Dl(116*n-16,500*(i-n),200*(n-a),r.opacity)}function bR(r,e){return new Dl(r,0,0,e??1)}function ky(r,e,t,o){return arguments.length===1?gR(r):new Dl(r,e,t,o??1)}function Dl(r,e,t,o){this.l=+r,this.a=+e,this.b=+t,this.opacity=+o}Uh(Dl,ky,kp(ic,{brighter(r){return new Dl(this.l+nv*(r??1),this.a,this.b,this.opacity)},darker(r){return new Dl(this.l-nv*(r??1),this.a,this.b,this.opacity)},rgb(){var r=(this.l+16)/116,e=isNaN(this.a)?r:r+this.a/500,t=isNaN(this.b)?r:r-this.b/200;return e=mR*Z6(e),r=pR*Z6(r),t=dR*Z6(t),new Rn(e9(3.1338561*e-1.6168667*r-.4906146*t),e9(-.9787684*e+1.9161415*r+.033454*t),e9(.0719453*e-.2289914*r+1.4052427*t),this.opacity)}}));function Q6(r){return r>yee?Math.pow(r,1/3):r/fR+yR}function Z6(r){return r>T1?r*r*r:fR*(r-yR)}function e9(r){return 255*(r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}function t9(r){return(r/=255)<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function SR(r){if(r instanceof ac)return new ac(r.h,r.c,r.l,r.opacity);if(r instanceof Dl||(r=gR(r)),r.a===0&&r.b===0)return new ac(NaN,0<r.l&&r.l<100?0:NaN,r.l,r.opacity);var e=Math.atan2(r.b,r.a)*ov;return new ac(e<0?e+360:e,Math.sqrt(r.a*r.a+r.b*r.b),r.l,r.opacity)}function AR(r,e,t,o){return arguments.length===1?SR(r):new ac(t,e,r,o??1)}function W1(r,e,t,o){return arguments.length===1?SR(r):new ac(r,e,t,o??1)}function ac(r,e,t,o){this.h=+r,this.c=+e,this.l=+t,this.opacity=+o}function wR(r){if(isNaN(r.h))return new Dl(r.l,0,0,r.opacity);var e=r.h*rv;return new Dl(r.l,Math.cos(e)*r.c,Math.sin(e)*r.c,r.opacity)}Uh(ac,W1,kp(ic,{brighter(r){return new ac(this.h,this.c,this.l+nv*(r??1),this.opacity)},darker(r){return new ac(this.h,this.c,this.l-nv*(r??1),this.opacity)},rgb(){return wR(this).rgb()}}));var xR=-.14861,r9=1.78277,o9=-.29227,iv=-.90649,UA=1.97294,PR=UA*iv,vR=UA*r9,NR=r9*o9-iv*xR;function fee(r){if(r instanceof My)return new My(r.h,r.s,r.l,r.opacity);r instanceof Rn||(r=_A(r));var e=r.r/255,t=r.g/255,o=r.b/255,n=(NR*o+PR*e-vR*t)/(NR+PR-vR),i=o-n,a=(UA*(t-n)-o9*i)/iv,s=Math.sqrt(a*a+i*i)/(UA*n*(1-n)),l=s?Math.atan2(a,i)*ov-120:NaN;return new My(l<0?l+360:l,s,n,r.opacity)}function Bi(r,e,t,o){return arguments.length===1?fee(r):new My(r,e,t,o??1)}function My(r,e,t,o){this.h=+r,this.s=+e,this.l=+t,this.opacity=+o}Uh(My,Bi,kp(ic,{brighter(r){return r=r==null?Cy:Math.pow(Cy,r),new My(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?Mp:Math.pow(Mp,r),new My(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=isNaN(this.h)?0:(this.h+120)*rv,e=+this.l,t=isNaN(this.s)?0:this.s*e*(1-e),o=Math.cos(r),n=Math.sin(r);return new Rn(255*(e+t*(xR*o+r9*n)),255*(e+t*(o9*o+iv*n)),255*(e+t*(UA*o)),this.opacity)}}));function n9(r,e,t,o,n){var i=r*r,a=i*r;return((1-3*r+3*i-a)*e+(4-6*i+3*a)*t+(1+3*r+3*i-3*a)*o+a*n)/6}function av(r){var e=r.length-1;return function(t){var o=t<=0?t=0:t>=1?(t=1,e-1):Math.floor(t*e),n=r[o],i=r[o+1],a=o>0?r[o-1]:2*n-i,s=o<e-1?r[o+2]:2*i-n;return n9((t-o/e)*e,a,n,i,s)}}function sv(r){var e=r.length;return function(t){var o=Math.floor(((t%=1)<0?++t:t)*e),n=r[(o+e-1)%e],i=r[o%e],a=r[(o+1)%e],s=r[(o+2)%e];return n9((t-o/e)*e,n,i,a,s)}}var L1=r=>()=>r;function ER(r,e){return function(t){return r+t*e}}function gee(r,e,t){return r=Math.pow(r,t),e=Math.pow(e,t)-r,t=1/t,function(o){return Math.pow(r+o*e,t)}}function Tp(r,e){var t=e-r;return t?ER(r,t>180||t<-180?t-360*Math.round(t/360):t):L1(isNaN(r)?e:r)}function CR(r){return(r=+r)==1?Jo:function(e,t){return t-e?gee(e,t,r):L1(isNaN(e)?t:e)}}function Jo(r,e){var t=e-r;return t?ER(r,t):L1(isNaN(r)?e:r)}var Wp=(function r(e){var t=CR(e);function o(n,i){var a=t((n=Bh(n)).r,(i=Bh(i)).r),s=t(n.g,i.g),l=t(n.b,i.b),u=Jo(n.opacity,i.opacity);return function(c){return n.r=a(c),n.g=s(c),n.b=l(c),n.opacity=u(c),n+""}}return o.gamma=r,o})(1);function kR(r){return function(e){var t=e.length,o=new Array(t),n=new Array(t),i=new Array(t),a,s;for(a=0;a<t;++a)s=Bh(e[a]),o[a]=s.r||0,n[a]=s.g||0,i[a]=s.b||0;return o=r(o),n=r(n),i=r(i),s.opacity=1,function(l){return s.r=o(l),s.g=n(l),s.b=i(l),s+""}}}var lv=kR(av),MR=kR(sv);function I1(r,e){e||(e=[]);var t=r?Math.min(e.length,r.length):0,o=e.slice(),n;return function(i){for(n=0;n<t;++n)o[n]=r[n]*(1-i)+e[n]*i;return o}}function uv(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function TR(r,e){return(uv(e)?I1:i9)(r,e)}function i9(r,e){var t=e?e.length:0,o=r?Math.min(t,r.length):0,n=new Array(o),i=new Array(t),a;for(a=0;a<o;++a)n[a]=Di(r[a],e[a]);for(;a<t;++a)i[a]=e[a];return function(s){for(a=0;a<o;++a)i[a]=n[a](s);return i}}function cv(r,e){var t=new Date;return r=+r,e=+e,function(o){return t.setTime(r*(1-o)+e*o),t}}function si(r,e){return r=+r,e=+e,function(t){return r*(1-t)+e*t}}function hv(r,e){var t={},o={},n;(r===null||typeof r!="object")&&(r={}),(e===null||typeof e!="object")&&(e={});for(n in e)n in r?t[n]=Di(r[n],e[n]):o[n]=e[n];return function(i){for(n in t)o[n]=t[n](i);return o}}var s9=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,a9=new RegExp(s9.source,"g");function bee(r){return function(){return r}}function See(r){return function(e){return r(e)+""}}function R1(r,e){var t=s9.lastIndex=a9.lastIndex=0,o,n,i,a=-1,s=[],l=[];for(r=r+"",e=e+"";(o=s9.exec(r))&&(n=a9.exec(e));)(i=n.index)>t&&(i=e.slice(t,i),s[a]?s[a]+=i:s[++a]=i),(o=o[0])===(n=n[0])?s[a]?s[a]+=n:s[++a]=n:(s[++a]=null,l.push({i:a,x:si(o,n)})),t=a9.lastIndex;return t<e.length&&(i=e.slice(t),s[a]?s[a]+=i:s[++a]=i),s.length<2?l[0]?See(l[0].x):bee(e):(e=l.length,function(u){for(var c=0,h;c<e;++c)s[(h=l[c]).i]=h.x(u);return s.join("")})}function Di(r,e){var t=typeof e,o;return e==null||t==="boolean"?L1(e):(t==="number"?si:t==="string"?(o=Ks(e))?(e=o,Wp):R1:e instanceof Ks?Wp:e instanceof Date?cv:uv(e)?I1:Array.isArray(e)?i9:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?hv:si)(r,e)}function WR(r){var e=r.length;return function(t){return r[Math.max(0,Math.min(e-1,Math.floor(t*e)))]}}function LR(r,e){var t=Tp(+r,+e);return function(o){var n=t(o);return n-360*Math.floor(n/360)}}function Lp(r,e){return r=+r,e=+e,function(t){return Math.round(r*(1-t)+e*t)}}var IR=180/Math.PI,mv={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function l9(r,e,t,o,n,i){var a,s,l;return(a=Math.sqrt(r*r+e*e))&&(r/=a,e/=a),(l=r*t+e*o)&&(t-=r*l,o-=e*l),(s=Math.sqrt(t*t+o*o))&&(t/=s,o/=s,l/=s),r*o<e*t&&(r=-r,e=-e,l=-l,a=-a),{translateX:n,translateY:i,rotate:Math.atan2(e,r)*IR,skewX:Math.atan(l)*IR,scaleX:a,scaleY:s}}var pv;function RR(r){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(r+"");return e.isIdentity?mv:l9(e.a,e.b,e.c,e.d,e.e,e.f)}function _R(r){return r==null?mv:(pv||(pv=document.createElementNS("http://www.w3.org/2000/svg","g")),pv.setAttribute("transform",r),(r=pv.transform.baseVal.consolidate())?(r=r.matrix,l9(r.a,r.b,r.c,r.d,r.e,r.f)):mv)}function UR(r,e,t,o){function n(u){return u.length?u.pop()+" ":""}function i(u,c,h,m,p,g){if(u!==h||c!==m){var d=p.push("translate(",null,e,null,t);g.push({i:d-4,x:si(u,h)},{i:d-2,x:si(c,m)})}else(h||m)&&p.push("translate("+h+e+m+t)}function a(u,c,h,m){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),m.push({i:h.push(n(h)+"rotate(",null,o)-2,x:si(u,c)})):c&&h.push(n(h)+"rotate("+c+o)}function s(u,c,h,m){u!==c?m.push({i:h.push(n(h)+"skewX(",null,o)-2,x:si(u,c)}):c&&h.push(n(h)+"skewX("+c+o)}function l(u,c,h,m,p,g){if(u!==h||c!==m){var d=p.push(n(p)+"scale(",null,",",null,")");g.push({i:d-4,x:si(u,h)},{i:d-2,x:si(c,m)})}else(h!==1||m!==1)&&p.push(n(p)+"scale("+h+","+m+")")}return function(u,c){var h=[],m=[];return u=r(u),c=r(c),i(u.translateX,u.translateY,c.translateX,c.translateY,h,m),a(u.rotate,c.rotate,h,m),s(u.skewX,c.skewX,h,m),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,h,m),u=c=null,function(p){for(var g=-1,d=m.length,f;++g<d;)h[(f=m[g]).i]=f.x(p);return h.join("")}}}var dv=UR(RR,"px, ","px)","deg)"),yv=UR(_R,", ",")",")");var Aee=1e-12;function BR(r){return((r=Math.exp(r))+1/r)/2}function wee(r){return((r=Math.exp(r))-1/r)/2}function Pee(r){return((r=Math.exp(2*r))-1)/(r+1)}var fv=(function r(e,t,o){function n(i,a){var s=i[0],l=i[1],u=i[2],c=a[0],h=a[1],m=a[2],p=c-s,g=h-l,d=p*p+g*g,f,b;if(d<Aee)b=Math.log(m/u)/e,f=function(U){return[s+U*p,l+U*g,u*Math.exp(e*U*b)]};else{var w=Math.sqrt(d),P=(m*m-u*u+o*d)/(2*u*t*w),A=(m*m-u*u-o*d)/(2*m*t*w),M=Math.log(Math.sqrt(P*P+1)-P),E=Math.log(Math.sqrt(A*A+1)-A);b=(E-M)/e,f=function(U){var F=U*b,L=BR(M),T=u/(t*w)*(L*Pee(e*F+M)-wee(M));return[s+T*p,l+T*g,u*L/BR(e*F+M)]}}return f.duration=b*1e3*e/Math.SQRT2,f}return n.rho=function(i){var a=Math.max(.001,+i),s=a*a,l=s*s;return r(a,s,l)},n})(Math.SQRT2,2,4);function DR(r){return function(e,t){var o=r((e=M1(e)).h,(t=M1(t)).h),n=Jo(e.s,t.s),i=Jo(e.l,t.l),a=Jo(e.opacity,t.opacity);return function(s){return e.h=o(s),e.s=n(s),e.l=i(s),e.opacity=a(s),e+""}}}var OR=DR(Tp),FR=DR(Jo);function u9(r,e){var t=Jo((r=ky(r)).l,(e=ky(e)).l),o=Jo(r.a,e.a),n=Jo(r.b,e.b),i=Jo(r.opacity,e.opacity);return function(a){return r.l=t(a),r.a=o(a),r.b=n(a),r.opacity=i(a),r+""}}function GR(r){return function(e,t){var o=r((e=W1(e)).h,(t=W1(t)).h),n=Jo(e.c,t.c),i=Jo(e.l,t.l),a=Jo(e.opacity,t.opacity);return function(s){return e.h=o(s),e.c=n(s),e.l=i(s),e.opacity=a(s),e+""}}}var VR=GR(Tp),HR=GR(Jo);function zR(r){return(function e(t){t=+t;function o(n,i){var a=r((n=Bi(n)).h,(i=Bi(i)).h),s=Jo(n.s,i.s),l=Jo(n.l,i.l),u=Jo(n.opacity,i.opacity);return function(c){return n.h=a(c),n.s=s(c),n.l=l(Math.pow(c,t)),n.opacity=u(c),n+""}}return o.gamma=e,o})(1)}var jR=zR(Tp),Ty=zR(Jo);function BA(r,e){e===void 0&&(e=r,r=Di);for(var t=0,o=e.length-1,n=e[0],i=new Array(o<0?0:o);t<o;)i[t]=r(n,n=e[++t]);return function(a){var s=Math.max(0,Math.min(o-1,Math.floor(a*=o)));return i[s](a-s)}}function XR(r,e){for(var t=new Array(e),o=0;o<e;++o)t[o]=r(o/(e-1));return t}var _1=0,OA=0,DA=0,YR=1e3,gv,FA,bv=0,Wy=0,Sv=0,GA=typeof performance=="object"&&performance.now?performance:Date,qR=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(r){setTimeout(r,17)};function Ip(){return Wy||(qR(vee),Wy=GA.now()+Sv)}function vee(){Wy=0}function Ly(){this._call=this._time=this._next=null}Ly.prototype=Iy.prototype={constructor:Ly,restart:function(r,e,t){if(typeof r!="function")throw new TypeError("callback is not a function");t=(t==null?Ip():+t)+(e==null?0:+e),!this._next&&FA!==this&&(FA?FA._next=this:gv=this,FA=this),this._call=r,this._time=t,c9()},stop:function(){this._call&&(this._call=null,this._time=1/0,c9())}};function Iy(r,e,t){var o=new Ly;return o.restart(r,e,t),o}function h9(){Ip(),++_1;for(var r=gv,e;r;)(e=Wy-r._time)>=0&&r._call.call(void 0,e),r=r._next;--_1}function KR(){Wy=(bv=GA.now())+Sv,_1=OA=0;try{h9()}finally{_1=0,xee(),Wy=0}}function Nee(){var r=GA.now(),e=r-bv;e>YR&&(Sv-=e,bv=r)}function xee(){for(var r,e=gv,t,o=1/0;e;)e._call?(o>e._time&&(o=e._time),r=e,e=e._next):(t=e._next,e._next=null,e=r?r._next=t:gv=t);FA=r,c9(o)}function c9(r){if(!_1){OA&&(OA=clearTimeout(OA));var e=r-Wy;e>24?(r<1/0&&(OA=setTimeout(KR,r-GA.now()-Sv)),DA&&(DA=clearInterval(DA))):(DA||(bv=GA.now(),DA=setInterval(Nee,YR)),_1=1,qR(KR))}}function VA(r,e,t){var o=new Ly;return e=e==null?0:+e,o.restart(n=>{o.stop(),r(n+e)},e,t),o}function JR(r,e,t){var o=new Ly,n=e;return e==null?(o.restart(r,e,t),o):(o._restart=o.restart,o.restart=function(i,a,s){a=+a,s=s==null?Ip():+s,o._restart(function l(u){u+=n,o._restart(l,n+=a,s),i(u)},a,s)},o.restart(r,e,t),o)}var Eee=Xs("start","end","cancel","interrupt"),Cee=[],QR=0,wv=1,Pv=2,Av=3,$R=4,vv=5,HA=6;function Rp(r,e,t,o,n,i){var a=r.__transition;if(!a)r.__transition={};else if(t in a)return;kee(r,t,{name:e,index:o,group:n,on:Eee,tween:Cee,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:QR})}function zA(r,e){var t=jn(r,e);if(t.state>QR)throw new Error("too late; already scheduled");return t}function Ei(r,e){var t=jn(r,e);if(t.state>Av)throw new Error("too late; already running");return t}function jn(r,e){var t=r.__transition;if(!t||!(t=t[e]))throw new Error("transition not found");return t}function kee(r,e,t){var o=r.__transition,n;o[e]=t,t.timer=Iy(i,0,t.time);function i(u){t.state=wv,t.timer.restart(a,t.delay,t.time),t.delay<=u&&a(u-t.delay)}function a(u){var c,h,m,p;if(t.state!==wv)return l();for(c in o)if(p=o[c],p.name===t.name){if(p.state===Av)return VA(a);p.state===$R?(p.state=HA,p.timer.stop(),p.on.call("interrupt",r,r.__data__,p.index,p.group),delete o[c]):+c<e&&(p.state=HA,p.timer.stop(),p.on.call("cancel",r,r.__data__,p.index,p.group),delete o[c])}if(VA(function(){t.state===Av&&(t.state=$R,t.timer.restart(s,t.delay,t.time),s(u))}),t.state=Pv,t.on.call("start",r,r.__data__,t.index,t.group),t.state===Pv){for(t.state=Av,n=new Array(m=t.tween.length),c=0,h=-1;c<m;++c)(p=t.tween[c].value.call(r,r.__data__,t.index,t.group))&&(n[++h]=p);n.length=h+1}}function s(u){for(var c=u<t.duration?t.ease.call(null,u/t.duration):(t.timer.restart(l),t.state=vv,1),h=-1,m=n.length;++h<m;)n[h].call(r,c);t.state===vv&&(t.on.call("end",r,r.__data__,t.index,t.group),l())}function l(){t.state=HA,t.timer.stop(),delete o[e];for(var u in o)return;delete r.__transition}}function Ol(r,e){var t=r.__transition,o,n,i=!0,a;if(t){e=e==null?null:e+"";for(a in t){if((o=t[a]).name!==e){i=!1;continue}n=o.state>Pv&&o.state<vv,o.state=HA,o.timer.stop(),o.on.call(n?"interrupt":"cancel",r,r.__data__,o.index,o.group),delete t[a]}i&&delete r.__transition}}function ZR(r){return this.each(function(){Ol(this,r)})}function Mee(r,e){var t,o;return function(){var n=Ei(this,r),i=n.tween;if(i!==t){o=t=i;for(var a=0,s=o.length;a<s;++a)if(o[a].name===e){o=o.slice(),o.splice(a,1);break}}n.tween=o}}function Tee(r,e,t){var o,n;if(typeof t!="function")throw new Error;return function(){var i=Ei(this,r),a=i.tween;if(a!==o){n=(o=a).slice();for(var s={name:e,value:t},l=0,u=n.length;l<u;++l)if(n[l].name===e){n[l]=s;break}l===u&&n.push(s)}i.tween=n}}function e_(r,e){var t=this._id;if(r+="",arguments.length<2){for(var o=jn(this.node(),t).tween,n=0,i=o.length,a;n<i;++n)if((a=o[n]).name===r)return a.value;return null}return this.each((e==null?Mee:Tee)(t,r,e))}function U1(r,e,t){var o=r._id;return r.each(function(){var n=Ei(this,o);(n.value||(n.value={}))[e]=t.apply(this,arguments)}),function(n){return jn(n,o).value[e]}}function Nv(r,e){var t;return(typeof e=="number"?si:e instanceof Ks?Wp:(t=Ks(e))?(e=t,Wp):R1)(r,e)}function Wee(r){return function(){this.removeAttribute(r)}}function Lee(r){return function(){this.removeAttributeNS(r.space,r.local)}}function Iee(r,e,t){var o,n=t+"",i;return function(){var a=this.getAttribute(r);return a===n?null:a===o?i:i=e(o=a,t)}}function Ree(r,e,t){var o,n=t+"",i;return function(){var a=this.getAttributeNS(r.space,r.local);return a===n?null:a===o?i:i=e(o=a,t)}}function _ee(r,e,t){var o,n,i;return function(){var a,s=t(this),l;return s==null?void this.removeAttribute(r):(a=this.getAttribute(r),l=s+"",a===l?null:a===o&&l===n?i:(n=l,i=e(o=a,s)))}}function Uee(r,e,t){var o,n,i;return function(){var a,s=t(this),l;return s==null?void this.removeAttributeNS(r.space,r.local):(a=this.getAttributeNS(r.space,r.local),l=s+"",a===l?null:a===o&&l===n?i:(n=l,i=e(o=a,s)))}}function t_(r,e){var t=rc(r),o=t==="transform"?yv:Nv;return this.attrTween(r,typeof e=="function"?(t.local?Uee:_ee)(t,o,U1(this,"attr."+r,e)):e==null?(t.local?Lee:Wee)(t):(t.local?Ree:Iee)(t,o,e))}function Bee(r,e){return function(t){this.setAttribute(r,e.call(this,t))}}function Dee(r,e){return function(t){this.setAttributeNS(r.space,r.local,e.call(this,t))}}function Oee(r,e){var t,o;function n(){var i=e.apply(this,arguments);return i!==o&&(t=(o=i)&&Dee(r,i)),t}return n._value=e,n}function Fee(r,e){var t,o;function n(){var i=e.apply(this,arguments);return i!==o&&(t=(o=i)&&Bee(r,i)),t}return n._value=e,n}function r_(r,e){var t="attr."+r;if(arguments.length<2)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;var o=rc(r);return this.tween(t,(o.local?Oee:Fee)(o,e))}function Gee(r,e){return function(){zA(this,r).delay=+e.apply(this,arguments)}}function Vee(r,e){return e=+e,function(){zA(this,r).delay=e}}function o_(r){var e=this._id;return arguments.length?this.each((typeof r=="function"?Gee:Vee)(e,r)):jn(this.node(),e).delay}function Hee(r,e){return function(){Ei(this,r).duration=+e.apply(this,arguments)}}function zee(r,e){return e=+e,function(){Ei(this,r).duration=e}}function n_(r){var e=this._id;return arguments.length?this.each((typeof r=="function"?Hee:zee)(e,r)):jn(this.node(),e).duration}function jee(r,e){if(typeof e!="function")throw new Error;return function(){Ei(this,r).ease=e}}function i_(r){var e=this._id;return arguments.length?this.each(jee(e,r)):jn(this.node(),e).ease}function Xee(r,e){return function(){var t=e.apply(this,arguments);if(typeof t!="function")throw new Error;Ei(this,r).ease=t}}function a_(r){if(typeof r!="function")throw new Error;return this.each(Xee(this._id,r))}function s_(r){typeof r!="function"&&(r=E1(r));for(var e=this._groups,t=e.length,o=new Array(t),n=0;n<t;++n)for(var i=e[n],a=i.length,s=o[n]=[],l,u=0;u<a;++u)(l=i[u])&&r.call(l,l.__data__,u,i)&&s.push(l);return new Ci(o,this._parents,this._name,this._id)}function l_(r){if(r._id!==this._id)throw new Error;for(var e=this._groups,t=r._groups,o=e.length,n=t.length,i=Math.min(o,n),a=new Array(o),s=0;s<i;++s)for(var l=e[s],u=t[s],c=l.length,h=a[s]=new Array(c),m,p=0;p<c;++p)(m=l[p]||u[p])&&(h[p]=m);for(;s<o;++s)a[s]=e[s];return new Ci(a,this._parents,this._name,this._id)}function Kee(r){return(r+"").trim().split(/^|\s+/).every(function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||e==="start"})}function Yee(r,e,t){var o,n,i=Kee(e)?zA:Ei;return function(){var a=i(this,r),s=a.on;s!==o&&(n=(o=s).copy()).on(e,t),a.on=n}}function u_(r,e){var t=this._id;return arguments.length<2?jn(this.node(),t).on.on(r):this.each(Yee(t,r,e))}function qee(r){return function(){var e=this.parentNode;for(var t in this.__transition)if(+t!==r)return;e&&e.removeChild(this)}}function c_(){return this.on("end.remove",qee(this._id))}function h_(r){var e=this._name,t=this._id;typeof r!="function"&&(r=Np(r));for(var o=this._groups,n=o.length,i=new Array(n),a=0;a<n;++a)for(var s=o[a],l=s.length,u=i[a]=new Array(l),c,h,m=0;m<l;++m)(c=s[m])&&(h=r.call(c,c.__data__,m,s))&&("__data__"in c&&(h.__data__=c.__data__),u[m]=h,Rp(u[m],e,t,m,u,jn(c,t)));return new Ci(i,this._parents,e,t)}function m_(r){var e=this._name,t=this._id;typeof r!="function"&&(r=x1(r));for(var o=this._groups,n=o.length,i=[],a=[],s=0;s<n;++s)for(var l=o[s],u=l.length,c,h=0;h<u;++h)if(c=l[h]){for(var m=r.call(c,c.__data__,h,l),p,g=jn(c,t),d=0,f=m.length;d<f;++d)(p=m[d])&&Rp(p,e,t,d,m,g);i.push(m),a.push(c)}return new Ci(i,a,e,t)}var Jee=oc.prototype.constructor;function p_(){return new Jee(this._groups,this._parents)}function $ee(r,e){var t,o,n;return function(){var i=_h(this,r),a=(this.style.removeProperty(r),_h(this,r));return i===a?null:i===t&&a===o?n:n=e(t=i,o=a)}}function d_(r){return function(){this.style.removeProperty(r)}}function Qee(r,e,t){var o,n=t+"",i;return function(){var a=_h(this,r);return a===n?null:a===o?i:i=e(o=a,t)}}function Zee(r,e,t){var o,n,i;return function(){var a=_h(this,r),s=t(this),l=s+"";return s==null&&(l=s=(this.style.removeProperty(r),_h(this,r))),a===l?null:a===o&&l===n?i:(n=l,i=e(o=a,s))}}function ete(r,e){var t,o,n,i="style."+e,a="end."+i,s;return function(){var l=Ei(this,r),u=l.on,c=l.value[i]==null?s||(s=d_(e)):void 0;(u!==t||n!==c)&&(o=(t=u).copy()).on(a,n=c),l.on=o}}function y_(r,e,t){var o=(r+="")=="transform"?dv:Nv;return e==null?this.styleTween(r,$ee(r,o)).on("end.style."+r,d_(r)):typeof e=="function"?this.styleTween(r,Zee(r,o,U1(this,"style."+r,e))).each(ete(this._id,r)):this.styleTween(r,Qee(r,o,e),t).on("end.style."+r,null)}function tte(r,e,t){return function(o){this.style.setProperty(r,e.call(this,o),t)}}function rte(r,e,t){var o,n;function i(){var a=e.apply(this,arguments);return a!==n&&(o=(n=a)&&tte(r,a,t)),o}return i._value=e,i}function f_(r,e,t){var o="style."+(r+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(e==null)return this.tween(o,null);if(typeof e!="function")throw new Error;return this.tween(o,rte(r,e,t??""))}function ote(r){return function(){this.textContent=r}}function nte(r){return function(){var e=r(this);this.textContent=e??""}}function g_(r){return this.tween("text",typeof r=="function"?nte(U1(this,"text",r)):ote(r==null?"":r+""))}function ite(r){return function(e){this.textContent=r.call(this,e)}}function ate(r){var e,t;function o(){var n=r.apply(this,arguments);return n!==t&&(e=(t=n)&&ite(n)),e}return o._value=r,o}function b_(r){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(r==null)return this.tween(e,null);if(typeof r!="function")throw new Error;return this.tween(e,ate(r))}function S_(){for(var r=this._name,e=this._id,t=xv(),o=this._groups,n=o.length,i=0;i<n;++i)for(var a=o[i],s=a.length,l,u=0;u<s;++u)if(l=a[u]){var c=jn(l,e);Rp(l,r,t,u,a,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new Ci(o,this._parents,r,t)}function A_(){var r,e,t=this,o=t._id,n=t.size();return new Promise(function(i,a){var s={value:a},l={value:function(){--n===0&&i()}};t.each(function(){var u=Ei(this,o),c=u.on;c!==r&&(e=(r=c).copy(),e._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),u.on=e}),n===0&&i()})}var ste=0;function Ci(r,e,t,o){this._groups=r,this._parents=e,this._name=t,this._id=o}function Ev(r){return oc().transition(r)}function xv(){return++ste}var Dh=oc.prototype;Ci.prototype=Ev.prototype={constructor:Ci,select:h_,selectAll:m_,selectChild:Dh.selectChild,selectChildren:Dh.selectChildren,filter:s_,merge:l_,selection:p_,transition:S_,call:Dh.call,nodes:Dh.nodes,node:Dh.node,size:Dh.size,empty:Dh.empty,each:Dh.each,on:u_,attr:t_,attrTween:r_,style:y_,styleTween:f_,text:g_,textTween:b_,remove:c_,tween:e_,delay:o_,duration:n_,ease:i_,easeVarying:a_,end:A_,[Symbol.iterator]:Dh[Symbol.iterator]};var w_=r=>+r;function P_(r){return r*r}function v_(r){return r*(2-r)}function m9(r){return((r*=2)<=1?r*r:--r*(2-r)+1)/2}function N_(r){return r*r*r}function x_(r){return--r*r*r+1}function jA(r){return((r*=2)<=1?r*r*r:(r-=2)*r*r+2)/2}var p9=3,E_=(function r(e){e=+e;function t(o){return Math.pow(o,e)}return t.exponent=r,t})(p9),C_=(function r(e){e=+e;function t(o){return 1-Math.pow(1-o,e)}return t.exponent=r,t})(p9),d9=(function r(e){e=+e;function t(o){return((o*=2)<=1?Math.pow(o,e):2-Math.pow(2-o,e))/2}return t.exponent=r,t})(p9);var k_=Math.PI,M_=k_/2;function T_(r){return+r==1?1:1-Math.cos(r*M_)}function W_(r){return Math.sin(r*M_)}function y9(r){return(1-Math.cos(k_*r))/2}function sc(r){return(Math.pow(2,-10*r)-.0009765625)*1.0009775171065494}function L_(r){return sc(1-+r)}function I_(r){return 1-sc(r)}function f9(r){return((r*=2)<=1?sc(1-r):2-sc(r-1))/2}function R_(r){return 1-Math.sqrt(1-r*r)}function __(r){return Math.sqrt(1- --r*r)}function g9(r){return((r*=2)<=1?1-Math.sqrt(1-r*r):Math.sqrt(1-(r-=2)*r)+1)/2}var b9=.36363636363636365,lte=6/11,ute=8/11,cte=3/4,hte=9/11,mte=10/11,pte=15/16,dte=21/22,yte=63/64,Cv=1/b9/b9;function U_(r){return 1-B1(1-r)}function B1(r){return(r=+r)<b9?Cv*r*r:r<ute?Cv*(r-=lte)*r+cte:r<mte?Cv*(r-=hte)*r+pte:Cv*(r-=dte)*r+yte}function B_(r){return((r*=2)<=1?1-B1(1-r):B1(r-1)+1)/2}var S9=1.70158,D_=(function r(e){e=+e;function t(o){return(o=+o)*o*(e*(o-1)+o)}return t.overshoot=r,t})(S9),O_=(function r(e){e=+e;function t(o){return--o*o*((o+1)*e+o)+1}return t.overshoot=r,t})(S9),A9=(function r(e){e=+e;function t(o){return((o*=2)<1?o*o*((e+1)*o-e):(o-=2)*o*((e+1)*o+e)+2)/2}return t.overshoot=r,t})(S9);var D1=2*Math.PI,w9=1,P9=.3,F_=(function r(e,t){var o=Math.asin(1/(e=Math.max(1,e)))*(t/=D1);function n(i){return e*sc(- --i)*Math.sin((o-i)/t)}return n.amplitude=function(i){return r(i,t*D1)},n.period=function(i){return r(e,i)},n})(w9,P9),v9=(function r(e,t){var o=Math.asin(1/(e=Math.max(1,e)))*(t/=D1);function n(i){return 1-e*sc(i=+i)*Math.sin((i+o)/t)}return n.amplitude=function(i){return r(i,t*D1)},n.period=function(i){return r(e,i)},n})(w9,P9),G_=(function r(e,t){var o=Math.asin(1/(e=Math.max(1,e)))*(t/=D1);function n(i){return((i=i*2-1)<0?e*sc(-i)*Math.sin((o-i)/t):2-e*sc(i)*Math.sin((o+i)/t))/2}return n.amplitude=function(i){return r(i,t*D1)},n.period=function(i){return r(e,i)},n})(w9,P9);var fte={time:null,delay:0,duration:250,ease:jA};function gte(r,e){for(var t;!(t=r.__transition)||!(t=t[e]);)if(!(r=r.parentNode))throw new Error(`transition ${e} not found`);return t}function V_(r){var e,t;r instanceof Ci?(e=r._id,r=r._name):(e=xv(),(t=fte).time=Ip(),r=r==null?null:r+"");for(var o=this._groups,n=o.length,i=0;i<n;++i)for(var a=o[i],s=a.length,l,u=0;u<s;++u)(l=a[u])&&Rp(l,r,e,u,a,t||gte(l,e));return new Ci(o,this._parents,r,e)}oc.prototype.interrupt=ZR;oc.prototype.transition=V_;var bte=[null];function H_(r,e){var t=r.__transition,o,n;if(t){e=e==null?null:e+"";for(n in t)if((o=t[n]).state>wv&&o.name===e)return new Ci([[r]],bte,e,+n)}return null}var kv=r=>()=>r;function N9(r,{sourceEvent:e,target:t,selection:o,mode:n,dispatch:i}){Object.defineProperties(this,{type:{value:r,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:t,enumerable:!0,configurable:!0},selection:{value:o,enumerable:!0,configurable:!0},mode:{value:n,enumerable:!0,configurable:!0},_:{value:i}})}function z_(r){r.stopImmediatePropagation()}function Mv(r){r.preventDefault(),r.stopImmediatePropagation()}var j_={name:"drag"},x9={name:"space"},O1={name:"handle"},F1={name:"center"},{abs:X_,max:Oi,min:Fi}=Math;function K_(r){return[+r[0],+r[1]]}function C9(r){return[K_(r[0]),K_(r[1])]}var Tv={name:"x",handles:["w","e"].map(XA),input:function(r,e){return r==null?null:[[+r[0],e[0][1]],[+r[1],e[1][1]]]},output:function(r){return r&&[r[0][0],r[1][0]]}},Wv={name:"y",handles:["n","s"].map(XA),input:function(r,e){return r==null?null:[[e[0][0],+r[0]],[e[1][0],+r[1]]]},output:function(r){return r&&[r[0][1],r[1][1]]}},Ste={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(XA),input:function(r){return r==null?null:C9(r)},output:function(r){return r}},Oh={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Y_={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},q_={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Ate={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},wte={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function XA(r){return{type:r}}function Pte(r){return!r.ctrlKey&&!r.button}function vte(){var r=this.ownerSVGElement||this;return r.hasAttribute("viewBox")?(r=r.viewBox.baseVal,[[r.x,r.y],[r.x+r.width,r.y+r.height]]):[[0,0],[r.width.baseVal.value,r.height.baseVal.value]]}function Nte(){return navigator.maxTouchPoints||"ontouchstart"in this}function E9(r){for(;!r.__brush;)if(!(r=r.parentNode))return;return r.__brush}function xte(r){return r[0][0]===r[1][0]||r[0][1]===r[1][1]}function J_(r){var e=r.__brush;return e?e.dim.output(e.selection):null}function $_(){return k9(Tv)}function Q_(){return k9(Wv)}function Z_(){return k9(Ste)}function k9(r){var e=vte,t=Pte,o=Nte,n=!0,i=Xs("start","brush","end"),a=6,s;function l(f){var b=f.property("__brush",d).selectAll(".overlay").data([XA("overlay")]);b.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Oh.overlay).merge(b).each(function(){var P=E9(this).extent;yn(this).attr("x",P[0][0]).attr("y",P[0][1]).attr("width",P[1][0]-P[0][0]).attr("height",P[1][1]-P[0][1])}),f.selectAll(".selection").data([XA("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Oh.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var w=f.selectAll(".handle").data(r.handles,function(P){return P.type});w.exit().remove(),w.enter().append("rect").attr("class",function(P){return"handle handle--"+P.type}).attr("cursor",function(P){return Oh[P.type]}),f.each(u).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",m).filter(o).on("touchstart.brush",m).on("touchmove.brush",p).on("touchend.brush touchcancel.brush",g).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}l.move=function(f,b,w){f.tween?f.on("start.brush",function(P){c(this,arguments).beforestart().start(P)}).on("interrupt.brush end.brush",function(P){c(this,arguments).end(P)}).tween("brush",function(){var P=this,A=P.__brush,M=c(P,arguments),E=A.selection,U=r.input(typeof b=="function"?b.apply(this,arguments):b,A.extent),F=Di(E,U);function L(T){A.selection=T===1&&U===null?null:F(T),u.call(P),M.brush()}return E!==null&&U!==null?L:L(1)}):f.each(function(){var P=this,A=arguments,M=P.__brush,E=r.input(typeof b=="function"?b.apply(P,A):b,M.extent),U=c(P,A).beforestart();Ol(P),M.selection=E===null?null:E,u.call(P),U.start(w).brush(w).end(w)})},l.clear=function(f,b){l.move(f,null,b)};function u(){var f=yn(this),b=E9(this).selection;b?(f.selectAll(".selection").style("display",null).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1]),f.selectAll(".handle").style("display",null).attr("x",function(w){return w.type[w.type.length-1]==="e"?b[1][0]-a/2:b[0][0]-a/2}).attr("y",function(w){return w.type[0]==="s"?b[1][1]-a/2:b[0][1]-a/2}).attr("width",function(w){return w.type==="n"||w.type==="s"?b[1][0]-b[0][0]+a:a}).attr("height",function(w){return w.type==="e"||w.type==="w"?b[1][1]-b[0][1]+a:a})):f.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function c(f,b,w){var P=f.__brush.emitter;return P&&(!w||!P.clean)?P:new h(f,b,w)}function h(f,b,w){this.that=f,this.args=b,this.state=f.__brush,this.active=0,this.clean=w}h.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(f,b){return this.starting?(this.starting=!1,this.emit("start",f,b)):this.emit("brush",f),this},brush:function(f,b){return this.emit("brush",f,b),this},end:function(f,b){return--this.active===0&&(delete this.state.emitter,this.emit("end",f,b)),this},emit:function(f,b,w){var P=yn(this.that).datum();i.call(f,this.that,new N9(f,{sourceEvent:b,target:l,selection:r.output(this.state.selection),mode:w,dispatch:i}),P)}};function m(f){if(s&&!f.touches||!t.apply(this,arguments))return;var b=this,w=f.target.__data__.type,P=(n&&f.metaKey?w="overlay":w)==="selection"?j_:n&&f.altKey?F1:O1,A=r===Wv?null:Ate[w],M=r===Tv?null:wte[w],E=E9(b),U=E.extent,F=E.selection,L=U[0][0],T,v,I=U[0][1],D,C,O=U[1][0],G,j,Y=U[1][1],z,X,ue=0,Q=0,ye,J=A&&M&&n&&f.shiftKey,ve,Me,re=Array.from(f.touches||[f],oe=>{let _e=oe.identifier;return oe=ai(oe,b),oe.point0=oe.slice(),oe.identifier=_e,oe});Ol(b);var pe=c(b,arguments,!0).beforestart();if(w==="overlay"){F&&(ye=!0);let oe=[re[0],re[1]||re[0]];E.selection=F=[[T=r===Wv?L:Fi(oe[0][0],oe[1][0]),D=r===Tv?I:Fi(oe[0][1],oe[1][1])],[G=r===Wv?O:Oi(oe[0][0],oe[1][0]),z=r===Tv?Y:Oi(oe[0][1],oe[1][1])]],re.length>1&&De(f)}else T=F[0][0],D=F[0][1],G=F[1][0],z=F[1][1];v=T,C=D,j=G,X=z;var ae=yn(b).attr("pointer-events","none"),ne=ae.selectAll(".overlay").attr("cursor",Oh[w]);if(f.touches)pe.moved=ce,pe.ended=Je;else{var Ce=yn(f.view).on("mousemove.brush",ce,!0).on("mouseup.brush",Je,!0);n&&Ce.on("keydown.brush",Qe,!0).on("keyup.brush",tt,!0),Ep(f.view)}u.call(b),pe.start(f,P.name);function ce(oe){for(let _e of oe.changedTouches||[oe])for(let Fe of re)Fe.identifier===_e.identifier&&(Fe.cur=ai(_e,b));if(J&&!ve&&!Me&&re.length===1){let _e=re[0];X_(_e.cur[0]-_e[0])>X_(_e.cur[1]-_e[1])?Me=!0:ve=!0}for(let _e of re)_e.cur&&(_e[0]=_e.cur[0],_e[1]=_e.cur[1]);ye=!0,Mv(oe),De(oe)}function De(oe){let _e=re[0],Fe=_e.point0;var ze;switch(ue=_e[0]-Fe[0],Q=_e[1]-Fe[1],P){case x9:case j_:{A&&(ue=Oi(L-T,Fi(O-G,ue)),v=T+ue,j=G+ue),M&&(Q=Oi(I-D,Fi(Y-z,Q)),C=D+Q,X=z+Q);break}case O1:{re[1]?(A&&(v=Oi(L,Fi(O,re[0][0])),j=Oi(L,Fi(O,re[1][0])),A=1),M&&(C=Oi(I,Fi(Y,re[0][1])),X=Oi(I,Fi(Y,re[1][1])),M=1)):(A<0?(ue=Oi(L-T,Fi(O-T,ue)),v=T+ue,j=G):A>0&&(ue=Oi(L-G,Fi(O-G,ue)),v=T,j=G+ue),M<0?(Q=Oi(I-D,Fi(Y-D,Q)),C=D+Q,X=z):M>0&&(Q=Oi(I-z,Fi(Y-z,Q)),C=D,X=z+Q));break}case F1:{A&&(v=Oi(L,Fi(O,T-ue*A)),j=Oi(L,Fi(O,G+ue*A))),M&&(C=Oi(I,Fi(Y,D-Q*M)),X=Oi(I,Fi(Y,z+Q*M)));break}}j<v&&(A*=-1,ze=T,T=G,G=ze,ze=v,v=j,j=ze,w in Y_&&ne.attr("cursor",Oh[w=Y_[w]])),X<C&&(M*=-1,ze=D,D=z,z=ze,ze=C,C=X,X=ze,w in q_&&ne.attr("cursor",Oh[w=q_[w]])),E.selection&&(F=E.selection),ve&&(v=F[0][0],j=F[1][0]),Me&&(C=F[0][1],X=F[1][1]),(F[0][0]!==v||F[0][1]!==C||F[1][0]!==j||F[1][1]!==X)&&(E.selection=[[v,C],[j,X]],u.call(b),pe.brush(oe,P.name))}function Je(oe){if(z_(oe),oe.touches){if(oe.touches.length)return;s&&clearTimeout(s),s=setTimeout(function(){s=null},500)}else Cp(oe.view,ye),Ce.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);ae.attr("pointer-events","all"),ne.attr("cursor",Oh.overlay),E.selection&&(F=E.selection),xte(F)&&(E.selection=null,u.call(b)),pe.end(oe,P.name)}function Qe(oe){switch(oe.keyCode){case 16:{J=A&&M;break}case 18:{P===O1&&(A&&(G=j-ue*A,T=v+ue*A),M&&(z=X-Q*M,D=C+Q*M),P=F1,De(oe));break}case 32:{(P===O1||P===F1)&&(A<0?G=j-ue:A>0&&(T=v-ue),M<0?z=X-Q:M>0&&(D=C-Q),P=x9,ne.attr("cursor",Oh.selection),De(oe));break}default:return}Mv(oe)}function tt(oe){switch(oe.keyCode){case 16:{J&&(ve=Me=J=!1,De(oe));break}case 18:{P===F1&&(A<0?G=j:A>0&&(T=v),M<0?z=X:M>0&&(D=C),P=O1,De(oe));break}case 32:{P===x9&&(oe.altKey?(A&&(G=j-ue*A,T=v+ue*A),M&&(z=X-Q*M,D=C+Q*M),P=F1):(A<0?G=j:A>0&&(T=v),M<0?z=X:M>0&&(D=C),P=O1),ne.attr("cursor",Oh[w]),De(oe));break}default:return}Mv(oe)}}function p(f){c(this,arguments).moved(f)}function g(f){c(this,arguments).ended(f)}function d(){var f=this.__brush||{selection:null};return f.extent=C9(e.apply(this,arguments)),f.dim=r,f}return l.extent=function(f){return arguments.length?(e=typeof f=="function"?f:kv(C9(f)),l):e},l.filter=function(f){return arguments.length?(t=typeof f=="function"?f:kv(!!f),l):t},l.touchable=function(f){return arguments.length?(o=typeof f=="function"?f:kv(!!f),l):o},l.handleSize=function(f){return arguments.length?(a=+f,l):a},l.keyModifiers=function(f){return arguments.length?(n=!!f,l):n},l.on=function(){var f=i.on.apply(i,arguments);return f===i?l:f},l}var M9=Math.abs,Ry=Math.cos,_y=Math.sin,eU=Math.PI,KA=eU/2,T9=eU*2,W9=Math.max,Lv=1e-12;function L9(r,e){return Array.from({length:e-r},(t,o)=>r+o)}function Ete(r){return function(e,t){return r(e.source.value+e.target.value,t.source.value+t.target.value)}}function tU(){return I9(!1,!1)}function rU(){return I9(!1,!0)}function oU(){return I9(!0,!1)}function I9(r,e){var t=0,o=null,n=null,i=null;function a(s){var l=s.length,u=new Array(l),c=L9(0,l),h=new Array(l*l),m=new Array(l),p=0,g;s=Float64Array.from({length:l*l},e?(d,f)=>s[f%l][f/l|0]:(d,f)=>s[f/l|0][f%l]);for(let d=0;d<l;++d){let f=0;for(let b=0;b<l;++b)f+=s[d*l+b]+r*s[b*l+d];p+=u[d]=f}p=W9(0,T9-t*l)/p,g=p?t:T9/l;{let d=0;o&&c.sort((f,b)=>o(u[f],u[b]));for(let f of c){let b=d;if(r){let w=L9(~l+1,l).filter(P=>P<0?s[~P*l+f]:s[f*l+P]);n&&w.sort((P,A)=>n(P<0?-s[~P*l+f]:s[f*l+P],A<0?-s[~A*l+f]:s[f*l+A]));for(let P of w)if(P<0){let A=h[~P*l+f]||(h[~P*l+f]={source:null,target:null});A.target={index:f,startAngle:d,endAngle:d+=s[~P*l+f]*p,value:s[~P*l+f]}}else{let A=h[f*l+P]||(h[f*l+P]={source:null,target:null});A.source={index:f,startAngle:d,endAngle:d+=s[f*l+P]*p,value:s[f*l+P]}}m[f]={index:f,startAngle:b,endAngle:d,value:u[f]}}else{let w=L9(0,l).filter(P=>s[f*l+P]||s[P*l+f]);n&&w.sort((P,A)=>n(s[f*l+P],s[f*l+A]));for(let P of w){let A;if(f<P?(A=h[f*l+P]||(h[f*l+P]={source:null,target:null}),A.source={index:f,startAngle:d,endAngle:d+=s[f*l+P]*p,value:s[f*l+P]}):(A=h[P*l+f]||(h[P*l+f]={source:null,target:null}),A.target={index:f,startAngle:d,endAngle:d+=s[f*l+P]*p,value:s[f*l+P]},f===P&&(A.source=A.target)),A.source&&A.target&&A.source.value<A.target.value){let M=A.source;A.source=A.target,A.target=M}}m[f]={index:f,startAngle:b,endAngle:d,value:u[f]}}d+=g}}return h=Object.values(h),h.groups=m,i?h.sort(i):h}return a.padAngle=function(s){return arguments.length?(t=W9(0,s),a):t},a.sortGroups=function(s){return arguments.length?(o=s,a):o},a.sortSubgroups=function(s){return arguments.length?(n=s,a):n},a.sortChords=function(s){return arguments.length?(s==null?i=null:(i=Ete(s))._=s,a):i&&i._},a}var R9=Math.PI,_9=2*R9,Uy=1e-6,Cte=_9-Uy;function nU(r){this._+=r[0];for(let e=1,t=r.length;e<t;++e)this._+=arguments[e]+r[e]}function kte(r){let e=Math.floor(r);if(!(e>=0))throw new Error(`invalid digits: ${r}`);if(e>15)return nU;let t=10**e;return function(o){this._+=o[0];for(let n=1,i=o.length;n<i;++n)this._+=Math.round(arguments[n]*t)/t+o[n]}}var Fh=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?nU:kte(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,o,n){this._append`Q${+e},${+t},${this._x1=+o},${this._y1=+n}`}bezierCurveTo(e,t,o,n,i,a){this._append`C${+e},${+t},${+o},${+n},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,o,n,i){if(e=+e,t=+t,o=+o,n=+n,i=+i,i<0)throw new Error(`negative radius: ${i}`);let a=this._x1,s=this._y1,l=o-e,u=n-t,c=a-e,h=s-t,m=c*c+h*h;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(m>Uy)if(!(Math.abs(h*l-u*c)>Uy)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=o-a,g=n-s,d=l*l+u*u,f=p*p+g*g,b=Math.sqrt(d),w=Math.sqrt(m),P=i*Math.tan((R9-Math.acos((d+m-f)/(2*b*w)))/2),A=P/w,M=P/b;Math.abs(A-1)>Uy&&this._append`L${e+A*c},${t+A*h}`,this._append`A${i},${i},0,0,${+(h*p>c*g)},${this._x1=e+M*l},${this._y1=t+M*u}`}}arc(e,t,o,n,i,a){if(e=+e,t=+t,o=+o,a=!!a,o<0)throw new Error(`negative radius: ${o}`);let s=o*Math.cos(n),l=o*Math.sin(n),u=e+s,c=t+l,h=1^a,m=a?n-i:i-n;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Uy||Math.abs(this._y1-c)>Uy)&&this._append`L${u},${c}`,o&&(m<0&&(m=m%_9+_9),m>Cte?this._append`A${o},${o},0,1,${h},${e-s},${t-l}A${o},${o},0,1,${h},${this._x1=u},${this._y1=c}`:m>Uy&&this._append`A${o},${o},0,${+(m>=R9)},${h},${this._x1=e+o*Math.cos(i)},${this._y1=t+o*Math.sin(i)}`)}rect(e,t,o,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${o=+o}v${+n}h${-o}Z`}toString(){return this._}};function YA(){return new Fh}YA.prototype=Fh.prototype;function iU(r=3){return new Fh(+r)}var aU=Array.prototype.slice;function _p(r){return function(){return r}}function Mte(r){return r.source}function Tte(r){return r.target}function sU(r){return r.radius}function Wte(r){return r.startAngle}function Lte(r){return r.endAngle}function Ite(){return 0}function Rte(){return 10}function lU(r){var e=Mte,t=Tte,o=sU,n=sU,i=Wte,a=Lte,s=Ite,l=null;function u(){var c,h=e.apply(this,arguments),m=t.apply(this,arguments),p=s.apply(this,arguments)/2,g=aU.call(arguments),d=+o.apply(this,(g[0]=h,g)),f=i.apply(this,g)-KA,b=a.apply(this,g)-KA,w=+n.apply(this,(g[0]=m,g)),P=i.apply(this,g)-KA,A=a.apply(this,g)-KA;if(l||(l=c=YA()),p>Lv&&(M9(b-f)>p*2+Lv?b>f?(f+=p,b-=p):(f-=p,b+=p):f=b=(f+b)/2,M9(A-P)>p*2+Lv?A>P?(P+=p,A-=p):(P-=p,A+=p):P=A=(P+A)/2),l.moveTo(d*Ry(f),d*_y(f)),l.arc(0,0,d,f,b),f!==P||b!==A)if(r){var M=+r.apply(this,arguments),E=w-M,U=(P+A)/2;l.quadraticCurveTo(0,0,E*Ry(P),E*_y(P)),l.lineTo(w*Ry(U),w*_y(U)),l.lineTo(E*Ry(A),E*_y(A))}else l.quadraticCurveTo(0,0,w*Ry(P),w*_y(P)),l.arc(0,0,w,P,A);if(l.quadraticCurveTo(0,0,d*Ry(f),d*_y(f)),l.closePath(),c)return l=null,c+""||null}return r&&(u.headRadius=function(c){return arguments.length?(r=typeof c=="function"?c:_p(+c),u):r}),u.radius=function(c){return arguments.length?(o=n=typeof c=="function"?c:_p(+c),u):o},u.sourceRadius=function(c){return arguments.length?(o=typeof c=="function"?c:_p(+c),u):o},u.targetRadius=function(c){return arguments.length?(n=typeof c=="function"?c:_p(+c),u):n},u.startAngle=function(c){return arguments.length?(i=typeof c=="function"?c:_p(+c),u):i},u.endAngle=function(c){return arguments.length?(a=typeof c=="function"?c:_p(+c),u):a},u.padAngle=function(c){return arguments.length?(s=typeof c=="function"?c:_p(+c),u):s},u.source=function(c){return arguments.length?(e=c,u):e},u.target=function(c){return arguments.length?(t=c,u):t},u.context=function(c){return arguments.length?(l=c??null,u):l},u}function uU(){return lU()}function cU(){return lU(Rte)}var _te=Array.prototype,Iv=_te.slice;function hU(r,e){return r-e}function mU(r){for(var e=0,t=r.length,o=r[t-1][1]*r[0][0]-r[t-1][0]*r[0][1];++e<t;)o+=r[e-1][1]*r[e][0]-r[e-1][0]*r[e][1];return o}var lc=r=>()=>r;function pU(r,e){for(var t=-1,o=e.length,n;++t<o;)if(n=Ute(r,e[t]))return n;return 0}function Ute(r,e){for(var t=e[0],o=e[1],n=-1,i=0,a=r.length,s=a-1;i<a;s=i++){var l=r[i],u=l[0],c=l[1],h=r[s],m=h[0],p=h[1];if(Bte(l,h,e))return 0;c>o!=p>o&&t<(m-u)*(o-c)/(p-c)+u&&(n=-n)}return n}function Bte(r,e,t){var o;return Dte(r,e,t)&&Ote(r[o=+(r[0]===e[0])],t[o],e[o])}function Dte(r,e,t){return(e[0]-r[0])*(t[1]-r[1])===(t[0]-r[0])*(e[1]-r[1])}function Ote(r,e,t){return r<=e&&e<=t||t<=e&&e<=r}function dU(){}var Gh=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function qA(){var r=1,e=1,t=Sy,o=l;function n(u){var c=t(u);if(Array.isArray(c))c=c.slice().sort(hU);else{let h=Wh(u,Fte);for(c=Ba(...by(h[0],h[1],c),c);c[c.length-1]>=h[1];)c.pop();for(;c[1]<h[0];)c.shift()}return c.map(h=>i(u,h))}function i(u,c){let h=c==null?NaN:+c;if(isNaN(h))throw new Error(`invalid value: ${c}`);var m=[],p=[];return a(u,h,function(g){o(g,u,h),mU(g)>0?m.push([g]):p.push(g)}),p.forEach(function(g){for(var d=0,f=m.length,b;d<f;++d)if(pU((b=m[d])[0],g)!==-1){b.push(g);return}}),{type:"MultiPolygon",value:c,coordinates:m}}function a(u,c,h){var m=new Array,p=new Array,g,d,f,b,w,P;for(g=d=-1,b=By(u[0],c),Gh[b<<1].forEach(A);++g<r-1;)f=b,b=By(u[g+1],c),Gh[f|b<<1].forEach(A);for(Gh[b<<0].forEach(A);++d<e-1;){for(g=-1,b=By(u[d*r+r],c),w=By(u[d*r],c),Gh[b<<1|w<<2].forEach(A);++g<r-1;)f=b,b=By(u[d*r+r+g+1],c),P=w,w=By(u[d*r+g+1],c),Gh[f|b<<1|w<<2|P<<3].forEach(A);Gh[b|w<<3].forEach(A)}for(g=-1,w=u[d*r]>=c,Gh[w<<2].forEach(A);++g<r-1;)P=w,w=By(u[d*r+g+1],c),Gh[w<<2|P<<3].forEach(A);Gh[w<<3].forEach(A);function A(M){var E=[M[0][0]+g,M[0][1]+d],U=[M[1][0]+g,M[1][1]+d],F=s(E),L=s(U),T,v;(T=p[F])?(v=m[L])?(delete p[T.end],delete m[v.start],T===v?(T.ring.push(U),h(T.ring)):m[T.start]=p[v.end]={start:T.start,end:v.end,ring:T.ring.concat(v.ring)}):(delete p[T.end],T.ring.push(U),p[T.end=L]=T):(T=m[L])?(v=p[F])?(delete m[T.start],delete p[v.end],T===v?(T.ring.push(U),h(T.ring)):m[v.start]=p[T.end]={start:v.start,end:T.end,ring:v.ring.concat(T.ring)}):(delete m[T.start],T.ring.unshift(E),m[T.start=F]=T):m[F]=p[L]={start:F,end:L,ring:[E,U]}}}function s(u){return u[0]*2+u[1]*(r+1)*4}function l(u,c,h){u.forEach(function(m){var p=m[0],g=m[1],d=p|0,f=g|0,b=U9(c[f*r+d]);p>0&&p<r&&d===p&&(m[0]=yU(p,U9(c[f*r+d-1]),b,h)),g>0&&g<e&&f===g&&(m[1]=yU(g,U9(c[(f-1)*r+d]),b,h))})}return n.contour=i,n.size=function(u){if(!arguments.length)return[r,e];var c=Math.floor(u[0]),h=Math.floor(u[1]);if(!(c>=0&&h>=0))throw new Error("invalid size");return r=c,e=h,n},n.thresholds=function(u){return arguments.length?(t=typeof u=="function"?u:Array.isArray(u)?lc(Iv.call(u)):lc(u),n):t},n.smooth=function(u){return arguments.length?(o=u?l:dU,n):o===l},n}function Fte(r){return isFinite(r)?r:NaN}function By(r,e){return r==null?!1:+r>=e}function U9(r){return r==null||isNaN(r=+r)?-1/0:r}function yU(r,e,t,o){let n=o-e,i=t-e,a=isFinite(n)||isFinite(i)?n/i:Math.sign(n)/Math.sign(i);return isNaN(a)?r:r+a-.5}function Gte(r){return r[0]}function Vte(r){return r[1]}function Hte(){return 1}function fU(){var r=Gte,e=Vte,t=Hte,o=960,n=500,i=20,a=2,s=i*3,l=o+s*2>>a,u=n+s*2>>a,c=lc(20);function h(w){var P=new Float32Array(l*u),A=Math.pow(2,-a),M=-1;for(let D of w){var E=(r(D,++M,w)+s)*A,U=(e(D,M,w)+s)*A,F=+t(D,M,w);if(F&&E>=0&&E<l&&U>=0&&U<u){var L=Math.floor(E),T=Math.floor(U),v=E-L-.5,I=U-T-.5;P[L+T*l]+=(1-v)*(1-I)*F,P[L+1+T*l]+=v*(1-I)*F,P[L+1+(T+1)*l]+=v*I*F,P[L+(T+1)*l]+=(1-v)*I*F}}return B4({data:P,width:l,height:u},i*A),P}function m(w){var P=h(w),A=c(P),M=Math.pow(2,2*a);return Array.isArray(A)||(A=Ba(Number.MIN_VALUE,Rh(P)/M,A)),qA().size([l,u]).thresholds(A.map(E=>E*M))(P).map((E,U)=>(E.value=+A[U],p(E)))}m.contours=function(w){var P=h(w),A=qA().size([l,u]),M=Math.pow(2,2*a),E=U=>{U=+U;var F=p(A.contour(P,U*M));return F.value=U,F};return Object.defineProperty(E,"max",{get:()=>Rh(P)/M}),E};function p(w){return w.coordinates.forEach(g),w}function g(w){w.forEach(d)}function d(w){w.forEach(f)}function f(w){w[0]=w[0]*Math.pow(2,a)-s,w[1]=w[1]*Math.pow(2,a)-s}function b(){return s=i*3,l=o+s*2>>a,u=n+s*2>>a,m}return m.x=function(w){return arguments.length?(r=typeof w=="function"?w:lc(+w),m):r},m.y=function(w){return arguments.length?(e=typeof w=="function"?w:lc(+w),m):e},m.weight=function(w){return arguments.length?(t=typeof w=="function"?w:lc(+w),m):t},m.size=function(w){if(!arguments.length)return[o,n];var P=+w[0],A=+w[1];if(!(P>=0&&A>=0))throw new Error("invalid size");return o=P,n=A,b()},m.cellSize=function(w){if(!arguments.length)return 1<<a;if(!((w=+w)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(w)/Math.LN2),b()},m.thresholds=function(w){return arguments.length?(c=typeof w=="function"?w:Array.isArray(w)?lc(Iv.call(w)):lc(w),m):c},m.bandwidth=function(w){if(!arguments.length)return Math.sqrt(i*(i+1));if(!((w=+w)>=0))throw new Error("invalid bandwidth");return i=(Math.sqrt(4*w*w+1)-1)/2,b()},m}var $r=11102230246251565e-32,_n=134217729,JA=(3+8*$r)*$r;function Dy(r,e,t,o,n){let i,a,s,l,u=e[0],c=o[0],h=0,m=0;c>u==c>-u?(i=u,u=e[++h]):(i=c,c=o[++m]);let p=0;if(h<r&&m<t)for(c>u==c>-u?(a=u+i,s=i-(a-u),u=e[++h]):(a=c+i,s=i-(a-c),c=o[++m]),i=a,s!==0&&(n[p++]=s);h<r&&m<t;)c>u==c>-u?(a=i+u,l=a-i,s=i-(a-l)+(u-l),u=e[++h]):(a=i+c,l=a-i,s=i-(a-l)+(c-l),c=o[++m]),i=a,s!==0&&(n[p++]=s);for(;h<r;)a=i+u,l=a-i,s=i-(a-l)+(u-l),u=e[++h],i=a,s!==0&&(n[p++]=s);for(;m<t;)a=i+c,l=a-i,s=i-(a-l)+(c-l),c=o[++m],i=a,s!==0&&(n[p++]=s);return(i!==0||p===0)&&(n[p++]=i),p}function $A(r,e){let t=e[0];for(let o=1;o<r;o++)t+=e[o];return t}function Ke(r){return new Float64Array(r)}var zte=(3+16*$r)*$r,jte=(2+12*$r)*$r,Xte=(9+64*$r)*$r*$r,G1=Ke(4),gU=Ke(8),bU=Ke(12),SU=Ke(16),da=Ke(4);function Kte(r,e,t,o,n,i,a){let s,l,u,c,h,m,p,g,d,f,b,w,P,A,M,E,U,F,L=r-n,T=t-n,v=e-i,I=o-i;A=L*I,m=_n*L,p=m-(m-L),g=L-p,m=_n*I,d=m-(m-I),f=I-d,M=g*f-(A-p*d-g*d-p*f),E=v*T,m=_n*v,p=m-(m-v),g=v-p,m=_n*T,d=m-(m-T),f=T-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,G1[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,G1[1]=P-(b+h)+(h-E),F=w+b,h=F-w,G1[2]=w-(F-h)+(b-h),G1[3]=F;let D=$A(4,G1),C=jte*a;if(D>=C||-D>=C||(h=r-L,s=r-(L+h)+(h-n),h=t-T,u=t-(T+h)+(h-n),h=e-v,l=e-(v+h)+(h-i),h=o-I,c=o-(I+h)+(h-i),s===0&&l===0&&u===0&&c===0)||(C=Xte*a+JA*Math.abs(D),D+=L*c+I*s-(v*u+T*l),D>=C||-D>=C))return D;A=s*I,m=_n*s,p=m-(m-s),g=s-p,m=_n*I,d=m-(m-I),f=I-d,M=g*f-(A-p*d-g*d-p*f),E=l*T,m=_n*l,p=m-(m-l),g=l-p,m=_n*T,d=m-(m-T),f=T-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,da[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,da[1]=P-(b+h)+(h-E),F=w+b,h=F-w,da[2]=w-(F-h)+(b-h),da[3]=F;let O=Dy(4,G1,4,da,gU);A=L*c,m=_n*L,p=m-(m-L),g=L-p,m=_n*c,d=m-(m-c),f=c-d,M=g*f-(A-p*d-g*d-p*f),E=v*u,m=_n*v,p=m-(m-v),g=v-p,m=_n*u,d=m-(m-u),f=u-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,da[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,da[1]=P-(b+h)+(h-E),F=w+b,h=F-w,da[2]=w-(F-h)+(b-h),da[3]=F;let G=Dy(O,gU,4,da,bU);A=s*c,m=_n*s,p=m-(m-s),g=s-p,m=_n*c,d=m-(m-c),f=c-d,M=g*f-(A-p*d-g*d-p*f),E=l*u,m=_n*l,p=m-(m-l),g=l-p,m=_n*u,d=m-(m-u),f=u-d,U=g*f-(E-p*d-g*d-p*f),b=M-U,h=M-b,da[0]=M-(b+h)+(h-U),w=A+b,h=w-A,P=A-(w-h)+(b-h),b=P-E,h=P-b,da[1]=P-(b+h)+(h-E),F=w+b,h=F-w,da[2]=w-(F-h)+(b-h),da[3]=F;let j=Dy(G,bU,4,da,SU);return SU[j-1]}function V1(r,e,t,o,n,i){let a=(e-i)*(t-n),s=(r-n)*(o-i),l=a-s,u=Math.abs(a+s);return Math.abs(l)>=zte*u?l:-Kte(r,e,t,o,n,i,u)}var OJe=(7+56*$r)*$r,FJe=(3+28*$r)*$r,GJe=(26+288*$r)*$r*$r,VJe=Ke(4),HJe=Ke(4),zJe=Ke(4),jJe=Ke(4),XJe=Ke(4),KJe=Ke(4),YJe=Ke(4),qJe=Ke(4),JJe=Ke(4),$Je=Ke(8),QJe=Ke(8),ZJe=Ke(8),e$e=Ke(4),t$e=Ke(8),r$e=Ke(8),o$e=Ke(16),n$e=Ke(12),i$e=Ke(192),a$e=Ke(192);var u$e=(10+96*$r)*$r,c$e=(4+48*$r)*$r,h$e=(44+576*$r)*$r*$r,m$e=Ke(4),p$e=Ke(4),d$e=Ke(4),y$e=Ke(4),f$e=Ke(4),g$e=Ke(4),b$e=Ke(4),S$e=Ke(4),A$e=Ke(8),w$e=Ke(8),P$e=Ke(8),v$e=Ke(8),N$e=Ke(8),x$e=Ke(8),E$e=Ke(8),C$e=Ke(8),k$e=Ke(8),M$e=Ke(4),T$e=Ke(4),W$e=Ke(4),L$e=Ke(8),I$e=Ke(16),R$e=Ke(16),_$e=Ke(16),U$e=Ke(32),B$e=Ke(32),D$e=Ke(48),O$e=Ke(64),F$e=Ke(1152),G$e=Ke(1152);var j$e=(16+224*$r)*$r,X$e=(5+72*$r)*$r,K$e=(71+1408*$r)*$r*$r,Y$e=Ke(4),q$e=Ke(4),J$e=Ke(4),$$e=Ke(4),Q$e=Ke(4),Z$e=Ke(4),eQe=Ke(4),tQe=Ke(4),rQe=Ke(4),oQe=Ke(4),nQe=Ke(24),iQe=Ke(24),aQe=Ke(24),sQe=Ke(24),lQe=Ke(24),uQe=Ke(24),cQe=Ke(24),hQe=Ke(24),mQe=Ke(24),pQe=Ke(24),dQe=Ke(1152),yQe=Ke(1152),fQe=Ke(1152),gQe=Ke(1152),bQe=Ke(1152),SQe=Ke(2304),AQe=Ke(2304),wQe=Ke(3456),PQe=Ke(5760),vQe=Ke(8),NQe=Ke(8),xQe=Ke(8),EQe=Ke(16),CQe=Ke(24),kQe=Ke(48),MQe=Ke(48),TQe=Ke(96),WQe=Ke(192),LQe=Ke(384),IQe=Ke(384),RQe=Ke(384),_Qe=Ke(768);var UQe=Ke(96),BQe=Ke(96),DQe=Ke(96),OQe=Ke(1152);var wU=Math.pow(2,-52),Rv=new Uint32Array(512),z1=class r{static from(e,t=Zte,o=ere){let n=e.length,i=new Float64Array(n*2);for(let a=0;a<n;a++){let s=e[a];i[2*a]=t(s),i[2*a+1]=o(s)}return new r(i)}constructor(e){let t=e.length>>1;if(t>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;let o=Math.max(2*t-5,0);this._triangles=new Uint32Array(o*3),this._halfedges=new Int32Array(o*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:o,_hullTri:n,_hullHash:i}=this,a=e.length>>1,s=1/0,l=1/0,u=-1/0,c=-1/0;for(let L=0;L<a;L++){let T=e[2*L],v=e[2*L+1];T<s&&(s=T),v<l&&(l=v),T>u&&(u=T),v>c&&(c=v),this._ids[L]=L}let h=(s+u)/2,m=(l+c)/2,p=0,g=0,d=0;for(let L=0,T=1/0;L<a;L++){let v=B9(h,m,e[2*L],e[2*L+1]);v<T&&(p=L,T=v)}let f=e[2*p],b=e[2*p+1];for(let L=0,T=1/0;L<a;L++){if(L===p)continue;let v=B9(f,b,e[2*L],e[2*L+1]);v<T&&v>0&&(g=L,T=v)}let w=e[2*g],P=e[2*g+1],A=1/0;for(let L=0;L<a;L++){if(L===p||L===g)continue;let T=$te(f,b,w,P,e[2*L],e[2*L+1]);T<A&&(d=L,A=T)}let M=e[2*d],E=e[2*d+1];if(A===1/0){for(let v=0;v<a;v++)this._dists[v]=e[2*v]-e[0]||e[2*v+1]-e[1];H1(this._ids,this._dists,0,a-1);let L=new Uint32Array(a),T=0;for(let v=0,I=-1/0;v<a;v++){let D=this._ids[v],C=this._dists[D];C>I&&(L[T++]=D,I=C)}this.hull=L.subarray(0,T),this.triangles=new Uint32Array(0),this.halfedges=new Int32Array(0);return}if(V1(f,b,w,P,M,E)<0){let L=g,T=w,v=P;g=d,w=M,P=E,d=L,M=T,E=v}let U=Qte(f,b,w,P,M,E);this._cx=U.x,this._cy=U.y;for(let L=0;L<a;L++)this._dists[L]=B9(e[2*L],e[2*L+1],U.x,U.y);H1(this._ids,this._dists,0,a-1),this._hullStart=p;let F=3;o[p]=t[d]=g,o[g]=t[p]=d,o[d]=t[g]=p,n[p]=0,n[g]=1,n[d]=2,i.fill(-1),i[this._hashKey(f,b)]=p,i[this._hashKey(w,P)]=g,i[this._hashKey(M,E)]=d,this.trianglesLen=0,this._addTriangle(p,g,d,-1,-1,-1);for(let L=0,T=0,v=0;L<this._ids.length;L++){let I=this._ids[L],D=e[2*I],C=e[2*I+1];if(L>0&&Math.abs(D-T)<=wU&&Math.abs(C-v)<=wU||(T=D,v=C,I===p||I===g||I===d))continue;let O=0;for(let X=0,ue=this._hashKey(D,C);X<this._hashSize&&(O=i[(ue+X)%this._hashSize],!(O!==-1&&O!==o[O]));X++);O=t[O];let G=O,j;for(;j=o[G],V1(D,C,e[2*G],e[2*G+1],e[2*j],e[2*j+1])>=0;)if(G=j,G===O){G=-1;break}if(G===-1)continue;let Y=this._addTriangle(G,I,o[G],-1,-1,n[G]);n[I]=this._legalize(Y+2),n[G]=Y,F++;let z=o[G];for(;j=o[z],V1(D,C,e[2*z],e[2*z+1],e[2*j],e[2*j+1])<0;)Y=this._addTriangle(z,I,j,n[I],-1,n[z]),n[I]=this._legalize(Y+2),o[z]=z,F--,z=j;if(G===O)for(;j=t[G],V1(D,C,e[2*j],e[2*j+1],e[2*G],e[2*G+1])<0;)Y=this._addTriangle(j,I,G,-1,n[G],n[j]),this._legalize(Y+2),n[j]=Y,o[G]=G,F--,G=j;this._hullStart=t[I]=G,o[G]=t[z]=I,o[I]=z,i[this._hashKey(D,C)]=I,i[this._hashKey(e[2*G],e[2*G+1])]=G}this.hull=new Uint32Array(F);for(let L=0,T=this._hullStart;L<F;L++)this.hull[L]=T,T=o[T];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(qte(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){let{_triangles:t,_halfedges:o,coords:n}=this,i=0,a=0;for(;;){let s=o[e],l=e-e%3;if(a=l+(e+2)%3,s===-1){if(i===0)break;e=Rv[--i];continue}let u=s-s%3,c=l+(e+1)%3,h=u+(s+2)%3,m=t[a],p=t[e],g=t[c],d=t[h];if(Jte(n[2*m],n[2*m+1],n[2*p],n[2*p+1],n[2*g],n[2*g+1],n[2*d],n[2*d+1])){t[e]=d,t[s]=m;let b=o[h];if(b===-1){let P=this._hullStart;do{if(this._hullTri[P]===h){this._hullTri[P]=e;break}P=this._hullPrev[P]}while(P!==this._hullStart)}this._link(e,b),this._link(s,o[a]),this._link(a,h);let w=u+(s+1)%3;i<Rv.length&&(Rv[i++]=w)}else{if(i===0)break;e=Rv[--i]}}return a}_link(e,t){this._halfedges[e]=t,t!==-1&&(this._halfedges[t]=e)}_addTriangle(e,t,o,n,i,a){let s=this.trianglesLen;return this._triangles[s]=e,this._triangles[s+1]=t,this._triangles[s+2]=o,this._link(s,n),this._link(s+1,i),this._link(s+2,a),this.trianglesLen+=3,s}};function qte(r,e){let t=r/(Math.abs(r)+Math.abs(e));return(e>0?3-t:1+t)/4}function B9(r,e,t,o){let n=r-t,i=e-o;return n*n+i*i}function Jte(r,e,t,o,n,i,a,s){let l=r-a,u=e-s,c=t-a,h=o-s,m=n-a,p=i-s,g=l*l+u*u,d=c*c+h*h,f=m*m+p*p;return l*(h*f-d*p)-u*(c*f-d*m)+g*(c*p-h*m)<0}function $te(r,e,t,o,n,i){let a=t-r,s=o-e,l=n-r,u=i-e,c=a*a+s*s,h=l*l+u*u,m=.5/(a*u-s*l),p=(u*c-s*h)*m,g=(a*h-l*c)*m;return p*p+g*g}function Qte(r,e,t,o,n,i){let a=t-r,s=o-e,l=n-r,u=i-e,c=a*a+s*s,h=l*l+u*u,m=.5/(a*u-s*l),p=r+(u*c-s*h)*m,g=e+(a*h-l*c)*m;return{x:p,y:g}}function H1(r,e,t,o){if(o-t<=20)for(let n=t+1;n<=o;n++){let i=r[n],a=e[i],s=n-1;for(;s>=t&&e[r[s]]>a;)r[s+1]=r[s--];r[s+1]=i}else{let n=t+o>>1,i=t+1,a=o;QA(r,n,i),e[r[t]]>e[r[o]]&&QA(r,t,o),e[r[i]]>e[r[o]]&&QA(r,i,o),e[r[t]]>e[r[i]]&&QA(r,t,i);let s=r[i],l=e[s];for(;;){do i++;while(e[r[i]]<l);do a--;while(e[r[a]]>l);if(a<i)break;QA(r,i,a)}r[t+1]=r[a],r[a]=s,o-i+1>=a-t?(H1(r,e,i,o),H1(r,e,t,a-1)):(H1(r,e,t,a-1),H1(r,e,i,o))}}function QA(r,e,t){let o=r[e];r[e]=r[t],r[t]=o}function Zte(r){return r[0]}function ere(r){return r[1]}var Ys=class{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,o){e=+e,t=+t,o=+o;let n=e+o,i=t;if(o<0)throw new Error("negative radius");this._x1===null?this._+=`M${n},${i}`:(Math.abs(this._x1-n)>1e-6||Math.abs(this._y1-i)>1e-6)&&(this._+="L"+n+","+i),o&&(this._+=`A${o},${o},0,1,1,${e-o},${t}A${o},${o},0,1,1,${this._x1=n},${this._y1=i}`)}rect(e,t,o,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+o}v${+n}h${-o}Z`}value(){return this._||null}};var Up=class{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}};var Oy=class{constructor(e,[t,o,n,i]=[0,0,960,500]){if(!((n=+n)>=(t=+t))||!((i=+i)>=(o=+o)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=n,this.xmin=t,this.ymax=i,this.ymin=o,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){let{delaunay:{points:e,hull:t,triangles:o},vectors:n}=this,i,a,s=this.circumcenters=this._circumcenters.subarray(0,o.length/3*2);for(let d=0,f=0,b=o.length,w,P;d<b;d+=3,f+=2){let A=o[d]*2,M=o[d+1]*2,E=o[d+2]*2,U=e[A],F=e[A+1],L=e[M],T=e[M+1],v=e[E],I=e[E+1],D=L-U,C=T-F,O=v-U,G=I-F,j=(D*G-C*O)*2;if(Math.abs(j)<1e-9){if(i===void 0){i=a=0;for(let z of t)i+=e[z*2],a+=e[z*2+1];i/=t.length,a/=t.length}let Y=1e9*Math.sign((i-U)*G-(a-F)*O);w=(U+v)/2-Y*G,P=(F+I)/2+Y*O}else{let Y=1/j,z=D*D+C*C,X=O*O+G*G;w=U+(G*z-C*X)*Y,P=F+(D*X-O*z)*Y}s[f]=w,s[f+1]=P}let l=t[t.length-1],u,c=l*4,h,m=e[2*l],p,g=e[2*l+1];n.fill(0);for(let d=0;d<t.length;++d)l=t[d],u=c,h=m,p=g,c=l*4,m=e[2*l],g=e[2*l+1],n[u+2]=n[c]=p-g,n[u+3]=n[c+1]=m-h}render(e){let t=e==null?e=new Ys:void 0,{delaunay:{halfedges:o,inedges:n,hull:i},circumcenters:a,vectors:s}=this;if(i.length<=1)return null;for(let c=0,h=o.length;c<h;++c){let m=o[c];if(m<c)continue;let p=Math.floor(c/3)*2,g=Math.floor(m/3)*2,d=a[p],f=a[p+1],b=a[g],w=a[g+1];this._renderSegment(d,f,b,w,e)}let l,u=i[i.length-1];for(let c=0;c<i.length;++c){l=u,u=i[c];let h=Math.floor(n[u]/3)*2,m=a[h],p=a[h+1],g=l*4,d=this._project(m,p,s[g+2],s[g+3]);d&&this._renderSegment(m,p,d[0],d[1],e)}return t&&t.value()}renderBounds(e){let t=e==null?e=new Ys:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){let o=t==null?t=new Ys:void 0,n=this._clip(e);if(n===null||!n.length)return;t.moveTo(n[0],n[1]);let i=n.length;for(;n[0]===n[i-2]&&n[1]===n[i-1]&&i>1;)i-=2;for(let a=2;a<i;a+=2)(n[a]!==n[a-2]||n[a+1]!==n[a-1])&&t.lineTo(n[a],n[a+1]);return t.closePath(),o&&o.value()}*cellPolygons(){let{delaunay:{points:e}}=this;for(let t=0,o=e.length/2;t<o;++t){let n=this.cellPolygon(t);n&&(n.index=t,yield n)}}cellPolygon(e){let t=new Up;return this.renderCell(e,t),t.value()}_renderSegment(e,t,o,n,i){let a,s=this._regioncode(e,t),l=this._regioncode(o,n);s===0&&l===0?(i.moveTo(e,t),i.lineTo(o,n)):(a=this._clipSegment(e,t,o,n,s,l))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(e,t,o){return t=+t,t!==t||(o=+o,o!==o)?!1:this.delaunay._step(e,t,o)===e}*neighbors(e){let t=this._clip(e);if(t)for(let o of this.delaunay.neighbors(e)){let n=this._clip(o);if(n){e:for(let i=0,a=t.length;i<a;i+=2)for(let s=0,l=n.length;s<l;s+=2)if(t[i]===n[s]&&t[i+1]===n[s+1]&&t[(i+2)%a]===n[(s+l-2)%l]&&t[(i+3)%a]===n[(s+l-1)%l]){yield o;break e}}}}_cell(e){let{circumcenters:t,delaunay:{inedges:o,halfedges:n,triangles:i}}=this,a=o[e];if(a===-1)return null;let s=[],l=a;do{let u=Math.floor(l/3);if(s.push(t[u*2],t[u*2+1]),l=l%3===2?l-2:l+1,i[l]!==e)break;l=n[l]}while(l!==a&&l!==-1);return s}_clip(e){if(e===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];let t=this._cell(e);if(t===null)return null;let{vectors:o}=this,n=e*4;return this._simplify(o[n]||o[n+1]?this._clipInfinite(e,t,o[n],o[n+1],o[n+2],o[n+3]):this._clipFinite(e,t))}_clipFinite(e,t){let o=t.length,n=null,i,a,s=t[o-2],l=t[o-1],u,c=this._regioncode(s,l),h,m=0;for(let p=0;p<o;p+=2)if(i=s,a=l,s=t[p],l=t[p+1],u=c,c=this._regioncode(s,l),u===0&&c===0)h=m,m=0,n?n.push(s,l):n=[s,l];else{let g,d,f,b,w;if(u===0){if((g=this._clipSegment(i,a,s,l,u,c))===null)continue;[d,f,b,w]=g}else{if((g=this._clipSegment(s,l,i,a,c,u))===null)continue;[b,w,d,f]=g,h=m,m=this._edgecode(d,f),h&&m&&this._edge(e,h,m,n,n.length),n?n.push(d,f):n=[d,f]}h=m,m=this._edgecode(b,w),h&&m&&this._edge(e,h,m,n,n.length),n?n.push(b,w):n=[b,w]}if(n)h=m,m=this._edgecode(n[0],n[1]),h&&m&&this._edge(e,h,m,n,n.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return n}_clipSegment(e,t,o,n,i,a){let s=i<a;for(s&&([e,t,o,n,i,a]=[o,n,e,t,a,i]);;){if(i===0&&a===0)return s?[o,n,e,t]:[e,t,o,n];if(i&a)return null;let l,u,c=i||a;c&8?(l=e+(o-e)*(this.ymax-t)/(n-t),u=this.ymax):c&4?(l=e+(o-e)*(this.ymin-t)/(n-t),u=this.ymin):c&2?(u=t+(n-t)*(this.xmax-e)/(o-e),l=this.xmax):(u=t+(n-t)*(this.xmin-e)/(o-e),l=this.xmin),i?(e=l,t=u,i=this._regioncode(e,t)):(o=l,n=u,a=this._regioncode(o,n))}}_clipInfinite(e,t,o,n,i,a){let s=Array.from(t),l;if((l=this._project(s[0],s[1],o,n))&&s.unshift(l[0],l[1]),(l=this._project(s[s.length-2],s[s.length-1],i,a))&&s.push(l[0],l[1]),s=this._clipFinite(e,s))for(let u=0,c=s.length,h,m=this._edgecode(s[c-2],s[c-1]);u<c;u+=2)h=m,m=this._edgecode(s[u],s[u+1]),h&&m&&(u=this._edge(e,h,m,s,u),c=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,o,n,i){for(;t!==o;){let a,s;switch(t){case 5:t=4;continue;case 4:t=6,a=this.xmax,s=this.ymin;break;case 6:t=2;continue;case 2:t=10,a=this.xmax,s=this.ymax;break;case 10:t=8;continue;case 8:t=9,a=this.xmin,s=this.ymax;break;case 9:t=1;continue;case 1:t=5,a=this.xmin,s=this.ymin;break}(n[i]!==a||n[i+1]!==s)&&this.contains(e,a,s)&&(n.splice(i,0,a,s),i+=2)}return i}_project(e,t,o,n){let i=1/0,a,s,l;if(n<0){if(t<=this.ymin)return null;(a=(this.ymin-t)/n)<i&&(l=this.ymin,s=e+(i=a)*o)}else if(n>0){if(t>=this.ymax)return null;(a=(this.ymax-t)/n)<i&&(l=this.ymax,s=e+(i=a)*o)}if(o>0){if(e>=this.xmax)return null;(a=(this.xmax-e)/o)<i&&(s=this.xmax,l=t+(i=a)*n)}else if(o<0){if(e<=this.xmin)return null;(a=(this.xmin-e)/o)<i&&(s=this.xmin,l=t+(i=a)*n)}return[s,l]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){let o=(t+2)%e.length,n=(t+4)%e.length;(e[t]===e[o]&&e[o]===e[n]||e[t+1]===e[o+1]&&e[o+1]===e[n+1])&&(e.splice(o,2),t-=2)}e.length||(e=null)}return e}};var tre=2*Math.PI,j1=Math.pow;function rre(r){return r[0]}function ore(r){return r[1]}function nre(r){let{triangles:e,coords:t}=r;for(let o=0;o<e.length;o+=3){let n=2*e[o],i=2*e[o+1],a=2*e[o+2];if((t[a]-t[n])*(t[i+1]-t[n+1])-(t[i]-t[n])*(t[a+1]-t[n+1])>1e-10)return!1}return!0}function ire(r,e,t){return[r+Math.sin(r+e)*t,e+Math.cos(r-e)*t]}var ZA=class r{static from(e,t=rre,o=ore,n){return new r("length"in e?are(e,t,o,n):Float64Array.from(sre(e,t,o,n)))}constructor(e){this._delaunator=new z1(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){let e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&nre(e)){this.collinear=Int32Array.from({length:t.length/2},(m,p)=>p).sort((m,p)=>t[2*m]-t[2*p]||t[2*m+1]-t[2*p+1]);let l=this.collinear[0],u=this.collinear[this.collinear.length-1],c=[t[2*l],t[2*l+1],t[2*u],t[2*u+1]],h=1e-8*Math.hypot(c[3]-c[1],c[2]-c[0]);for(let m=0,p=t.length/2;m<p;++m){let g=ire(t[2*m],t[2*m+1],h);t[2*m]=g[0],t[2*m+1]=g[1]}this._delaunator=new z1(t)}else delete this.collinear;let o=this.halfedges=this._delaunator.halfedges,n=this.hull=this._delaunator.hull,i=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),s=this._hullIndex.fill(-1);for(let l=0,u=o.length;l<u;++l){let c=i[l%3===2?l-2:l+1];(o[l]===-1||a[c]===-1)&&(a[c]=l)}for(let l=0,u=n.length;l<u;++l)s[n[l]]=l;n.length<=2&&n.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=n[0],a[n[0]]=1,n.length===2&&(a[n[1]]=0,this.triangles[1]=n[1],this.triangles[2]=n[1]))}voronoi(e){return new Oy(this,e)}*neighbors(e){let{inedges:t,hull:o,_hullIndex:n,halfedges:i,triangles:a,collinear:s}=this;if(s){let h=s.indexOf(e);h>0&&(yield s[h-1]),h<s.length-1&&(yield s[h+1]);return}let l=t[e];if(l===-1)return;let u=l,c=-1;do{if(yield c=a[u],u=u%3===2?u-2:u+1,a[u]!==e)return;if(u=i[u],u===-1){let h=o[(n[e]+1)%o.length];h!==c&&(yield h);return}}while(u!==l)}find(e,t,o=0){if(e=+e,e!==e||(t=+t,t!==t))return-1;let n=o,i;for(;(i=this._step(o,e,t))>=0&&i!==o&&i!==n;)o=i;return i}_step(e,t,o){let{inedges:n,hull:i,_hullIndex:a,halfedges:s,triangles:l,points:u}=this;if(n[e]===-1||!u.length)return(e+1)%(u.length>>1);let c=e,h=j1(t-u[e*2],2)+j1(o-u[e*2+1],2),m=n[e],p=m;do{let g=l[p],d=j1(t-u[g*2],2)+j1(o-u[g*2+1],2);if(d<h&&(h=d,c=g),p=p%3===2?p-2:p+1,l[p]!==e)break;if(p=s[p],p===-1){if(p=i[(a[e]+1)%i.length],p!==g&&j1(t-u[p*2],2)+j1(o-u[p*2+1],2)<h)return p;break}}while(p!==m);return c}render(e){let t=e==null?e=new Ys:void 0,{points:o,halfedges:n,triangles:i}=this;for(let a=0,s=n.length;a<s;++a){let l=n[a];if(l<a)continue;let u=i[a]*2,c=i[l]*2;e.moveTo(o[u],o[u+1]),e.lineTo(o[c],o[c+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){t===void 0&&(!e||typeof e.moveTo!="function")&&(t=e,e=null),t=t==null?2:+t;let o=e==null?e=new Ys:void 0,{points:n}=this;for(let i=0,a=n.length;i<a;i+=2){let s=n[i],l=n[i+1];e.moveTo(s+t,l),e.arc(s,l,t,0,tre)}return o&&o.value()}renderHull(e){let t=e==null?e=new Ys:void 0,{hull:o,points:n}=this,i=o[0]*2,a=o.length;e.moveTo(n[i],n[i+1]);for(let s=1;s<a;++s){let l=2*o[s];e.lineTo(n[l],n[l+1])}return e.closePath(),t&&t.value()}hullPolygon(){let e=new Up;return this.renderHull(e),e.value()}renderTriangle(e,t){let o=t==null?t=new Ys:void 0,{points:n,triangles:i}=this,a=i[e*=3]*2,s=i[e+1]*2,l=i[e+2]*2;return t.moveTo(n[a],n[a+1]),t.lineTo(n[s],n[s+1]),t.lineTo(n[l],n[l+1]),t.closePath(),o&&o.value()}*trianglePolygons(){let{triangles:e}=this;for(let t=0,o=e.length/3;t<o;++t)yield this.trianglePolygon(t)}trianglePolygon(e){let t=new Up;return this.renderTriangle(e,t),t.value()}};function are(r,e,t,o){let n=r.length,i=new Float64Array(n*2);for(let a=0;a<n;++a){let s=r[a];i[a*2]=e.call(o,s,a,r),i[a*2+1]=t.call(o,s,a,r)}return i}function*sre(r,e,t,o){let n=0;for(let i of r)yield e.call(o,i,n,r),yield t.call(o,i,n,r),++n}var PU={},D9={},O9=34,ew=10,F9=13;function NU(r){return new Function("d","return {"+r.map(function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'}).join(",")+"}")}function lre(r,e){var t=NU(r);return function(o,n){return e(t(o),n,r)}}function vU(r){var e=Object.create(null),t=[];return r.forEach(function(o){for(var n in o)n in e||t.push(e[n]=n)}),t}function Da(r,e){var t=r+"",o=t.length;return o<e?new Array(e-o+1).join(0)+t:t}function ure(r){return r<0?"-"+Da(-r,6):r>9999?"+"+Da(r,6):Da(r,4)}function cre(r){var e=r.getUTCHours(),t=r.getUTCMinutes(),o=r.getUTCSeconds(),n=r.getUTCMilliseconds();return isNaN(r)?"Invalid Date":ure(r.getUTCFullYear(),4)+"-"+Da(r.getUTCMonth()+1,2)+"-"+Da(r.getUTCDate(),2)+(n?"T"+Da(e,2)+":"+Da(t,2)+":"+Da(o,2)+"."+Da(n,3)+"Z":o?"T"+Da(e,2)+":"+Da(t,2)+":"+Da(o,2)+"Z":t||e?"T"+Da(e,2)+":"+Da(t,2)+"Z":"")}function Bp(r){var e=new RegExp('["'+r+`
|
|
234
234
|
\r]`),t=r.charCodeAt(0);function o(h,m){var p,g,d=n(h,function(f,b){if(p)return p(f,b-1);g=f,p=m?lre(f,m):NU(f)});return d.columns=g||[],d}function n(h,m){var p=[],g=h.length,d=0,f=0,b,w=g<=0,P=!1;h.charCodeAt(g-1)===ew&&--g,h.charCodeAt(g-1)===F9&&--g;function A(){if(w)return D9;if(P)return P=!1,PU;var E,U=d,F;if(h.charCodeAt(U)===O9){for(;d++<g&&h.charCodeAt(d)!==O9||h.charCodeAt(++d)===O9;);return(E=d)>=g?w=!0:(F=h.charCodeAt(d++))===ew?P=!0:F===F9&&(P=!0,h.charCodeAt(d)===ew&&++d),h.slice(U+1,E-1).replace(/""/g,'"')}for(;d<g;){if((F=h.charCodeAt(E=d++))===ew)P=!0;else if(F===F9)P=!0,h.charCodeAt(d)===ew&&++d;else if(F!==t)continue;return h.slice(U,E)}return w=!0,h.slice(U,g)}for(;(b=A())!==D9;){for(var M=[];b!==PU&&b!==D9;)M.push(b),b=A();m&&(M=m(M,f++))==null||p.push(M)}return p}function i(h,m){return h.map(function(p){return m.map(function(g){return c(p[g])}).join(r)})}function a(h,m){return m==null&&(m=vU(h)),[m.map(c).join(r)].concat(i(h,m)).join(`
|
|
235
235
|
`)}function s(h,m){return m==null&&(m=vU(h)),i(h,m).join(`
|
|
236
236
|
`)}function l(h){return h.map(u).join(`
|
|
@@ -248,10 +248,10 @@ License: MIT
|
|
|
248
248
|
`&&(v=`
|
|
249
249
|
`);var X=0,ue=!1;this.parse=function(Q,ye,J){if(typeof Q!="string")throw new Error("Input must be a string");var ve=Q.length,Me=T.length,re=v.length,pe=I.length,ae=F(D),ne=[],Ce=[],ce=[],De=X=0;if(!Q)return Wt();if(O||O!==!1&&Q.indexOf(Y)===-1){for(var Je=Q.split(v),Qe=0;Qe<Je.length;Qe++){if(ce=Je[Qe],X+=ce.length,Qe!==Je.length-1)X+=v.length;else if(J)return Wt();if(!I||ce.substring(0,pe)!==I){if(ae){if(ne=[],Oe(ce.split(T)),Ye(),ue)return Wt()}else Oe(ce.split(T));if(C&&C<=Qe)return ne=ne.slice(0,C),Wt(!0)}}return Wt()}for(var tt=Q.indexOf(T,X),oe=Q.indexOf(v,X),_e=new RegExp(b(z)+b(Y),"g"),Fe=Q.indexOf(Y,X);;)if(Q[X]===Y)for(Fe=X,X++;;){if((Fe=Q.indexOf(Y,Fe+1))===-1)return J||Ce.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:ne.length,index:X}),Bt();if(Fe===ve-1)return Bt(Q.substring(X,Fe).replace(_e,Y));if(Y===z&&Q[Fe+1]===z)Fe++;else if(Y===z||Fe===0||Q[Fe-1]!==z){tt!==-1&&tt<Fe+1&&(tt=Q.indexOf(T,Fe+1));var ze=kt((oe=oe!==-1&&oe<Fe+1?Q.indexOf(v,Fe+1):oe)===-1?tt:Math.min(tt,oe));if(Q.substr(Fe+1+ze,Me)===T){ce.push(Q.substring(X,Fe).replace(_e,Y)),Q[X=Fe+1+ze+Me]!==Y&&(Fe=Q.indexOf(Y,X)),tt=Q.indexOf(T,X),oe=Q.indexOf(v,X);break}if(ze=kt(oe),Q.substring(Fe+1+ze,Fe+1+ze+re)===v){if(ce.push(Q.substring(X,Fe).replace(_e,Y)),dt(Fe+1+ze+re),tt=Q.indexOf(T,X),Fe=Q.indexOf(Y,X),ae&&(Ye(),ue))return Wt();if(C&&ne.length>=C)return Wt(!0);break}Ce.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:ne.length,index:X}),Fe++}}else if(I&&ce.length===0&&Q.substring(X,X+pe)===I){if(oe===-1)return Wt();X=oe+re,oe=Q.indexOf(v,X),tt=Q.indexOf(T,X)}else if(tt!==-1&&(tt<oe||oe===-1))ce.push(Q.substring(X,tt)),X=tt+Me,tt=Q.indexOf(T,X);else{if(oe===-1)break;if(ce.push(Q.substring(X,oe)),dt(oe+re),ae&&(Ye(),ue))return Wt();if(C&&ne.length>=C)return Wt(!0)}return Bt();function Oe(mt){ne.push(mt),De=X}function kt(mt){var Pt=0;return Pt=mt!==-1&&(mt=Q.substring(Fe+1,mt))&&mt.trim()===""?mt.length:Pt}function Bt(mt){return J||(mt===void 0&&(mt=Q.substring(X)),ce.push(mt),X=ve,Oe(ce),ae&&Ye()),Wt()}function dt(mt){X=mt,Oe(ce),ce=[],oe=Q.indexOf(v,X)}function Wt(mt){if(L.header&&!ye&&ne.length&&!j){var Pt=ne[0],Rt=Object.create(null),Qt=new Set(Pt);let Yt=!1;for(let Jt=0;Jt<Pt.length;Jt++){let fr=c(Pt[Jt]);if(Rt[fr=F(L.transformHeader)?L.transformHeader(fr,Jt):fr]){let gr,ro=Rt[fr];for(;gr=fr+"_"+ro,ro++,Qt.has(gr););Qt.add(gr),Pt[Jt]=gr,Rt[fr]++,Yt=!0,(G=G===null?{}:G)[gr]=fr}else Rt[fr]=1,Pt[Jt]=fr;Qt.add(fr)}Yt&&console.warn("Duplicate headers found and renamed."),j=!0}return{data:ne,errors:Ce,meta:{delimiter:T,linebreak:v,aborted:ue,truncated:!!mt,cursor:De+(ye||0),renamedHeaders:G}}}function Ye(){D(Wt()),ne=[],Ce=[]}},this.abort=function(){ue=!0},this.getCharIndex=function(){return X}}function P(L){var T=L.data,v=s[T.workerId],I=!1;if(T.error)v.userError(T.error,T.file);else if(T.results&&T.results.data){var D={abort:function(){I=!0,A(T.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:M,resume:M};if(F(v.userStep)){for(var C=0;C<T.results.data.length&&(v.userStep({data:T.results.data[C],errors:T.results.errors,meta:T.results.meta},D),!I);C++);delete T.results}else F(v.userChunk)&&(v.userChunk(T.results,D,T.file),delete T.results)}T.finished&&!I&&A(T.workerId,T.results)}function A(L,T){var v=s[L];F(v.userComplete)&&v.userComplete(T),v.terminate(),delete s[L]}function M(){throw new Error("Not implemented.")}function E(L){if(typeof L!="object"||L===null)return L;var T,v=Array.isArray(L)?[]:{};for(T in L)v[T]=E(L[T]);return v}function U(L,T){return function(){L.apply(T,arguments)}}function F(L){return typeof L=="function"}return u.parse=function(L,T){var v=(T=T||{}).dynamicTyping||!1;if(F(v)&&(T.dynamicTypingFunction=v,v={}),T.dynamicTyping=v,T.transform=!!F(T.transform)&&T.transform,!T.worker||!u.WORKERS_SUPPORTED)return v=null,u.NODE_STREAM_INPUT,typeof L=="string"?(L=c(L),v=new(T.download?m:g)(T)):L.readable===!0&&F(L.read)&&F(L.on)?v=new d(T):(o.File&&L instanceof File||L instanceof Object)&&(v=new p(T)),v.stream(L);(v=(()=>{var I;return!!u.WORKERS_SUPPORTED&&(I=(()=>{var D=o.URL||o.webkitURL||null,C=t.toString();return u.BLOB_URL||(u.BLOB_URL=D.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",C,")();"],{type:"text/javascript"})))})(),(I=new o.Worker(I)).onmessage=P,I.id=l++,s[I.id]=I)})()).userStep=T.step,v.userChunk=T.chunk,v.userComplete=T.complete,v.userError=T.error,T.step=F(T.step),T.chunk=F(T.chunk),T.complete=F(T.complete),T.error=F(T.error),delete T.worker,v.postMessage({input:L,config:T,workerId:v.id})},u.unparse=function(L,T){var v=!1,I=!0,D=",",C=`\r
|
|
250
250
|
`,O='"',G=O+O,j=!1,Y=null,z=!1,X=((()=>{if(typeof T=="object"){if(typeof T.delimiter!="string"||u.BAD_DELIMITERS.filter(function(ye){return T.delimiter.indexOf(ye)!==-1}).length||(D=T.delimiter),typeof T.quotes!="boolean"&&typeof T.quotes!="function"&&!Array.isArray(T.quotes)||(v=T.quotes),typeof T.skipEmptyLines!="boolean"&&typeof T.skipEmptyLines!="string"||(j=T.skipEmptyLines),typeof T.newline=="string"&&(C=T.newline),typeof T.quoteChar=="string"&&(O=T.quoteChar,G=O+O),typeof T.header=="boolean"&&(I=T.header),Array.isArray(T.columns)){if(T.columns.length===0)throw new Error("Option columns is empty");Y=T.columns}T.escapeChar!==void 0&&(G=T.escapeChar+O),T.escapeFormulae instanceof RegExp?z=T.escapeFormulae:typeof T.escapeFormulae=="boolean"&&T.escapeFormulae&&(z=/^[=+\-@\t\r].*$/)}})(),new RegExp(b(O),"g"));if(typeof L=="string"&&(L=JSON.parse(L)),Array.isArray(L)){if(!L.length||Array.isArray(L[0]))return ue(null,L,j);if(typeof L[0]=="object")return ue(Y||Object.keys(L[0]),L,j)}else if(typeof L=="object")return typeof L.data=="string"&&(L.data=JSON.parse(L.data)),Array.isArray(L.data)&&(L.fields||(L.fields=L.meta&&L.meta.fields||Y),L.fields||(L.fields=Array.isArray(L.data[0])?L.fields:typeof L.data[0]=="object"?Object.keys(L.data[0]):[]),Array.isArray(L.data[0])||typeof L.data[0]=="object"||(L.data=[L.data])),ue(L.fields||[],L.data||[],j);throw new Error("Unable to serialize unrecognized input");function ue(ye,J,ve){var Me="",re=(typeof ye=="string"&&(ye=JSON.parse(ye)),typeof J=="string"&&(J=JSON.parse(J)),Array.isArray(ye)&&0<ye.length),pe=!Array.isArray(J[0]);if(re&&I){for(var ae=0;ae<ye.length;ae++)0<ae&&(Me+=D),Me+=Q(ye[ae],ae);0<J.length&&(Me+=C)}for(var ne=0;ne<J.length;ne++){var Ce=(re?ye:J[ne]).length,ce=!1,De=re?Object.keys(J[ne]).length===0:J[ne].length===0;if(ve&&!re&&(ce=ve==="greedy"?J[ne].join("").trim()==="":J[ne].length===1&&J[ne][0].length===0),ve==="greedy"&&re){for(var Je=[],Qe=0;Qe<Ce;Qe++){var tt=pe?ye[Qe]:Qe;Je.push(J[ne][tt])}ce=Je.join("").trim()===""}if(!ce){for(var oe=0;oe<Ce;oe++){0<oe&&!De&&(Me+=D);var _e=re&&pe?ye[oe]:oe;Me+=Q(J[ne][_e],oe)}ne<J.length-1&&(!ve||0<Ce&&!De)&&(Me+=C)}}return Me}function Q(ye,J){var ve,Me,re;return ye==null?"":ye.constructor===Date?JSON.stringify(ye).slice(1,25):(re=!1,z&&typeof ye=="string"&&z.test(ye)&&(ye="'"+ye,re=!0),Me=(ve=ye.toString()).replace(X,G),(re=re||v===!0||typeof v=="function"&&v(ye,J)||Array.isArray(v)&&v[J]||((pe,ae)=>{for(var ne=0;ne<ae.length;ne++)if(-1<pe.indexOf(ae[ne]))return!0;return!1})(Me,u.BAD_DELIMITERS)||-1<Me.indexOf(D)||-1<ve.indexOf(O)||Me.charAt(0)===" "||Me.charAt(Me.length-1)===" ")?O+Me+O:Me)}},u.RECORD_SEP="",u.UNIT_SEP="",u.BYTE_ORDER_MARK="\uFEFF",u.BAD_DELIMITERS=["\r",`
|
|
251
|
-
`,'"',u.BYTE_ORDER_MARK],u.WORKERS_SUPPORTED=!i&&!!o.Worker,u.NODE_STREAM_INPUT=1,u.LocalChunkSize=10485760,u.RemoteChunkSize=5242880,u.DefaultDelimiter=",",u.Parser=w,u.ParserHandle=f,u.NetworkStreamer=m,u.FileStreamer=p,u.StringStreamer=g,u.ReadableStreamStreamer=d,o.jQuery&&((n=o.jQuery).fn.parse=function(L){var T=L.config||{},v=[];return this.each(function(C){if(!(n(this).prop("tagName").toUpperCase()==="INPUT"&&n(this).attr("type").toLowerCase()==="file"&&o.FileReader)||!this.files||this.files.length===0)return!0;for(var O=0;O<this.files.length;O++)v.push({file:this.files[O],inputElem:this,instanceConfig:n.extend({},T)})}),I(),this;function I(){if(v.length===0)F(L.complete)&&L.complete();else{var C,O,G,j,Y=v[0];if(F(L.before)){var z=L.before(Y.file,Y.inputElem);if(typeof z=="object"){if(z.action==="abort")return C="AbortError",O=Y.file,G=Y.inputElem,j=z.reason,void(F(L.error)&&L.error({name:C},O,G,j));if(z.action==="skip")return void D();typeof z.config=="object"&&(Y.instanceConfig=n.extend(Y.instanceConfig,z.config))}else if(z==="skip")return void D()}var X=Y.instanceConfig.complete;Y.instanceConfig.complete=function(ue){F(X)&&X(ue,Y.file,Y.inputElem),D()},u.parse(Y.file,Y.instanceConfig)}}function D(){v.splice(0,1),I()}}),a&&(o.onmessage=function(L){L=L.data,u.WORKER_ID===void 0&&L&&(u.WORKER_ID=L.workerId),typeof L.input=="string"?o.postMessage({workerId:u.WORKER_ID,results:u.parse(L.input,L.config),finished:!0}):(o.File&&L.input instanceof File||L.input instanceof Object)&&(L=u.parse(L.input,L.config))&&o.postMessage({workerId:u.WORKER_ID,results:L,finished:!0})}),(m.prototype=Object.create(h.prototype)).constructor=m,(p.prototype=Object.create(h.prototype)).constructor=p,(g.prototype=Object.create(g.prototype)).constructor=g,(d.prototype=Object.create(h.prototype)).constructor=d,u})}});/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Wie="6th of October City|giza|EG|31.05|29.82|368|W|,A Coruna|galicia|ES|-8.4|43.37|250|W|corunha;la coruna;coruna;la corogne;the groyne,Aachen|north rhine westphalia|DE|6.08|50.78|265|W|aix la chapelle;aquisgrao;aken;akwizgran;aquisgrana;aquisgrano;aquisgran;cachy;kreisfreie stadt aachen,Aalborg|north denmark|DK|9.92|57.05|142|W|alborg,Aba|abia state|NG|7.37|5.11|1160|W|,Abadan|khuzestan|IR|48.3|30.34|231|W|,Abaetetuba|para|BR|-48.88|-1.72|158|W|,Abakaliki|ebonyi state|NG|8.11|6.32|134|W|,Abakan|khakasiya republic|RU|91.43|53.72|184|W|,Abasolo|MX11|MX|-101.53|20.45|27|N|,Abbotsford|BC|CA|-122.25|49.06|141|NW|,Abbottabad|khyber pakhtunkhwa|PK|73.21|34.15|275|W|,Abeche|ouadai|TD|20.83|13.83|139|W|,Abengourou|comoe district|CI|-3.5|6.73|130|W|,Abeokuta|ogun state|NG|3.35|7.16|735|W|,Aberdeen|scotland|GB|-2.1|57.14|198|W|,Aberdeen|southern district|HK|114.15|22.25|157|W|aberdeen harbour,Aberdeen|SD|US|-98.49|45.46|28|N|,Abha|asir region|SA|42.51|18.22|210|W|,Abidjan|abidjan autonomous district|CI|-4|5.35|6321|W|abican;abidzan;abiyan,Abiko|chiba|JP|140.02|35.87|131|W|,Abilene|TX|US|-99.73|32.45|125|N|,Abington|PA|US|-75.12|40.12|55|N|abington township;municipio de abington,Abobo|abidjan autonomous district|CI|-4.02|5.42|1340|W|,Abohar|punjab|IN|74.2|30.14|145|W|,Abomey-Calavi|atlantique|BJ|2.36|6.45|385|W|,Abu al-Kahsib|basra|IQ|47.88|30.44|357|W|,Abu Dhabi|abu dhabi|AE|54.4|24.45|1807|W|abou dabi;abu dabi;abu zabi,Abu Ghurayb|baghdad|IQ|44.18|33.31|900|W|abou ghraib;abu ghraib;abu ghuraib,Abu Kabir|sharqia|EG|31.67|30.73|154|W|,Abuja|fct|NG|7.5|9.06|2690|W|abudza;abuya,Acambaro|MX11|MX|-100.72|20.03|57|N|,Acapulco de Juarez|MX12|MX|-99.91|16.85|658|NW|acapulco,Acarigua|portuguesa|VE|-69.2|9.55|188|W|,Acatzingo|MX21|MX|-97.78|18.98|25|N|san juan acatzingo,Acayucan|MX30|MX|-94.91|17.95|50|N|,Accra|greater accra|GH|-0.2|5.56|1963|W|acra;akra,Acheng|heilongjiang|CN|126.95|45.55|144|W|,Actopan|MX13|MX|-98.94|20.27|32|N|,Ad-Damazin|blue nile|SD|34.36|11.79|186|W|damazin,Ad-Dawahy|port said|EG|32.28|31.24|148|W|al dawahi,Adachi|tokyo|JP|139.81|35.76|695|W|adachi city,Adana|adana|TR|35.33|36.99|1816|W|antioch on sarus,Adapazari|sakarya|TR|30.4|40.78|286|W|,Addis Ababa|addis ababa|ET|38.75|9.02|3860|W|addis abeba;adis abeba,Addison|IL|US|-87.99|41.93|37|N|,Adelaide|south australia|AU|138.6|-34.93|1469|W|adelaida;adelajda,Adelanto|CA|US|-117.41|34.58|33|N|,Aden|aden|YE|45.04|12.78|1079|W|adem,Adiwerna|central java|ID|109.13|-6.94|134|W|,Adiyaman|adiyaman province|TR|38.28|37.76|290|W|adiyamanska,Admiralteisky|st petersburg|RU|30.3|59.92|157|W|,Ado-Ekiti|ekiti state|NG|5.22|7.62|435|W|,Adoni|andhra pradesh|IN|77.27|15.63|184|W|,Afyonkarahisar|afyonkarahisar province|TR|30.54|38.76|251|W|afyon;afyonkarahissar,Agadez|agadez|NE|7.99|16.97|149|W|agades,Agadir|souss massa|MA|-9.6|30.42|698|W|santa cruz,Agartala|tripura|IN|91.28|23.84|400|W|,Agawam|MA|US|-72.61|42.07|28|N|,Agege|lagos|NG|3.33|6.62|683|W|,Ageo|saitama|JP|139.61|35.97|226|W|,Agincourt North|ON|CA|-79.28|43.8|29|N|,Agra|uttar pradesh|IN|78.02|27.18|1430|W|,Agua Caliente|CA|US|-122.49|38.32|27|N|,Agua Dulce|MX30|MX|-94.15|18.14|36|N|,Agua Prieta|MX26|MX|-109.54|31.32|77|N|,Aguas Lindas de Goias|goias|BR|-48.28|-15.76|245|W|,Aguascalientes|MX01|MX|-102.28|21.88|722|NW|aguascalientes city;aguascalientes by,Ahilyanagar|maharashtra|IN|74.74|19.09|367|W|,Ahmadpur East|punjab|PK|71.26|29.14|196|W|ahmedpur east;ahmedpur sharqia;ahmedpur sarki,Ahmedabad|gujarat|IN|72.59|23.03|6357|W|ahmadabad,Ahuntsic-Cartierville|QC|CA|-73.67|45.57|135|NW|,Ahvaz|khuzestan|IR|48.68|31.32|841|W|ahwas;ahwaz,Ahwatukee Foothills|AZ|US|-111.98|33.34|83|N|,Aihara|kanagawa|JP|139.32|35.6|725|W|,Aihui|heilongjiang|CN|127.48|49.98|192|W|,Aiken|SC|US|-81.72|33.56|30|N|,Airdrie|AB|CA|-114.04|51.3|90|N|,Airport|HI|US|-157.93|21.34|28|N|,Ait Melloul|souss massa|MA|-9.5|30.34|187|W|,Aix-en-Provence|provence alpes cote d azur|FR|5.45|43.53|146|W|,Aizawl|mizoram|IN|92.72|23.73|293|W|aijal;aizol;aizwal,Ajalpan|MX21|MX|-97.26|18.38|28|N|,Ajax|ON|CA|-79.03|43.85|119|N|,Ajdabiya|al wahat|LY|20.23|30.76|131|W|adjdabia;adschdabiya;adzdabija;adzedabija;ajdabiyah;ecdebiye,Ajegunle|lagos|NG|3.33|6.45|550|W|,Ajman|ajman|AE|55.48|25.4|490|W|acman;adschman;adzman;ajman city;ajma;ujman,Ajmer|rajasthan|IN|74.64|26.45|542|W|adzmer,Akashi|hyogo|JP|135.01|34.66|303|W|,Akhmim|sohag|EG|31.75|26.56|151|W|,Akita|akita|JP|140.12|39.72|307|W|akita shi,Akola|maharashtra|IN|77|20.71|428|W|,Akowonjo|lagos|NG|3.31|6.61|308|W|,Akron|OH|US|-81.52|41.08|197|NW|,Aksaray|aksaray|TR|34.03|38.37|327|W|,Aktau|mangystau|KZ|51.17|43.66|147|W|aktaou;aktav;aqtau;aqtaw;shevchenko,Aktobe|aktobe|KZ|57.21|50.28|500|W|aktioube;aktiube;aqtobe;aktyubinsk,Akure|ondo state|NG|5.19|7.25|730|W|,Al Ahmadi|al ahmadi|KW|48.08|29.08|637|W|el ahmedi,Al Ain City|abu dhabi|AE|55.76|24.19|846|W|al ain;al ajn;al ayn,Al Ajaylat|an nuqat al khams|LY|12.38|32.76|130|W|,Al 'Amarah|maysan|IQ|47.14|31.84|323|W|amarah;amara,Al 'Ashir min Ramadan|sharqia|EG|31.75|30.3|246|W|cidade do ramadao;citta del decimo ramadan,Al Bab|aleppo|SY|37.52|36.37|130|W|,Al Basrah al Qadimah|basra|IQ|47.82|30.5|2015|W|,Al Diwaniyah|al qadisiyah|IQ|44.93|31.99|318|W|ad diwaniyah;diwaniya;diwaniyya;divanija;ed divaniye,Al Fallujah|anbar|IQ|43.79|33.35|190|W|al falludza;al falluja;falloujah;falludscha;falluja;fallujah;falludza;faluja;faluya;felluce,Al Fayyum|faiyum|EG|30.84|29.31|519|W|el fayum;faijum;fajum;fayoum;fayyum;fayun,Al Hasakah|al hasakah|SY|40.75|36.5|422|W|al hasaka;hasaka;hasakah;haseke;hassake,Al Hawamidiyah|giza|EG|31.25|29.9|155|W|,Al Hillah|babil|IQ|44.42|32.46|455|W|hillah;al hilla;el hille;hilla,Al Hindiyah|karbala|IQ|44.22|32.54|139|W|,Al Hoceima|tanger tetouan al hoceima|MA|-3.94|35.25|395|W|al husajma;alhucemas;villa alhucemas;villa sanjurjo,Al Hudaydah|al hudaydah|YE|42.95|14.8|734|W|el hudeyda,Al Hufuf|eastern province|SA|49.59|25.36|293|W|hofuf;al hofuf;hufuf,Al Jubayl|eastern province|SA|49.62|27.02|237|W|jubail;al jubail;al dschubail;al dzubajl;el cubeyl,Al-Junaynah|western darfur|SD|22.45|13.45|162|W|geneina;al dschunaina;al dzunajna;el geneina,Al Kharj|riyadh region|SA|47.33|24.16|425|W|al khardj;el harc,Al Khums|al marqab|LY|14.26|32.65|201|W|al jums;al chums;el hums;qabilat al khums,Al Khusus|qalyubia|EG|31.32|30.15|488|W|,Al-Kut|wasit|IQ|45.82|32.51|315|W|kut;al koet,Al Madinah|basra|IQ|47.27|30.96|255|W|,Al Mahallah al Kubra|gharbia|EG|31.17|30.97|592|W|,Al Mahmudiyah|baghdad|IQ|44.37|33.06|350|W|,Al Mansurah|dakahlia|EG|31.38|31.04|621|W|al mansura;el mansura;mansourah;mansura,Al Matariyah|dakahlia|EG|32.03|31.18|162|W|,Al Mawsil al Jadidah|nineveh|IQ|43.11|36.33|2065|W|,Al'met'yevsk|tatarstan republic|RU|52.32|54.9|140|W|almetjevsk;almetjewsk,Al Miqdadiyah|diyala|IQ|44.94|33.98|155|W|,Al Mubarraz|eastern province|SA|49.59|25.41|290|W|,Al Muharraq|muharraq|BH|50.61|26.26|176|W|al muharrak;muharraq,Al Qadarif|al qadarif|SD|35.38|14.03|363|W|gedaref;al kadarif;el gadarif;gadaref;gadarif,Al Qahirah al Jadidah||EG|31.44|30.04|313|W|,Al Qamishli|al hasakah|SY|41.23|37.05|184|W|kamischli;kamishli;kamishlie;kamisli;qamichli;qamischli,Al Qurnah|basra|IQ|47.43|31.02|134|W|,Al-'Ubur|qalyubia|EG|31.48|30.23|138|W|,Alabaster|AL|US|-86.82|33.24|32|N|,Alafaya|FL|US|-81.21|28.56|78|N|,Alagoinhas|bahia|BR|-38.42|-12.14|161|W|,Alameda|CA|US|-122.26|37.77|78|N|,Alamo|MX30|MX|-97.68|20.91|25|N|,Alamogordo|NM|US|-105.96|32.9|30|N|,Alandur|tamil nadu|IN|80.21|13|164|W|,Alanya|antalya|TR|32|36.54|364|W|,Alappuzha|kerala|IN|76.33|9.49|240|W|alleppey,Albacete|castille la mancha|ES|-1.86|38.99|173|W|,Albany|NY|US|-73.76|42.65|101|N|,Albany|GA|US|-84.16|31.58|74|N|albania,Albany|OR|US|-123.11|44.64|52|N|,Albany Park|IL|US|-87.72|41.97|52|N|,Albuquerque|NM|US|-106.65|35.08|564|NW|alburquerque;methville,Alcala de Henares|madrid|ES|-3.36|40.48|193|W|compluto,Alcorcon|madrid|ES|-3.82|40.35|172|W|,Aleppo|aleppo|SY|37.16|36.2|2098|W|alep;alepo;halep,Alexandra|gauteng|ZA|28.1|-26.11|179|W|,Alexandria|alexandria|EG|29.92|31.2|5263|W|alejandria;aleksandria;alessandria d egitto;alexandrie;iskandariyah;iskenderiye,Alexandria|VA|US|-77.05|38.8|159|NW|,Alexandria|LA|US|-92.45|31.31|47|N|,Aley|mount lebanon|LB|35.6|33.81|130|W|alayh,Algiers|algiers|DZ|3.09|36.73|2364|W|alger;algeri;algier;aljir;alzir;argel;cezayir,Algonquin|IL|US|-88.29|42.17|30|N|,Alhambra|AZ|US|-112.13|33.5|127|N|,Alhambra|CA|US|-118.13|34.1|85|N|,Aliamanu / Salt Lakes / Foster Village|HI|US|-157.92|21.36|38|N|salt lake,Aliayabiagba|lagos|NG|3.33|6.45|228|W|,Alicante|valencia|ES|-0.48|38.35|348|W|alacante,Alief|TX|US|-95.6|29.71|98|N|,Aligarh|uttar pradesh|IN|78.07|27.88|753|W|,Alimosho|lagos|NG|3.3|6.61|308|W|,Aliso Viejo|CA|US|-117.73|33.57|50|N|,Allapattah|FL|US|-80.22|25.81|54|N|,Allen|TX|US|-96.67|33.1|98|N|,Allen Park|MI|US|-83.21|42.26|27|N|,Allentown|PA|US|-75.49|40.61|120|N|,Allston|MA|US|-71.13|42.36|28|N|,Alma|QC|CA|-71.65|48.55|29|N|,Almaty|almaty|KZ|76.91|43.25|1977|W|almati;alma ata;werny,Almendares|havana|CU|-82.42|23.11|240|W|,Almere Stad|flevoland|NL|5.21|52.37|176|W|almere,Almeria|andalusia|ES|-2.46|36.84|196|W|,Aloha|OR|US|-122.87|45.49|49|N|,Alor Setar|kedah|MY|100.36|6.12|417|W|alor star,Alpharetta|GA|US|-84.29|34.08|63|N|,Altadena|CA|US|-118.13|34.19|42|N|,Altamira|para|BR|-52.21|-3.2|138|W|,Altamira|MX28|MX|-97.94|22.39|59|N|,Altamonte Springs|FL|US|-81.37|28.66|43|N|,Alto Barinas|barinas|VE|-70.23|8.59|284|W|,Alto Hospicio|tarapaca|CL|-70.1|-20.27|142|W|,Alton|IL|US|-90.18|38.89|27|N|,Altona|hamburg|DE|9.93|53.55|250|W|arrondissement daltona;bezirk altona;distretto di altona;hamburgo altona,Altoona|PA|US|-78.39|40.52|45|N|,Alvaro Obregon|MX09|MX|-99.2|19.36|726|NW|,Alvin|TX|US|-95.24|29.42|25|N|,Alvorada|rio grande do sul|BR|-51.08|-30|187|W|,Alwar|rajasthan|IN|76.62|27.56|322|W|,Amadora|lisbon|PT|-9.23|38.75|178|W|,Amagasaki|hyogo|JP|135.42|34.72|459|W|,Amarapura|mandalay region|MM|96.05|21.91|237|W|,Amarillo|TX|US|-101.83|35.22|198|NW|,Ambala|haryana|IN|76.8|30.36|195|W|,Ambarnath|maharashtra|IN|73.17|19.2|253|W|,Ambato|tungurahua province|EC|-78.62|-1.25|387|W|,Ambattur|tamil nadu|IN|80.16|13.1|466|W|,Ambon|maluku|ID|128.18|-3.7|347|W|ambon city;kota ambon,Ameca|MX14|MX|-104.05|20.55|36|N|municipio ameca,Amecameca|MX15|MX|-98.77|19.12|31|N|amecameca de juarez,American Fork|UT|US|-111.8|40.38|28|N|,Americana|sao paulo|BR|-47.33|-22.74|246|W|,Amersfoort|utrecht|NL|5.39|52.16|139|W|,Ames|IA|US|-93.62|42.03|65|N|,Amherst|NY|US|-78.8|42.98|122|N|,Amherst|MA|US|-72.52|42.37|39|N|,Amiens|hauts de france|FR|2.3|49.9|143|W|,Amman|amman|JO|35.95|31.96|1275|W|aman;ama,Amol|mazandaran|IR|52.35|36.47|237|W|,Amozoc de Mota|MX21|MX|-98.05|19.05|95|N|amozoc,Amravati|maharashtra|IN|77.75|20.93|647|W|,Amritsar|punjab|IN|74.88|31.62|1159|W|,Amroha|uttar pradesh|IN|78.47|28.9|176|W|,Amsterdam|north holland|NL|4.89|52.37|741|W|amesterda;amesterdao;amseutereudam;amsterda;amsterodam;amsut erudam;amusuterudamu;aemstelredamme;aemsterdam,An Nhon|gia lai|VN|109.11|13.89|308|W|,Anaco|anzoategui|VE|-64.46|9.43|139|W|,Anaheim|CA|US|-117.91|33.84|350|NW|,Anand|gujarat|IN|72.96|22.55|209|W|,Ananindeua|para|BR|-48.37|-1.37|535|W|,Anantapur|andhra pradesh|IN|77.61|14.68|267|W|,Anantnag|jammu and kashmir|IN|75.15|33.73|150|W|,Anapolis|goias|BR|-48.95|-16.33|319|W|,Anbu|guangdong|CN|116.68|23.45|162|W|,Ancaster|ON|CA|-79.99|43.22|40|N|,Anchorage|AK|US|-149.9|61.22|289|NW|,Anda|heilongjiang|CN|125.3|46.45|181|W|,Anderlecht|brussels capital|BE|4.31|50.84|160|W|,Anderson|IN|US|-85.68|40.11|55|N|,Anderson|SC|US|-82.65|34.5|27|N|,Andijon|andijan region|UZ|72.35|40.78|747|W|andican;andijan;andisjan;andizan;andizjan,Andimeshk|khuzestan|IR|48.35|32.46|135|W|,Andong|gyeongsangbuk do|KR|128.72|36.57|153|W|,Andover|MN|US|-93.29|45.23|32|N|,Ang Mo Kio New Town||SG|103.84|1.38|159|W|,Angarsk|irkutsk oblast|RU|103.91|52.56|243|W|,Angeles City|central luzon|PH|120.58|15.15|483|W|,Angers|pays de la loire|FR|-0.55|47.47|168|W|,Angono|calabarzon|PH|121.15|14.53|134|W|,Angra dos Reis|rio de janeiro|BR|-44.32|-23.01|179|W|,Angren|tashkent region|UZ|70.14|41.02|191|W|,Anjo|aichi|JP|137.08|34.96|188|W|,Ankang|shaanxi|CN|109.02|32.68|870|W|,Ankara|ankara|TR|32.85|39.92|3517|W|ancara;angora,Ankeny|IA|US|-93.61|41.73|56|N|,Ann Arbor|MI|US|-83.74|42.28|117|N|,Annaba|annaba|DZ|7.77|36.9|342|W|bone,Annandale|VA|US|-77.2|38.83|41|N|,Annapolis|MD|US|-76.49|38.98|40|N|,Annex|ON|CA|-79.4|43.67|30|N|,Anqing|anhui|CN|117.05|30.51|804|W|an khanh;an cching;anking,Anqiu|shandong|CN|119.19|36.43|364|W|,Ansan-si|gyeonggi do|KR|126.82|37.32|623|W|ansan,Anshan|liaoning|CN|122.99|41.12|1450|W|an son;an san,Anshun|guizhou|CN|105.93|26.25|765|W|an sun,Antakya|hatay|TR|36.16|36.21|399|W|antioche;antiochia am orontes;antiochia di siria;antiochia vid orontes;antiochie;antiokia;antioquia;antioch;teopolis,Antalya|antalya|TR|30.7|36.91|1335|W|antalia,Antananarivo|analamanga|MG|47.54|-18.91|1349|W|antananarywa;tananarive,Antelope|CA|US|-121.33|38.71|45|N|,Antioch|CA|US|-121.81|38|110|N|,Antipolo|calabarzon|PH|121.12|14.63|913|W|antipolo city,Antofagasta|antofagasta|CL|-70.4|-23.65|401|W|,Antsirabe|vakinankaratra|MG|47.03|-19.87|260|W|,Antsiranana|diana|MG|49.29|-12.32|136|W|diego suarez,Antwerp|flanders|BE|4.4|51.22|529|W|amberes;antuerpia;antverpy;antwerpen;antwerpia;anvers;anversa;kota antwerpen,Anyama|abidjan autonomous district|CI|-4.05|5.49|133|W|,Anyang|henan|CN|114.38|36.1|1146|W|an duong;an jang,Anyang-si|gyeonggi do|KR|126.93|37.39|595|W|anyang,Aomori|aomori|JP|140.73|40.82|298|W|,Apache Junction|AZ|US|-111.55|33.42|38|N|,Apan|MX13|MX|-98.45|19.71|26|N|,Aparecida de Goiania|goias|BR|-49.24|-16.82|527|W|,Apaseo el Alto|MX11|MX|-100.62|20.46|27|N|,Apaseo el Grande|MX11|MX|-100.69|20.55|26|N|,Apatzingan|MX16|MX|-102.36|19.09|102|N|,Apeldoorn|gelderland|NL|5.97|52.21|136|W|,Apex|NC|US|-78.85|35.73|45|N|,Apizaco|MX29|MX|-98.14|19.41|49|N|ciudad de apizaco,Apopka|FL|US|-81.51|28.68|48|N|,Apple Valley|CA|US|-117.19|34.5|72|N|,Apple Valley|MN|US|-93.22|44.73|51|N|,Appleton|WI|US|-88.42|44.26|74|N|,Apucarana|parana|BR|-51.46|-23.55|134|W|,Aqsu|xinjiang|CN|80.28|41.18|535|W|aksou;aksu;ciudad de aksu,Ar Ramtha|irbid|JO|36.01|32.56|155|W|,Ar Raqqah|raqqa|SY|39.01|35.95|531|W|raqqa;rakka,Ar Rayyan|baladiyat ar rayyan|QA|51.42|25.29|272|W|al rayyan,Arabi|somali|ET|42.49|9.96|148|W|,Aracaju|sergipe|BR|-37.07|-10.91|664|W|,Aracatuba|sao paulo|BR|-50.43|-21.21|208|W|,Arad|arad county|RO|21.32|46.18|169|W|,Araguaina|tocantins|BR|-48.21|-7.19|183|W|,Arak|markazi|IR|49.7|34.09|503|W|,Arakawa|tokyo|JP|139.78|35.74|216|W|arakawa city,Arandas|MX14|MX|-102.35|20.71|52|N|,Arapiraca|alagoas|BR|-36.66|-9.75|243|W|,Arar|northern borders region|SA|41.04|30.98|148|W|,Araraquara|sao paulo|BR|-48.18|-21.79|168|W|,Araras|sao paulo|BR|-47.38|-22.36|135|W|,Araruama|rio de janeiro|BR|-42.34|-22.87|137|W|,Araucaria|parana|BR|-49.41|-25.59|162|W|,Araure|portuguesa|VE|-69.24|9.58|181|W|,Arba Minch|south ethiopia regional state|ET|37.55|6.03|201|W|,Arcadia|CA|US|-118.04|34.14|58|N|,Arcahaie|ouest|HT|-72.51|18.77|130|W|,Archway|england|GB|-0.13|51.57|215|W|,Arcola East|SK|CA|-104.54|50.43|33|N|,Ardabil|ardabil province|IR|48.29|38.25|410|W|ardebil;erdebil,Arden-Arcade|CA|US|-121.38|38.6|92|N|,Ardmore|OK|US|-97.14|34.17|25|N|,Arequipa|arequipa|PE|-71.54|-16.4|1195|W|,Arganzuela|madrid|ES|-3.7|40.4|148|W|,Arhus|central jutland|DK|10.21|56.16|285|W|aarhus,Arica|arica y parinacota region|CL|-70.3|-18.48|241|W|,Arif Wala|balochistan|PK|66.3|26.32|157|W|,Arifwala|punjab|PK|73.07|30.29|854|W|,Arish|north sinai|EG|33.8|31.13|199|W|al arisch;al arish;al arisz;alarixe;aris;el arish;el aris;el arich;city of cut noses,Arkhangel'sk|arkhangelskaya|RU|40.55|64.55|349|W|arkhangelsk;arcangelo;archangelsk;arcangel;arkangeli,Arlington|TX|US|-97.11|32.74|388|NW|,Arlington|VA|US|-77.1|38.88|207|NW|,Arlington|MA|US|-71.16|42.42|42|N|,Arlington Heights|IL|US|-87.98|42.09|75|N|,Armavir|krasnodar krai|RU|41.11|45|199|W|armawir,Armenia|quindio department|CO|-75.67|4.54|304|W|armenien;armenie;ermenistan,Arnavutkoey|istanbul|TR|28.74|41.18|198|W|arnavutkoy,Arnhem|gelderland|NL|5.91|51.98|162|W|arnheim;arnhemia,Arrah|bihar|IN|84.66|25.56|261|W|,Arroyo Naranjo|havana|CU|-82.38|23.04|210|W|,Artux|xinjiang|CN|76.18|39.71|285|W|,Arusha|arusha|TZ|36.68|-3.37|617|W|,Arvada|CO|US|-105.09|39.8|115|N|,As Salimiyah|hawalli|KW|48.08|29.33|147|W|,As Samawah|muthanna|IQ|45.29|31.33|152|W|samawa;samawah;semave,Asahikawa|hokkaido|JP|142.36|43.77|333|W|,Asaka|saitama|JP|139.6|35.8|141|W|,Asansol|west bengal|IN|86.98|23.68|504|W|,Asela|oromiya|ET|39.13|7.95|139|W|,Ash Sharqat|salah ad din|IQ|43.23|35.52|160|W|,Ash Shatrah|dhi qar|IQ|46.17|31.41|182|W|,Ashaiman|greater accra|GH|-0.03|5.7|190|W|ashiaman,Ashburn|VA|US|-77.49|39.04|43|N|,Ashburn|IL|US|-87.71|41.75|42|N|,Ashdod|southern district|IL|34.65|31.79|226|W|aschdod;asdod;asdode;ashdod yam;asjdod;aszdod,Asheboro|NC|US|-79.81|35.71|26|N|,Asheville|NC|US|-82.55|35.6|95|N|,Ashgabat|ashgabat|TM|58.38|37.95|1030|W|achgabat;aschgabat;asgabate;ashkabad;ashkhabad;asjabad;asjchabad;asjkhabad;aszchabad;asgabat;askabat;aschabad,Ashikaga|tochigi|JP|139.45|36.33|144|W|,Ashkelon|southern district|IL|34.57|31.67|144|W|ashqelon;ashquelon,Ashmont|MA|US|-71.07|42.28|30|N|,Ashuganj City|chittagong|BD|91.01|24.04|210|W|,Asmara|maekel|ER|38.93|15.34|563|W|,Aspen Hill|MD|US|-77.07|39.08|48|N|,Assiut|asyut|EG|31.18|27.18|528|W|asyut,Astana|astana|KZ|71.45|51.18|1544|W|akmolinsk;noer soeltan;nour soultan;nur sultan;tselinograd,Astanajapura|west java|ID|108.63|-6.8|148|W|,Astoria|NY|US|-73.93|40.77|150|NW|,Astrakhan|astrakhan oblast|RU|48.04|46.35|533|W|astrachan;astracan;astraca;astrahan,Asuncion|asuncion|PY|-57.65|-25.29|1482|W|assuncao,Aswan|aswan|EG|32.9|24.09|379|W|assouan;assuan;assuao;asuan;asvan,Atani|anambra|NG|6.75|6.01|230|W|,Atascadero|CA|US|-120.67|35.49|29|N|,Atascocita|TX|US|-95.18|30|65|N|,Atasehir|istanbul|TR|29.12|40.98|361|W|,Athens|attica|GR|23.73|37.98|664|W|ateena;aten;atena;atenas;atene;ateny;athen;athena;athene;athenes;atheny;athinai;atina;kota athena,Athens|GA|US|-83.38|33.96|127|N|,Athens|OH|US|-82.1|39.33|25|N|,Athlone|western cape|ZA|18.5|-33.97|237|W|,Atibaia|sao paulo|BR|-46.55|-23.12|158|W|,Atlanta|GA|US|-84.39|33.75|510|NW|,Atlantic City|NJ|US|-74.42|39.36|39|N|kota atlantic,Atlixco|MX21|MX|-98.44|18.91|86|N|,Atotonilco el Alto|MX14|MX|-102.51|20.55|26|N|,Atsiaman|greater accra|GH|-0.33|5.7|202|W|achiaman;ashaiman,Atsugi|kanagawa|JP|139.37|35.44|223|W|acugi,Attleboro|MA|US|-71.29|41.94|44|N|,Attock City|punjab|PK|72.36|33.77|141|W|,Atwater|CA|US|-120.61|37.35|29|N|,Atyrau|atyrau oblisi|KZ|51.88|47.1|290|W|atyraou;atyraw;atirau;atirav;atiraw,Auburn|WA|US|-122.23|47.31|77|N|,Auburn|AL|US|-85.48|32.61|62|N|,Auburn|NY|US|-76.57|42.93|26|N|,Auburn Gresham|IL|US|-87.65|41.74|45|N|,Auckland|auckland|NZ|174.76|-36.85|1547|W|,Augsburg|bavaria|DE|10.9|48.37|301|W|augsbourg;augsburg innenstadt;augsburgo;augusta,Augusta|GA|US|-81.97|33.47|43|N|,Aurangabad|maharashtra|IN|75.34|19.88|1175|W|,Aurora|CO|US|-104.83|39.73|359|NW|,Aurora|IL|US|-88.32|41.76|200|NW|,Aurora|ON|CA|-79.47|44|55|N|,Austin|TX|US|-97.74|30.27|974|NW|,Austintown|OH|US|-80.76|41.1|29|N|,Autlan de Navarro|MX14|MX|-104.37|19.77|45|N|,Avadi|tamil nadu|IN|80.11|13.11|345|W|,Avellaneda|buenos aires|AR|-58.37|-34.66|367|W|,Aventura|FL|US|-80.14|25.96|37|N|,Avondale|AZ|US|-112.35|33.44|80|N|,Avondale|IL|US|-87.71|41.94|39|N|,Avtozavodskyi|poltava|UA|33.43|49.1|157|W|avtozavodskyi rayon;avtozavodskyy;avtozavodskyy rayon,Awasa|sidama region|ET|38.48|7.06|422|W|awassa,Awka|anambra|NG|7.07|6.21|167|W|avka,Ayacucho|ayacucho|PE|-74.22|-13.16|140|W|,Aydin|aydin|TR|27.84|37.85|163|W|tralleis;tralli,Aylmer|QC|CA|-75.81|45.4|56|N|,Az Zawiyah|az zawiyah|LY|12.73|32.76|200|W|ez zaviye;zawiyah,Az-Zuhur|port said|EG|32.26|31.27|266|W|al zohur,Azcapotzalco|MX09|MX|-99.19|19.49|414|NW|,Azusa|CA|US|-117.91|34.13|49|N|,Ba Dinh|hanoi|VN|105.83|21.04|221|W|,Ba Vi|hanoi|VN|105.38|21.08|282|W|,Bab Ezzouar|algiers|DZ|3.18|36.73|275|W|,Babol|mazandaran|IR|52.68|36.55|202|W|,Bac Giang|bac ninh|VN|106.19|21.27|450|W|,Bac Lieu|ca mau|VN|105.73|9.29|156|W|,Bac Ninh|bac ninh|VN|106.08|21.19|287|W|,Bac Tu Liem|hanoi|VN|105.75|21.07|340|W|,Bacau|bacau county|RO|26.91|46.57|136|W|,Bachuan|chongqing|CN|106.05|29.85|208|W|,Back Mountain|PA|US|-76|41.34|26|N|,Bacolod City|western visayas|PH|122.95|10.67|454|W|bacolod,Bacoor|calabarzon|PH|120.94|14.46|356|W|,Badajoz|extremadura|ES|-6.97|38.88|150|W|badajos,Badalona|catalonia|ES|2.25|41.45|217|W|,Bade|taiwan|TW|121.28|24.93|209|W|bade district,Badlapur|maharashtra|IN|73.27|19.16|174|W|,Bafoussam|west|CM|10.42|5.48|373|W|bafousam;bafusam;befoussam,Bagcilar|istanbul|TR|28.86|41.04|740|W|,Bagerhat|khulna division|BD|89.79|22.66|266|W|,Baghdad|baghdad|IQ|44.4|33.34|7216|W|bagdad;bagda;bagdat,Bago|bago region|MM|96.48|17.34|244|W|pegu;pegou,Bago City|western visayas|PH|122.83|10.53|192|W|bago,Bagong Silang|national capital region|PH|121.04|14.78|261|W|,Baguio|cordillera|PH|120.59|16.42|272|W|baguio city;kota baguio,Bahadurgarh|haryana|IN|76.94|28.69|170|W|,Baharampur|west bengal|IN|88.25|24.1|180|W|,Baharkah|erbil|IQ|44.04|36.32|130|W|,Bahawalnagar|punjab|PK|73.25|30|241|W|bahawalpur,Bahawalpur|punjab|PK|71.68|29.4|903|W|,Bahcelievler|istanbul|TR|28.86|41|576|W|,Bahia Blanca|buenos aires|AR|-62.27|-38.72|299|W|,Bahir Dar|amhara|ET|37.39|11.59|350|W|bahar dar;baher dar;bahyr dar,Bahraigh|uttar pradesh|IN|81.59|27.57|182|W|bahraich,Baicheng|jilin|CN|122.83|45.62|316|W|paj ccheng,Baise|guangxi|CN|106.63|23.89|686|W|baise city,Baishan|jilin|CN|126.42|41.94|183|W|paj san,Baiyin|gansu|CN|104.17|36.55|294|W|paj jin,Bakersfield|CA|US|-119.02|35.37|373|NW|,Baku|baki|AZ|49.89|40.38|2351|W|bacu;bakoe;bakou,Balakovo|saratov oblast|RU|47.8|52.03|199|W|balakowo,Balashikha|moscow oblast|RU|37.95|55.79|150|W|balachikha;balaschicha;balasjicha;balasjikha;balasiha;balasicha;balaszycha,Balasore|odisha|IN|86.93|21.49|144|W|baleshwar;baleswar,Balbala|djibouti|DJ|43.11|11.56|554|W|,Balch Springs|TX|US|-96.62|32.73|25|N|,Balcon de la Lisa|havana|CU|-82.45|23.05|147|W|,Baldwin Park|CA|US|-117.96|34.09|77|N|,Bali|west bengal|IN|88.34|22.65|296|W|,Balikesir|balikesir|TR|27.89|39.65|238|W|,Balikpapan|east kalimantan|ID|116.83|-1.27|695|W|kota balikpapan,Baliuag|central luzon|PH|120.9|14.95|135|W|,Ballari|karnataka|IN|76.92|15.14|410|W|bellary,Ballwin|MO|US|-90.55|38.6|30|N|,Balneario Camboriu|santa catarina|BR|-48.63|-26.99|139|W|camboriu,Baltimore|MD|US|-76.61|39.29|585|NW|baltimora,Balurghat|west bengal|IN|88.78|25.22|153|W|,Balvanera|buenos aires f d|AR|-58.4|-34.61|152|W|,Bamako|bamako|ML|-7.98|12.61|4227|W|,Bamenda|north west|CM|10.15|5.96|420|W|,Ban Khlong Prawet|bangkok|TH|100.68|13.72|160|W|,Banan|chongqing|CN|106.54|29.38|508|W|,Banbury-Don Mills|ON|CA|-79.35|43.74|27|N|,Banda|uttar pradesh|IN|80.33|25.48|152|W|,Banda Aceh|aceh|ID|95.33|5.54|267|W|banda acheh;banda achem;banda atjeh;kota banda aceh,Bandar Abbas|hormozgan|IR|56.28|27.19|352|W|bandar e abbas;bender abbas;cambarao;gombroon;gumrun;port comorao,Bandar Bukit Raja|selangor|MY|101.43|3.09|146|W|,Bandar-e Mahshahr|khuzestan|IR|49.19|30.56|162|W|,Bandar Lampung|lampung|ID|105.26|-5.43|1166|W|bandarlampung;kota bandar lampung,Bandar Seri Alam|johor|MY|103.88|1.5|220|W|seri alam city,Bandar Sunway|selangor|MY|101.61|3.07|200|W|sunway city,Bandar Tasik Puteri|selangor|MY|101.47|3.29|150|W|puteri lake city,Bandar Utama|kuala lumpur|MY|101.61|3.15|200|W|,Bandarban|chittagong|BD|92.22|22.2|495|W|,Bandundu Province|kwilu|CD|17.38|-3.32|202|W|bandundu;bandundu bolgesi;provincia de bandundu;provincia di bandundu;provinsi bandundu;provinz bandundu,Bandung|west java|ID|107.61|-6.92|2528|W|kota bandung,Bang Kapi|bangkok|TH|100.65|13.77|147|W|,Bang Khae|bangkok|TH|100.41|13.69|193|W|,Bang Khun Thian|bangkok|TH|100.43|13.66|165|W|,Bangkok|bangkok|TH|100.5|13.75|5104|W|banguecoque;bancoque,Bangor|ME|US|-68.77|44.8|32|N|,Bangui|bangui|CF|18.55|4.36|812|W|bangi,Banha|qalyubia|EG|31.18|30.46|182|W|,Bani Suwayf|beni suweif|EG|31.1|29.07|273|W|,Banja Luka|srpska|BA|17.21|44.78|221|W|bania luka;banya luka,Banjar|west java|ID|107.43|-7.2|209|W|,Banjaran|west java|ID|107.59|-7.05|164|W|,Banjarbaru|south kalimantan|ID|114.84|-3.44|293|W|bandjarbaru,Banjarmasin|south kalimantan|ID|114.59|-3.32|657|W|,Bankura|west bengal|IN|87.07|23.23|133|W|,Banning|CA|US|-116.88|33.93|30|N|,Bannu|khyber pakhtunkhwa|PK|70.6|32.99|1357|W|,Banqiao|taipei|TW|121.47|25.01|551|W|banqiao district;banciao;banciao district,Bao'an|guangdong|CN|113.88|22.55|4476|W|,Bao Loc|lam dong|VN|107.81|11.55|170|W|,Baoding|hebei|CN|115.46|38.87|2739|W|prefettura di baoding,Baoji|shaanxi|CN|107.24|34.37|1437|W|,Baoshan|shanghai|CN|121.49|31.41|2265|W|,Baoshan|yunnan|CN|99.16|25.12|935|W|pao san,Baotou|inner mongolia|CN|109.84|40.65|2150|W|pao tchou,Baqubah|diyala|IQ|44.61|33.75|152|W|bakouba;bakuba;baquba,Barakpur|west bengal|IN|88.36|22.77|148|W|,Baranagar|west bengal|IN|88.38|22.64|260|W|barahanagore,Baranovichi|brest|BY|26.01|53.13|170|W|baranavitsjy;baranawitschy;baranovitchi;baranovitsi;baranowicze,Barasat|west bengal|IN|88.48|22.72|298|W|,Barberton|OH|US|-81.61|41.01|26|N|,Barcarena|para|BR|-48.63|-1.51|139|W|,Barcelona|catalonia|ES|2.16|41.39|1686|W|barcellona;barcelone;barselona;la ciudad condal,Barcelona|anzoategui|VE|-64.69|10.14|815|W|barselona,Barddhaman|west bengal|IN|87.86|23.26|301|W|bardhaman;burdwan,Bareilly|uttar pradesh|IN|79.43|28.37|745|W|bareli,Bari|apulia|IT|16.87|41.12|316|W|,Bariadi|simiyu|TZ|33.98|-2.8|260|W|,Barinas|barinas|VE|-70.23|8.62|397|W|,Barishal|barisal division|BD|90.37|22.7|202|W|,Barking|england|GB|0.08|51.53|218|W|barking town,Barnaul|altai krai|RU|83.73|53.36|632|W|barnaoel;barnaoul,Barnstable|MA|US|-70.3|41.7|47|N|,Barquisimeto|lara|VE|-69.36|10.06|1240|W|,Barra da Tijuca|rio de janeiro|BR|-43.37|-23|421|W|kiki,Barra Mansa|rio de janeiro|BR|-44.17|-22.54|181|W|,Barrancabermeja|santander department|CO|-73.85|7.07|191|W|barracana bermeja,Barranquilla|atlantico|CO|-74.78|10.97|1206|W|barranquilha,Barreiras|bahia|BR|-44.99|-12.15|171|W|,Barrie|ON|CA|-79.67|44.4|147|NW|,Bartlesville|OK|US|-95.98|36.75|36|N|,Bartlett|TN|US|-89.87|35.2|58|N|,Bartlett|IL|US|-88.19|42|41|N|,Barueri|sao paulo|BR|-46.88|-23.51|316|W|tambore,Baruta|miranda|VE|-66.88|10.43|244|W|,Barysaw|minsk|BY|28.5|54.23|133|W|borisov,Basaksehir|istanbul|TR|28.79|41.11|193|W|,Basel|basel city|CH|7.57|47.56|177|W|basilea;basileia;basilej;bazel;bazylea;bale,Basildon|england|GB|0.46|51.57|144|W|,Basirhat City|west bengal|IN|88.85|22.66|143|W|,Basrah|basra|IQ|47.78|30.51|1326|W|basra;al basra;basora;bassora;bassorah;bacora,Basuo|hainan|CN|108.67|19.1|444|W|,Bata|litoral|GQ|9.77|1.86|173|W|,Batala|punjab|IN|75.2|31.81|158|W|,Batam|riau|ID|104.02|1.15|1296|W|kota batam,Batang|central java|ID|110.71|-6.48|139|W|,Batangas|calabarzon|PH|121.06|13.76|237|W|,Batavia|IL|US|-88.31|41.85|26|N|,Bath Beach|NY|US|-74|40.6|33|N|,Bathinda|punjab|IN|74.94|30.21|285|W|,Batikent|ankara|TR|32.73|39.97|300|W|,Batman|batman|TR|41.13|37.89|452|W|,Batna|batna|DZ|6.17|35.56|289|W|batina;batna city;batnah,Baton Rouge|LA|US|-91.19|30.44|227|NW|,Battagram|khyber pakhtunkhwa|PK|73.02|34.68|700|W|battagram city,Battle Creek|MI|US|-85.18|42.32|51|N|,Batu|east java|ID|112.53|-7.87|225|W|kota batu,Batu Caves|selangor|MY|101.68|3.24|254|W|,Batu Pahat|johor|MY|102.93|1.85|156|W|,Batumi|adjara|GE|41.63|41.64|186|W|bat umi;batoemi;batoumi;batum,Baturaja|south sumatra|ID|104.17|-4.13|134|W|,Baubau|southeast sulawesi|ID|122.6|-5.46|161|W|bau bau,Bauchi|bauchi|NG|9.84|10.31|693|W|bauczi,Bauru|sao paulo|BR|-49.06|-22.31|392|W|,Bawshar|muscat|OM|58.4|23.58|383|W|,Bay City|MI|US|-83.89|43.59|33|N|kota bay,Bay Shore|NY|US|-73.25|40.73|26|N|,Bay Street Corridor|ON|CA|-79.39|43.66|25|N|,Bayamo|granma province|CU|-76.64|20.37|192|W|,Bayamon|bayamon|PR|-66.16|18.4|203|W|,Bayan Lepas|penang|MY|100.26|5.3|130|W|,Bayan Nur|inner mongolia|CN|107.39|40.74|1760|W|,Bayji|salah ad din|IQ|43.49|34.93|173|W|,Bayonne|NJ|US|-74.11|40.67|66|N|,Bayside|NY|US|-73.78|40.77|66|N|,Baytown|TX|US|-94.98|29.74|76|N|,Bayview-Hunters Point|CA|US|-122.38|37.73|34|N|,Bazhong|sichuan|CN|106.74|31.87|2712|W|,Beaumont|TX|US|-94.1|30.09|115|N|,Beaumont|CA|US|-116.98|33.93|43|N|,Beauport|QC|CA|-71.19|46.86|81|N|montmorency,Beavercreek|OH|US|-84.06|39.71|46|N|beaver creek,Beaverton|OR|US|-122.8|45.49|96|N|,Beawar|rajasthan|IN|74.32|26.1|151|W|,Bechar|bechar|DZ|-2.22|31.62|165|W|basyar;baszszar,Bedford|TX|US|-97.14|32.84|49|N|,Bedok New Town||SG|103.94|1.33|276|W|,Beed|maharashtra|IN|75.76|18.99|146|W|,Beersheba|southern district|IL|34.79|31.25|186|W|be er scheva;be er sheva;beer sheba;beer szewa;beer seva;beer sheva;beerseba;beerseva;berseba;bersyeba;beer sjeva,Begoua|ombella m poko|CF|18.53|4.45|264|W|,Begusarai|bihar|IN|86.13|25.42|252|W|,Bei'an|heilongjiang|CN|126.6|48.27|436|W|,Beibei|chongqing|CN|106.44|29.83|247|W|,Beihai|guangxi|CN|109.12|21.48|525|W|pej chaj,Beijing|beijing|CN|116.4|39.91|18960|W|pechino;pekin;peking;pequim,Beiliu|guangxi|CN|110.35|22.71|199|W|,Beining|liaoning|CN|121.79|41.6|152|W|,Beipiao|liaoning|CN|120.78|41.79|190|W|,Beira|sofala|MZ|34.84|-19.84|687|W|,Beirut|beirut|LB|35.5|33.89|1916|W|beiroet;beirute;bejrut;beyrouth;beyrut,Bejaia|bejaia|DZ|5.08|36.76|176|W|bidschaya;bijaya;bougie;bugia,Bekasi|west java|ID|106.99|-6.23|2648|W|kota bekasi,Bel Air North|MD|US|-76.37|39.55|30|N|,Bel Air South|MD|US|-76.32|39.51|47|N|,Belagavi|karnataka|IN|74.5|15.85|490|W|belgaum,Belem|para|BR|-48.5|-1.46|1499|W|,Belfast|northern ireland|GB|-5.93|54.6|348|W|belfast city,Belford Roxo|rio de janeiro|BR|-43.4|-22.76|518|W|,Belgorod|belgorod oblast|RU|36.58|50.6|345|W|bielgorod;bilhorod;bilhorod dnistrovskyi,Belgrade|central serbia|RS|20.47|44.8|1273|W|belgrad;belgrado;beograd;belehrad,Belgrano|buenos aires f d|AR|-58.46|-34.56|138|W|barrio belgrano,Bell|CA|US|-118.19|33.98|36|N|,Bell Gardens|CA|US|-118.15|33.97|43|N|,Bella Vista|nacional|DO|-69.95|18.46|175|W|,Bella Vista|AR|US|-94.27|36.48|27|N|,Belleville|ON|CA|-77.38|44.17|50|N|,Belleville|IL|US|-89.98|38.52|42|N|,Belleville|NJ|US|-74.15|40.79|36|N|,Bellevue|WA|US|-122.2|47.61|139|NW|,Bellevue|NE|US|-95.89|41.14|55|N|,Bellflower|CA|US|-118.12|33.88|78|N|,Bellingham|WA|US|-122.49|48.76|85|N|,Bello|antioquia|CO|-75.56|6.34|392|W|,Belmont|CA|US|-122.28|37.52|27|N|,Belmont Cragin|IL|US|-87.77|41.93|79|N|,Belo Horizonte|minas gerais|BR|-43.94|-19.92|2721|W|b h;belo hte;bhte,Beloit|WI|US|-89.03|42.51|36|N|,Beltline|AB|CA|-114.07|51.04|25|N|,Belvidere|IL|US|-88.84|42.26|25|N|,Ben Cat|ho chi minh city hcmc|VN|106.6|11.15|364|W|,Bend|OR|US|-121.32|44.06|87|N|,Bendale|ON|CA|-79.25|43.77|29|N|,Benfica|luanda|AO|13.16|-8.94|191|W|,Bengaluru|karnataka|IN|77.59|12.97|8495|W|bangalore,Bengbu|anhui|CN|117.36|32.94|972|W|,Benghazi|banghazi|LY|20.07|32.11|757|W|banghazi;bengasi;bengazi;bingazi,Bengkulu|bengkulu|ID|102.27|-3.8|397|W|,Benguela|benguela|AO|13.4|-12.58|555|W|,Beni|north kivu|CD|29.47|0.49|140|W|new beni;nouveau beni,Beni Mellal|beni mellal khenifra|MA|-6.35|32.34|210|W|bani mallal;beni melal,Benicia|CA|US|-122.16|38.05|28|N|,Benin City|edo state|NG|5.63|6.34|1782|W|benim;benin;benin by;benin stadt;ciudad de benin;kota benin,Benito Juarez|MX09|MX|-99.16|19.37|385|NW|,Benoni|gauteng|ZA|28.32|-26.19|605|W|,Bensalem|PA|US|-74.95|40.1|60|N|bensalem township;municipio de bensalem;xa bensalem,Bensonhurst|NY|US|-73.99|40.6|60|N|,Benton|AR|US|-92.59|34.56|34|N|,Bentonville|AR|US|-94.21|36.37|44|N|,Benxi|liaoning|CN|123.77|41.29|987|W|pen si,Berazategui|buenos aires|AR|-58.21|-34.77|180|W|,Berbera|woqooyi galbeed|SO|45.01|10.44|242|W|,Bercham|perak|MY|101.14|4.64|150|W|,Berezniki|perm krai|RU|56.82|59.41|167|W|beresniki;bieriezniki,Bergen|vestland|NO|5.32|60.39|294|W|,Bergenfield|NJ|US|-74|40.93|27|N|,Berkeley|CA|US|-122.27|37.87|120|N|,Berlin|state of berlin|DE|13.41|52.52|3426|W|berliini;berlijn;berlim;berlino,Berrechid|casablanca settat|MA|-7.59|33.27|149|W|,Berriozabal|MX05|MX|-93.27|16.8|28|N|,Bertoua|east|CM|13.68|4.58|137|W|,Berwyn|IL|US|-87.79|41.85|56|N|,Bessemer|AL|US|-86.95|33.4|26|N|,Bethel Park|PA|US|-80.04|40.33|32|N|,Bethesda|MD|US|-77.1|38.98|60|N|,Bethlehem|PA|US|-75.37|40.63|74|N|,Betim|minas gerais|BR|-44.2|-19.97|384|W|,Bettendorf|IA|US|-90.52|41.52|35|N|,Bettiah|bihar|IN|84.5|26.8|132|W|,Beverly|MA|US|-70.88|42.56|41|N|,Beverly Cove|MA|US|-70.85|42.55|40|N|,Beverly Hills|CA|US|-118.4|34.07|34|N|,Bexley|england|GB|0.15|51.44|228|W|london borough of bexley,Beylikduezue|istanbul|TR|28.64|40.98|415|W|beylikduzu,Bhadravati|karnataka|IN|75.71|13.85|163|W|,Bhagalpur|bihar|IN|86.97|25.24|400|W|,Bhakkar|punjab|PK|71.06|31.63|131|W|,Bhalswa Jahangirpur|delhi|IN|77.17|28.74|197|W|,Bharatpur|bagmati province|NP|84.44|27.68|369|W|,Bharatpur|rajasthan|IN|77.49|27.22|252|W|,Bharuch|gujarat|IN|72.98|21.69|169|W|,Bhatara|dhaka division|BD|90.45|23.8|324|W|,Bhatpara|west bengal|IN|88.4|22.87|483|W|,Bhavnagar|gujarat|IN|72.15|21.76|605|W|,Bhawana|punjab|PK|72.65|31.57|373|W|bhanawa,Bhayandar|maharashtra|IN|72.85|19.3|809|W|,Bhetia|jharkhand|IN|86.14|22.79|174|W|,Bhilai|chhattisgarh|IN|81.43|21.21|627|W|bhilai nagar;bhilaj nagar,Bhilwara|rajasthan|IN|74.64|25.35|359|W|,Bhimavaram|andhra pradesh|IN|81.52|16.54|146|W|,Bhind|madhya pradesh|IN|78.79|26.57|197|W|,Bhisho|eastern cape|ZA|27.44|-32.85|137|W|bisho,Bhiwandi|maharashtra|IN|73.06|19.3|874|W|,Bhiwani|haryana|IN|76.14|28.79|196|W|,Bhopal|madhya pradesh|IN|77.4|23.25|1798|W|,Bhubaneswar|odisha|IN|85.83|20.27|885|W|bhubaneshwar,Bhuj|gujarat|IN|69.67|23.25|148|W|,Bhusawal|maharashtra|IN|75.79|21.04|187|W|,Bialystok|podlasie|PL|23.16|53.13|295|W|,Bibirevo|moscow|RU|37.6|55.88|159|W|,Bida|niger state|NG|6.01|9.08|400|W|,Bidar|karnataka|IN|77.52|17.91|216|W|,Bielany|mazovia|PL|20.94|52.29|131|W|,Bielefeld|north rhine westphalia|DE|8.53|52.03|331|W|,Bielsko-Biala|silesia|PL|19.05|49.82|176|W|bielitz biala;bilsko bela,Bien Hoa|dong nai|VN|106.82|10.94|1272|W|bienhoa,Big Spring|TX|US|-101.48|32.25|28|N|,Bihar Sharif|bihar|IN|85.52|25.2|297|W|,Bijie|guizhou|CN|105.29|27.3|1137|W|pi tie;prefecture de bijie,Bikaner|rajasthan|IN|73.31|28.02|644|W|,Bila Tserkva|kyiv oblast|UA|30.12|49.8|207|W|belaya tserkov;biala cerkiew;bila cerkva;bila zerkwa;bila terkva,Bilaspur|chhattisgarh|IN|82.16|22.08|365|W|,Bilbao|basque country|ES|-2.93|43.26|347|W|bilbau;el bocho,Bilbeis|sharqia|EG|31.56|30.42|185|W|bilbajs;bilbays;bilbeys,Bilimora|gujarat|IN|72.96|20.77|510|W|,Billerica|MA|US|-71.27|42.56|39|N|,Billings|MT|US|-108.5|45.78|117|N|,Biloxi|MS|US|-88.89|30.4|45|N|,Bilqas|dakahlia|EG|31.36|31.21|137|W|,Bima|west nusa tenggara|ID|118.73|-8.46|165|W|,Bimbo|ombella m poko|CF|18.42|4.26|348|W|,Binan|calabarzon|PH|121.08|14.34|300|W|binan city;kota binan,Binangonan|calabarzon|PH|121.19|14.46|219|W|,Binghamton|NY|US|-75.92|42.1|46|N|,Binh Thanh|ho chi minh city hcmc|VN|106.71|10.81|552|W|,Binjai|north sumatra|ID|98.49|3.6|279|W|kota binjai,Bintulu|sarawak|MY|113.03|3.17|151|W|,Binzhou|shandong|CN|118.02|37.37|682|W|pin cou;tan chau,Biratnagar|koshi|NP|87.27|26.46|244|W|,Birendranagar|karnali pradesh|NP|81.62|28.6|154|W|birendra nagar;birendranagara,Birganj|madhesh|NP|84.88|27.02|268|W|birgunj,Birjand|south khorasan province|IR|59.22|32.87|196|W|birdschand,Birkenhead|england|GB|-3.01|53.39|325|W|,Birmingham|england|GB|-1.9|52.48|1157|W|,Birmingham|AL|US|-86.8|33.52|196|NW|,Biryulevo|moscow|RU|37.68|55.59|144|W|,Bishan|chongqing|CN|106.22|29.59|204|W|,Bishkek|bishkek|KG|74.59|42.87|900|W|bichkek;bischkek;bisjkek;biskek;bisqueque;biszkek,Bishoftu|oromiya|ET|38.98|8.75|207|W|,Biskra|biskra|DZ|5.73|34.85|204|W|biskira,Bismarck|ND|US|-100.78|46.81|75|N|bismarck i nord dakota,Bissau|bissau|GW|-15.6|11.86|439|W|bisau,Bitung|north sulawesi|ID|125.13|1.44|225|W|kota bitung,Biysk|altai krai|RU|85.2|52.53|215|W|biejsk;bijsk,Bizerte|bizerte governorate|TN|9.87|37.27|138|W|biserta;bizert;bizerta,Blackburn|england|GB|-2.48|53.75|146|W|,Blackpool|england|GB|-3.05|53.82|145|W|,Blacksburg|VA|US|-80.41|37.23|44|N|,Blagoveshchensk|amur oblast|RU|127.53|50.28|225|W|blagovesjtsjensk;blagovechtchensk;blagoveschensk;blagovesjtjensk;blagovescensk;blagovestsensk;blagoweschtschensk;blagowieszczensk,Blaine|MN|US|-93.23|45.16|62|N|,Blainville|QC|CA|-73.88|45.67|46|N|,Blantyre|southern region|MW|35.01|-15.78|902|W|,Blida|blida|DZ|2.83|36.47|331|W|al bulajda;buleyde,Blitar|east java|ID|112.17|-8.1|161|W|kota blitar,Bloemfontein|free state|ZA|26.21|-29.12|556|W|,Bloomfield|NJ|US|-74.19|40.81|49|N|,Bloomington|MN|US|-93.3|44.84|86|N|,Bloomington|IN|US|-86.53|39.17|84|N|,Bloomington|IL|US|-88.99|40.48|78|N|,Blue Springs|MO|US|-94.28|39.02|54|N|,Blumenau|santa catarina|BR|-49.07|-26.92|361|W|,Bnei Brak|tel aviv|IL|34.83|32.08|214|W|benai beraq;bene berak;bene beraq;benei beraq;beney beraq;bnei berak;bnej brak;bney brak;bne beraq,Bo|southern province|SL|-11.74|7.96|233|W|,Boa Vista|roraima|BR|-60.67|2.82|419|W|,Boardman|OH|US|-80.66|41.02|35|N|,Bobo-Dioulasso|hauts bassins|BF|-4.29|11.18|904|W|,Bobruysk|mogilev|BY|29.21|53.15|205|W|babroejsk;babruisk;babrujsk;babruysk;bobruisk;bobrujsk,Boca Raton|FL|US|-80.08|26.36|93|N|boca de ratones;wta boca raton,Bochum|north rhine westphalia|DE|7.22|51.48|385|W|,Bocoio|benguela|AO|14.14|-12.47|164|W|,Bogor|west java|ID|106.79|-6.59|1078|W|kota bogor,Bogota|bogota d c|CO|-74.08|4.61|7674|W|santafe de bogota,Bogra|rajshahi division|BD|89.37|24.85|210|W|,Bohuniya|zhytomyr oblast|UA|28.61|50.28|147|W|bohunia;bohuniia;bohunskyi;bohunskyi rayon,Boisbriand|QC|CA|-73.83|45.62|26|N|,Boise|ID|US|-116.2|43.61|235|NW|,Bojnurd|north khorasan|IR|57.33|37.47|192|W|bojnourd,Bokaro|jharkhand|IN|86.15|23.67|564|W|bokaro steel city,Boksburg|gauteng|ZA|28.26|-26.21|445|W|,Bole|xinjiang|CN|82.07|44.89|235|W|,Bolingbrook|IL|US|-88.07|41.7|74|N|,Bologna|emilia romagna|IT|11.34|44.49|394|W|bologne;bolonha;bolonia;bolonya,Bolton|england|GB|-2.43|53.58|141|W|,Bolton|ON|CA|-79.74|43.88|26|N|,Bolu|bolu|TR|31.61|40.74|184|W|,Boma|bas congo|CD|13.05|-5.85|297|W|,Bondoukou|zanzan district|CI|-2.8|8.04|141|W|,Bonita Springs|FL|US|-81.78|26.34|51|N|,Bonn|north rhine westphalia|DE|7.1|50.73|330|W|bona,Bontang|east kalimantan|ID|117.49|0.13|194|W|kota bontang,Borama|awdal|SO|43.18|9.94|597|W|boorama,Bordeaux|new aquitaine|FR|-0.58|44.84|265|W|bordeus;burdeos,Bordj Bou Arreridj|bordj bou arreridj|DZ|4.76|36.07|158|W|burdz bu urajridz,Borivli|maharashtra|IN|72.86|19.23|609|W|borivali,Borough Park|NY|US|-74|40.63|149|NW|,Borshchahivka|kyiv city|UA|30.39|50.43|179|W|,Borujerd|lorestan province|IR|48.75|33.9|251|W|,Boshan|shandong|CN|117.83|36.48|153|W|,Bossier City|LA|US|-93.73|32.52|68|N|,Boston|MA|US|-71.06|42.36|653|NW|,Botad|gujarat|IN|71.67|22.17|130|W|,Bothell|WA|US|-122.21|47.76|42|N|,Botshabelo|free state|ZA|26.73|-29.27|309|W|,Botucatu|sao paulo|BR|-48.45|-22.89|145|W|,Bouake|vallee du bandama district|CI|-5.03|7.69|832|W|,Boucherville|QC|CA|-73.44|45.59|39|N|,Boulder|CO|US|-105.27|40.01|106|N|,Bountiful|UT|US|-111.88|40.89|43|N|,Bournemouth|england|GB|-1.88|50.72|163|W|,Bowie|MD|US|-76.73|38.94|58|N|bowie station;huntington city;huntington station,Bowling Green|KY|US|-86.44|36.99|63|N|,Bowling Green|OH|US|-83.65|41.37|31|N|,Bowmanville|ON|CA|-78.68|43.92|39|N|,Boyeros|havana|CU|-82.4|23.01|188|W|,Boyle Heights|CA|US|-118.21|34.03|92|N|,Boynton Beach|FL|US|-80.07|26.53|73|N|,Bozeman|MT|US|-111.04|45.68|43|N|,Bozhou|anhui|CN|115.77|33.88|1409|W|po cou,Bradenton|FL|US|-82.57|27.5|54|N|,Bradford|england|GB|-1.75|53.79|366|W|,Braga|braga|PT|-8.42|41.55|193|W|,Braganca|para|BR|-46.77|-1.05|132|W|,Braganca Paulista|sao paulo|BR|-46.54|-22.95|176|W|,Brahmanbaria|chittagong|BD|91.11|23.97|264|W|,Brahmapur|odisha|IN|84.79|19.31|356|W|,Braila|braila county|RO|27.97|45.27|154|W|berail;ibrail;brillago;drinago,Braintree|MA|US|-71|42.2|37|N|,Brakpan|gauteng|ZA|28.37|-26.24|305|W|,Brampton|ON|CA|-79.77|43.68|656|NW|,Brandon|FL|US|-82.29|27.94|103|N|,Brandon|MB|CA|-99.95|49.85|48|N|,Branford|CT|US|-72.82|41.28|29|N|,Brant|ON|CA|-80.35|43.13|34|N|,Brantford|ON|CA|-80.27|43.13|104|N|,Brasilandia|sao paulo|BR|-46.69|-23.45|243|W|,Brasilia|federal district|BR|-47.93|-15.78|2207|W|,Brasov|brasov county|RO|25.61|45.65|253|W|kronstadt;braszow,Bratislava|bratislava region|SK|17.11|48.15|423|W|bratyslawa;presbourg;pressburg,Bratsk|irkutsk oblast|RU|101.61|56.13|256|W|brack,Braunschweig|lower saxony|DE|10.53|52.27|244|W|brunswick;brunszwik,Brawley|CA|US|-115.53|32.98|25|N|,Brazzaville|brazzaville|CG|15.28|-4.27|1982|W|brazavil,Brea|CA|US|-117.9|33.92|41|N|,Breda|north brabant|NL|4.78|51.59|184|W|,Bremen|bremen|DE|8.81|53.08|546|W|brema;bremy;breme,Bremerton|WA|US|-122.63|47.57|39|N|,Brent|england|GB|-0.3|51.55|329|W|london borough of brent,Brentwood|NY|US|-73.25|40.78|60|N|,Brentwood|CA|US|-121.7|37.93|58|N|,Brentwood|TN|US|-86.78|36.03|41|N|,Brentwood Estates|TN|US|-86.78|36.03|31|N|,Brescia|lombardy|IT|10.21|45.54|200|W|,Brest|brest|BY|23.72|52.11|347|W|brest nad bugem;brest litovsk;brzesc;brest litowsk,Brest|brittany|FR|-4.49|48.39|144|W|,Briarwood|NY|US|-73.82|40.71|53|N|,Brick|NJ|US|-74.14|40.06|76|N|,Bridgeport|CT|US|-73.19|41.18|147|NW|,Bridgeport|IL|US|-87.65|41.84|33|N|,Bridgeton|NJ|US|-75.23|39.43|25|N|,Bridgewater|NJ|US|-74.65|40.6|44|N|,Brighouse-City Centre|BC|CA|-123.13|49.17|62|N|brighouse;richmond brighouse,Brighton|england|GB|-0.14|50.83|283|W|,Brighton|MA|US|-71.16|42.35|45|N|,Brighton|CO|US|-104.82|39.99|37|N|,Brighton|NY|US|-77.55|43.15|36|N|,Brighton Beach|NY|US|-73.96|40.58|31|N|,Brighton Park|IL|US|-87.7|41.82|44|N|,Brisbane|queensland|AU|153.03|-27.47|2780|W|brisbane city,Bristol|england|GB|-2.6|51.46|479|W|,Bristol|CT|US|-72.95|41.67|60|N|,Bristol|TN|US|-82.19|36.6|26|N|,Brno|south moravian|CZ|16.61|49.2|379|W|brunn,Brockton|MA|US|-71.02|42.08|95|N|,Broken Arrow|OK|US|-95.79|36.05|106|N|,Brookfield|WI|US|-88.11|43.06|38|N|,Brookhaven|GA|US|-84.34|33.86|51|N|north atlanta,Brooklin|ON|CA|-78.96|43.96|25|N|,Brookline|MA|US|-71.12|42.33|58|N|,Brooklyn|NY|US|-73.95|40.65|2736|NW|borough of brooklyn,Brooklyn Center|MN|US|-93.33|45.08|30|N|,Brooklyn Park|MN|US|-93.36|45.09|79|N|,Broomfield|CO|US|-105.09|39.92|65|N|,Brossard|QC|CA|-73.47|45.45|69|N|,Brownsville|TX|US|-97.5|25.9|186|NW|,Brownsville|NY|US|-73.92|40.66|74|N|,Brunswick|OH|US|-81.84|41.24|34|N|,Brusque|santa catarina|BR|-48.91|-27.1|155|W|,Brussels|brussels capital|BE|4.35|50.85|1019|W|brussel;bruxelles;bruksela;brusel;bruselas;bruxelas;bryssel;bruksel;citta di bruxelles;city of brussels;kota brusel,Bryan|TX|US|-96.37|30.67|82|N|,Bryansk|bryansk oblast|RU|34.32|53.27|427|W|brjansk;breansk;briansk;brianski,Bucaramanga|santander department|CO|-73.12|7.12|581|W|,Bucharest|bucharest|RO|26.11|44.43|1877|W|boekarest;bucarest;bucareste;bucuresti;bukarest;bukareszt;bukurest;bukres,Bucheon-si|gyeonggi do|KR|126.78|37.5|850|W|bucheon,Buckeye|AZ|US|-112.58|33.37|50|N|,Buda|budapest|HU|19.03|47.5|510|W|altofen;boeda;budin;ofen,Budapest|budapest|HU|19.04|47.5|1741|W|boedapest;budapesta;budapeste;budapeszt;ofen pest,Budapest XI. keruelet|budapest|HU|19.04|47.48|139|W|budapest xi kerulet;ujbuda,Budaun|uttar pradesh|IN|79.13|28.04|161|W|badaun,Budta|autonomous region in muslim mindanao|PH|124.44|7.2|1273|W|,Buea|south west|CM|9.24|4.15|140|W|,Buena Park|CA|US|-118|33.87|83|N|,Buenaventura|valle del cauca department|CO|-77|3.58|432|W|,Buenaventura Lakes|FL|US|-81.35|28.34|26|N|,Buenavista|MX15|MX|-99.17|19.61|216|NW|,Bueng Kum|bangkok|TH|100.67|13.79|145|W|ban bueng kum;ban cum,Buenos Aires|buenos aires f d|AR|-58.38|-34.61|2891|W|santa maria del buen ayre,Bueyuekcekmece|istanbul|TR|28.59|41.02|163|W|buyukcekmece,Buffalo|NY|US|-78.88|42.89|258|NW|bufalo,Buffalo Grove|IL|US|-87.96|42.15|41|N|,Buguma|rivers state|NG|6.86|4.74|135|W|,Bujumbura|bujumbura mairie|BI|29.36|-3.38|769|W|buyumbura;buzumbura,Bukan|west azerbaijan|IR|46.21|36.52|193|W|,Bukavu|south kivu|CD|28.84|-2.49|816|W|costermansstad;costermansville,Bukhara|bukhara|UZ|64.43|39.77|280|W|boukhara;bucara;buchara;buhara;bujara,Bukit Batok New Town||SG|103.76|1.36|158|W|,Bukit Jalil|kuala lumpur|MY|101.68|3.05|200|W|,Bukit Merah Estate||SG|103.82|1.28|151|W|,Bukit Mertajam|penang|MY|100.47|5.36|212|W|bukit mertarajam,Bukit Panjang New Town||SG|103.76|1.38|138|W|,Bukit Rahman Putra|selangor|MY|101.56|3.22|607|W|,Bukoba|kagera|TZ|31.81|-1.33|144|W|,Bulandshahr|uttar pradesh|IN|77.86|28.4|198|W|bulendsehr,Bulaon|central luzon|PH|120.66|15.08|131|W|,Bulawayo|bulawayo|ZW|28.58|-20.15|665|W|,Bullhead City|AZ|US|-114.57|35.15|39|N|,Bumba|mongala|CD|22.47|2.19|154|W|,Bunamwaya|central region|UG|32.56|0.25|413|W|,Bunda|mara|TZ|33.87|-2.02|182|W|,Bunia|ituri|CD|30.25|1.56|399|W|,Bunkyo|kanagawa|JP|139.42|35.53|240|W|bunkyo city,Buon Ma Thuot|dak lak|VN|108.04|12.67|434|W|,Burari|delhi|IN|77.2|28.76|146|W|,Buraydah|al qassim region|SA|43.97|26.33|745|W|buraidah;burajda;burayda,Burbank|CA|US|-118.31|34.18|105|N|,Burbank|IL|US|-87.78|41.73|29|N|,Burewala|punjab|PK|72.65|30.17|361|W|,Burgas|burgas|BG|27.47|42.51|210|W|boergas;bourgas;burgaz,Burgos|castille and leon|ES|-3.7|42.34|176|W|,Burhanpur|madhya pradesh|IN|76.23|21.31|210|W|,Burien|WA|US|-122.35|47.47|50|N|,Burke|VA|US|-77.27|38.79|41|N|,Burleson|TX|US|-97.32|32.54|43|N|,Burlingame|CA|US|-122.37|37.58|30|N|,Burlington|ON|CA|-79.84|43.39|186|NW|,Burlington|NC|US|-79.44|36.1|52|N|,Burlington|VT|US|-73.21|44.48|42|N|,Burlington|IA|US|-91.11|40.81|25|N|,Burnaby|BC|CA|-122.95|49.27|249|NW|,Burnley|england|GB|-2.23|53.8|149|W|,Burnsville|MN|US|-93.28|44.77|61|N|,Bursa|bursa province|TR|29.06|40.2|3101|W|,Burton|MI|US|-83.62|43|28|N|,Busan|busan|KR|129.03|35.1|3285|W|busan si;pusan,Bush|beni suweif|EG|31.13|29.15|136|W|,Bushehr|bushehr|IR|50.84|28.97|165|W|bandar bushehr;buschehr;bushire;busehr,Bushwick|NY|US|-73.92|40.69|112|N|,Business Bay|dubai|AE|55.27|25.19|191|W|,Bustleton|PA|US|-75.03|40.08|32|N|,Butembo|north kivu|CD|29.29|0.14|286|W|,Butte|MT|US|-112.53|46|34|N|,Butuan|caraga|PH|125.54|8.95|309|W|butuan city;city of butuan;kota butuan,Butwal|lumbini province|NP|83.45|27.69|195|W|,Bydgoszcz|kujawsko pomorskie|PL|18.01|53.12|330|W|bromberg;bydhost,Bytom|silesia|PL|18.93|50.35|189|W|beuthen,Ca Mau|ca mau|VN|105.15|9.18|226|W|,Caala|huambo|AO|15.56|-12.85|130|W|,Cabanatuan City|central luzon|PH|120.97|15.49|343|W|cabanatuan,Cabimas|zulia|VE|-71.45|10.4|351|W|,Cabinda|cabinda|AO|12.19|-5.56|550|W|,Cabo de Santo Agostinho|pernambuco|BR|-35.03|-8.29|216|W|,Cabo Frio|rio de janeiro|BR|-42.03|-22.89|238|W|,Cabo San Lucas|MX03|MX|-109.91|22.89|202|NW|,Cabot|AR|US|-92.02|34.97|25|N|,Cabuyao|calabarzon|PH|121.13|14.27|308|W|cabuyao city,Cachoeirinha|sao paulo|BR|-46.66|-23.45|143|W|,Cachoeirinha|rio grande do sul|BR|-51.09|-29.95|141|W|,Cachoeiro de Itapemirim|espirito santo|BR|-41.11|-20.85|198|W|,Cacuaco|luanda|AO|13.37|-8.78|146|W|,Cadereyta|MX19|MX|-99.98|25.58|67|N|,Cadereyta Jimenez|MX19|MX|-100|25.59|68|N|,Cagayan de Oro|northern mindanao|PH|124.65|8.48|741|W|,Cagliari|sardinia|IT|9.12|39.23|149|W|casteddu,Cai Lay|dong thap|VN|106.12|10.4|143|W|,Cainta|calabarzon|PH|121.12|14.58|283|W|,Cairns|queensland|AU|145.77|-16.92|153|W|,Cairo|cairo|EG|31.25|30.06|9606|W|el cairo;kairo;le caire;il cairo;kahire;kair;kahira,Cajamarca|cajamarca department|PE|-78.5|-7.16|201|W|,Calabar|cross river state|NG|8.33|4.96|540|W|,Calabozo|guarico|VE|-67.43|8.92|168|W|,Calama|antofagasta|CL|-68.92|-22.46|166|W|,Calamba|calabarzon|PH|121.17|14.21|575|W|calamba city;kota calamba,Caldwell|ID|US|-116.69|43.66|51|N|,Caledon|ON|CA|-79.99|43.87|76|N|,Calexico|CA|US|-115.5|32.68|40|N|,Calgary|AB|CA|-114.09|51.05|1306|NW|,Cali|valle del cauca department|CO|-76.52|3.43|2392|W|santiago de cali,Callao|callao|PE|-77.13|-12.05|1226|W|el callao,Caloocan|national capital region|PH|120.97|14.65|1712|W|caloocan city;lungsod ng caloocan,Calpulalpan|MX29|MX|-98.57|19.59|33|N|,Calumbo|bengo|AO|13.42|-9.15|652|W|,Calumet City|IL|US|-87.53|41.62|37|N|calumet,Cam Pha|quang ninh|VN|107.27|21.01|190|W|,Cam Pha Mines|quang ninh|VN|107.3|21.02|135|W|,Cam Ranh|khanh hoa|VN|109.16|11.92|146|W|,Camacari|bahia|BR|-38.32|-12.7|321|W|,Camagueey|camaguey|CU|-77.92|21.38|347|W|camaguey,Camama|luanda|AO|13.27|-8.94|667|W|,Camaragibe|pernambuco|BR|-34.98|-8.02|160|W|,Camarillo|CA|US|-119.04|34.22|67|N|,Camayenne|conakry|GN|-13.69|9.54|1871|W|,Cambridge|england|GB|0.12|52.2|145|W|,Cambridge|ON|CA|-80.31|43.36|129|N|,Cambridge|MA|US|-71.11|42.38|110|N|,Camden|NJ|US|-75.12|39.93|76|N|,Cameta|para|BR|-49.5|-2.24|134|W|,Campbell|CA|US|-121.95|37.29|41|N|,Campbell River|BC|CA|-125.24|50.02|33|N|,Campeche|MX04|MX|-90.52|19.84|220|NW|san francisco de campeche,Campina Grande|paraiba|BR|-35.88|-7.23|443|W|,Campinas|sao paulo|BR|-47.06|-22.91|1031|W|campinas e regiao;regiao de campinas,Campo Grande|mato grosso do sul|BR|-54.65|-20.44|906|W|,Campo Largo|parana|BR|-49.53|-25.46|144|W|,Campo Limpo|sao paulo|BR|-46.77|-23.64|236|W|,Campos dos Goytacazes|rio de janeiro|BR|-41.33|-21.75|483|W|,Can Giuoc|tay ninh|VN|106.67|10.61|152|W|,Can Tho|can tho city|VN|105.79|10.04|1507|W|,Canakkale|canakkale|TR|26.41|40.16|143|W|,Cananea|MX26|MX|-110.3|30.98|31|N|heroica ciudad de cananea,Canarsie|NY|US|-73.9|40.64|87|N|,Canberra|australian capital territory|AU|149.13|-35.28|367|W|camberra;kanberra,Cancun|MX23|MX|-86.85|21.17|888|NW|ciudad cancun,Candelaria|calabarzon|PH|121.42|13.93|137|W|,Cangaiba|sao paulo|BR|-46.52|-23.5|141|W|,Cangzhou|hebei|CN|116.85|38.31|527|W|cchang cou;thuong chau,Cankaya|ankara|TR|32.86|39.92|792|W|,Canoas|rio grande do sul|BR|-51.18|-29.92|328|W|,Canoga Park|CA|US|-118.6|34.2|60|N|,Canton|MI|US|-83.48|42.31|86|N|,Canton|OH|US|-81.38|40.8|71|N|,Canton|GA|US|-84.49|34.24|25|N|,Cantonment|FL|US|-87.34|30.61|26|N|,Canyon Country|CA|US|-118.47|34.42|59|N|,Cao Lanh|dong thap|VN|105.63|10.46|211|W|,Cap-Haitien|nord|HT|-72.2|19.76|134|W|cabo haitiano,Capao Redondo|sao paulo|BR|-46.78|-23.67|270|W|,Capas|central luzon|PH|120.59|15.33|162|W|,Cape Coast|central|GH|-1.25|5.11|212|W|,Cape Coral|FL|US|-81.95|26.56|175|NW|cabo coral,Cape Girardeau|MO|US|-89.52|37.31|39|N|cap girardeau,Cape Town|western cape|ZA|18.42|-33.93|4772|W|citta del capo;cidade do cabo;ciudad del cabo;el cabo;kaapstad;kapkaupunki;kapske mesto;kapstaden;kapstadt;kapsztad;le cap,Capiata|central department|PY|-57.45|-25.36|198|W|,Carabanchel|madrid|ES|-3.72|40.39|253|W|,Caracas|distrito federal|VE|-66.88|10.49|3000|W|karakas,Carapicuiba|sao paulo|BR|-46.84|-23.52|386|W|,Carbondale|IL|US|-89.22|37.73|26|N|,Cardenas|MX27|MX|-93.38|18|91|N|,Cardiff|wales|GB|-3.18|51.48|372|W|,Cariacica|espirito santo|BR|-40.42|-20.26|376|W|,Carletonville|gauteng|ZA|27.4|-26.36|182|W|,Carlsbad|CA|US|-117.35|33.16|114|N|,Carlsbad|NM|US|-104.23|32.42|28|N|,Carmel|IN|US|-86.12|39.98|88|N|,Carmichael|CA|US|-121.33|38.62|61|N|,Carney|MD|US|-76.52|39.39|29|N|,Carol City|FL|US|-80.25|25.94|63|N|,Carol Stream|IL|US|-88.13|41.91|40|N|,Carolina|carolina|PR|-65.96|18.38|170|W|caroline,Carpentersville|IL|US|-88.26|42.12|38|N|,Carrefour|ouest|HT|-72.4|18.53|511|W|,Carrollton|TX|US|-96.89|32.95|133|NW|,Carrollton|GA|US|-85.08|33.58|26|N|,Carrollwood|FL|US|-82.49|28.05|33|N|,Carrollwood Village|FL|US|-82.52|28.07|40|N|,Carson|CA|US|-118.28|33.83|93|N|,Carson City|NV|US|-119.77|39.16|58|N|kota carson,Cartagena|bolivar|CO|-75.49|10.4|914|W|carthagene;cartagena de indias;cartagena das indias;carthagene des indes,Cartagena|murcia|ES|-0.98|37.6|213|W|carthagene;kartagena,Cartago|valle del cauca department|CO|-75.91|4.75|134|W|,Cartierville|QC|CA|-73.7|45.53|34|N|,Caruaru|pernambuco|BR|-35.98|-8.28|402|W|,Carupano|sucre|VE|-63.25|10.67|167|W|,Cary|NC|US|-78.78|35.79|159|NW|,Casa Grande|AZ|US|-111.76|32.88|51|N|,Casablanca|casablanca settat|MA|-7.61|33.59|3665|W|dar ul beyda;kazablanka;white house,Casas Adobes|AZ|US|-111|32.32|66|N|,Cascavel|parana|BR|-53.46|-24.96|368|W|ular derik,Casper|WY|US|-106.31|42.87|60|N|,Casselberry|FL|US|-81.33|28.68|27|N|,Castanhal|para|BR|-47.93|-1.29|192|W|,Castello de la Plana|valencia|ES|-0.05|39.99|171|W|castellon;castellon de la plana,Castle Rock|CO|US|-104.86|39.37|55|N|,Castlewood|CO|US|-104.9|39.58|25|N|,Castro Valley|CA|US|-122.09|37.69|61|N|,Catacamas|olancho department|HN|-85.89|14.85|140|W|,Catalina Foothills|AZ|US|-110.92|32.3|50|N|,Catamarca|catamarca|AR|-65.79|-28.47|159|W|,Catania|sicily|IT|15.07|37.49|311|W|catane;katania,Catemaco|MX30|MX|-95.11|18.42|27|N|,Cathedral City|CA|US|-116.47|33.78|53|N|,Catonsville|MD|US|-76.73|39.27|41|N|,Cau Giay|hanoi|VN|105.8|21.03|292|W|,Caucaia|ceara|BR|-38.65|-3.74|378|W|,Caxias|maranhao|BR|-43.36|-4.86|163|W|,Caxias do Sul|rio grande do sul|BR|-51.18|-29.17|479|W|,Cazenga|luanda|AO|13.28|-8.84|394|W|,Cebu City|central visayas|PH|123.89|10.32|965|W|cebu;ciudad de cebu;cebu sehri;cidade de cebu;city of cebu;kota cebu,Cedar City|UT|US|-113.06|37.68|30|N|,Cedar Falls|IA|US|-92.45|42.53|41|N|,Cedar Hill|TX|US|-96.96|32.59|48|N|,Cedar Park|TX|US|-97.82|30.51|65|N|,Cedar Rapids|IA|US|-91.64|42.01|130|NW|,Ceilandia|federal district|BR|-48.13|-15.81|287|W|,Celaya|MX11|MX|-100.81|20.52|340|NW|,Celina|TX|US|-96.78|33.32|64|N|,Centennial|CO|US|-104.88|39.58|109|N|,Center City|PA|US|-75.16|39.95|57|N|centro de filadelfia,Centereach|NY|US|-73.1|40.86|31|N|,Central|LA|US|-91.04|30.55|28|N|,Central 14th Street / Spring Road|DC|US|-77.03|38.94|25|N|,Central City|AZ|US|-112.06|33.44|58|N|,Central Coast|new south wales|AU|151.37|-33.43|346|W|costa central,Central Islip|NY|US|-73.2|40.79|34|N|,Centralniy|st petersburg|RU|30.36|59.93|214|W|,Centre City|AB|CA|-114.07|51.05|41|N|,Centretown|ON|CA|-75.7|45.42|25|N|,Centreville|VA|US|-77.43|38.84|71|N|,Centro Familiar la Soledad|MX11|MX|-101.75|21.14|32|N|,Centro Habana|havana|CU|-82.37|23.13|158|W|,Centurion|gauteng|ZA|28.19|-25.86|236|W|,Ceres|CA|US|-120.96|37.59|47|N|,Cergy-Pontoise|ile de france|FR|2.08|49.04|183|W|,Cerritos|CA|US|-118.06|33.86|49|N|,Cerro|havana|CU|-82.38|23.11|132|W|,Ch'ongdan-up|south hwanghae|KP|125.94|37.97|142|W|,Chak Jhumra|punjab|PK|73.18|31.57|385|W|,Chakwama|jigawa state|NG|9.66|11.56|200|W|,Chalco|MX15|MX|-98.9|19.26|168|NW|,Chaman|balochistan|PK|66.45|30.92|130|W|caman,Chamartin|madrid|ES|-3.68|40.46|140|W|,Chamberi|madrid|ES|-3.7|40.43|145|W|,Chamblee|GA|US|-84.3|33.89|28|N|,Champaign|IL|US|-88.24|40.12|86|N|,Champoton|MX04|MX|-90.72|19.34|30|N|,Chanda|maharashtra|IN|79.3|19.95|328|W|chandrapur;candrapur,Chandannagar|west bengal|IN|88.37|22.86|180|W|chandernagor;chandernagore;candarnagar,Chandigarh|chandigarh|IN|76.79|30.74|970|W|czandigarh;candigarh,Chandler|AZ|US|-111.84|33.31|260|NW|,Chandpur|chittagong|BD|90.65|23.23|203|W|,Chang-hua|taiwan|TW|120.56|24.07|226|W|,Changam-ch'on|south hamgyong|KP|128.78|40.61|207|W|,Changchun|jilin|CN|125.32|43.88|4714|W|tschangtung;cangcun;cchang cchun,Changde|hunan|CN|111.7|29.03|1457|W|cchang te;changteh,Changhua|taiwan|TW|120.55|24.07|226|W|,Changji|xinjiang|CN|87.3|44.01|198|W|,Changle|shandong|CN|118.83|36.71|259|W|,Changning|shanghai|CN|121.42|31.22|694|W|,Changsha|hunan|CN|112.97|28.2|3093|W|cchang sa,Changsha|guangdong|CN|112.68|22.38|688|W|,Changshu|jiangsu|CN|120.74|31.65|1677|W|,Changwon|gyeongsangnam do|KR|128.68|35.23|1025|W|ch angwon;cchangwon,Changyi|shandong|CN|119.39|36.85|302|W|,Changyuan|chongqing|CN|105.59|29.4|186|W|,Changzheng|shanghai|CN|121.37|31.24|229|W|,Changzhi|shanxi|CN|113.11|36.18|1214|W|cchang c,Changzhou|jiangsu|CN|119.95|31.77|3290|W|cchang cou,Chanhassen|MN|US|-93.53|44.86|25|N|,Channelview|TX|US|-95.11|29.78|38|N|,Chaohu|anhui|CN|117.87|31.6|138|W|,Chaoyang|liaoning|CN|120.46|41.57|410|W|,Chaozhou|guangdong|CN|116.62|23.65|1750|W|cchao cou,Chapeco|santa catarina|BR|-52.62|-27.1|282|W|,Chapel Hill|NC|US|-79.06|35.91|59|N|,Chapra|bihar|IN|84.75|25.78|202|W|,Charleroi|wallonia|BE|4.44|50.41|200|W|,Charlesbourg|QC|CA|-71.31|46.9|82|N|,Charleston|SC|US|-79.93|32.78|132|NW|,Charleston|WV|US|-81.63|38.35|46|N|,Charlotte|NC|US|-80.84|35.23|911|NW|,Charlottesville|VA|US|-78.48|38.03|46|N|,Charlottetown|PE|CA|-63.13|46.23|38|N|,Chas|jharkhand|IN|86.17|23.64|141|W|,Chaska|MN|US|-93.6|44.79|25|N|,Chateauguay|QC|CA|-73.75|45.38|42|N|,Chatham|ON|CA|-82.18|42.41|43|N|,Chatham|IL|US|-87.61|41.74|31|N|,Chatsworth|CA|US|-118.6|34.26|41|N|,Chattanooga|TN|US|-85.31|35.05|181|NW|,Chattogram|chittagong|BD|91.83|22.34|3920|W|chittagong;cottogram;cattagram,Chatuchak|bangkok|TH|100.56|13.83|160|W|,Cheboksary|chuvash republic|RU|47.25|56.13|492|W|ceboksari;czeboksary;tcheboksary;tjeboksary;tscheboksary;tsjeboksary;tseboksary;ceboksary;supaskar,Cheektowaga|NY|US|-78.75|42.9|75|N|,Chelmsford|MA|US|-71.37|42.6|33|N|,Chelsea|MA|US|-71.03|42.39|39|N|,Chelyabinsk|chelyabinsk|RU|61.43|55.16|1202|W|tsjeljabinsk;celeabinsk;celiabinsc;cheliabinsk;czelabinsk;tcheliabinsk;tjeljabinsk;tscheljabinsk;tseljabinsk;celyabinsk;celjabinsk,Chemnitz|saxony|DE|12.93|50.84|247|W|saska kamenice,Chengde|hebei|CN|117.96|40.95|449|W|ccheng te,Chengdu|sichuan|CN|104.07|30.67|13568|W|thanh do;cengdu;ccheng tu,Chengguan Qu|tibet|CN|91.04|29.64|478|W|,Chenghua|guangdong|CN|116.77|23.46|152|W|,Chengzhong|hubei|CN|113.55|30.94|265|W|,Chennai|tamil nadu|IN|80.28|13.09|4681|W|cennaj;cennai;madras,Chenzhou|hunan|CN|113.03|25.8|822|W|,Cheonan|chungcheongnam do|KR|127.15|36.81|658|W|cchonan,Cheongju-si|north chungcheong|KR|127.49|36.64|852|W|cheongju,Cheras|selangor|MY|101.73|3.11|135|W|,Cherepovets|vologda oblast|RU|37.9|59.13|315|W|cerepovet;czerepowiec;tcherepovets;tjerepovets;tscherepowez;tsjerepovets;tserepovets;cerepovets;cerepovec,Cherkasy|cherkasy|UA|32.06|49.44|269|W|cerkasi;czerkasy;tcherkassy;tcherkassi;tjerkasy;tscherkassy;tsjerkasy;tserkasy;cerkassi;cerkasy;cherkassy,Chernihiv|chernihiv oblast|UA|31.29|51.51|282|W|cernigau;chernigov;czernihow;tchernihiv;tjernihiv;tschernihiw;tsjernihiv;tsernihiv;cernigiv;cernihiv;cernihov;cernigovia,Chernivtsi|chernivtsi|UA|25.93|48.29|264|W|cernivci;cernovizza;cernauti;czerniowce;czernowitz;tchernivtsi;tjernivtsi;tschernowitz;tsjernivtsi;tsernivtsi;cernivtsi;cernovice,Cherry Hill|NJ|US|-75.03|39.93|70|N|,Chertanovo Yuzhnoye|moscow|RU|37.6|55.59|142|W|,Chesapeake|VA|US|-76.27|36.82|235|NW|,Cheshire|CT|US|-72.9|41.5|29|N|,Chester|PA|US|-75.36|39.85|34|N|,Chesterfield|MO|US|-90.58|38.66|47|N|,Chestermere|AB|CA|-113.82|51.03|32|N|,Chetumal|MX23|MX|-88.3|18.52|169|NW|,Cheyenne|WY|US|-104.82|41.14|65|N|,Chhatarpur|madhya pradesh|IN|79.59|24.92|142|W|chhattarpur,Chhindwara|madhya pradesh|IN|78.94|22.06|175|W|,Chi Linh|hai phong|VN|106.32|21.07|220|W|,Chiapa de Corzo|MX05|MX|-93.01|16.71|45|N|,Chiayi City|taiwan|TW|120.45|23.48|263|W|jiayi shi,Chiba|chiba|JP|140.12|35.6|979|W|ciba,Chicago|IL|US|-87.65|41.85|2664|NW|sikago,Chicago Heights|IL|US|-87.64|41.51|30|N|,Chicago Lawn|IL|US|-87.7|41.78|55|N|,Chicago Loop|IL|US|-87.63|41.88|33|N|loop,Chichicastenango|quiche|GT|-91.11|14.94|141|W|,Chiclayo|lambayeque|PE|-79.85|-6.77|609|W|,Chico|CA|US|-121.84|39.73|121|N|,Chicoloapan|MX15|MX|-98.9|19.42|172|NW|san vicente chicoloapan,Chicopee|MA|US|-72.61|42.15|56|N|,Chicoutimi|QC|CA|-71.06|48.42|69|N|,Chifeng|inner mongolia|CN|118.96|42.27|346|W|tschifong;xich phong;cch feng,Chigasaki|kanagawa|JP|139.4|35.34|242|W|,Chihuahua|MX06|MX|-106.09|28.64|925|NW|chihuahua city;chihuahua by,Chilanzar|tashkent|UZ|69.18|41.28|260|W|,Chilapa de Alvarez|MX12|MX|-99.17|17.6|31|N|,Chillan|nuble|CL|-72.1|-36.61|150|W|,Chilliwack|BC|CA|-121.95|49.17|101|N|,Chilliwack-Downtown|BC|CA|-121.96|49.16|31|N|,Chillum|MD|US|-76.99|38.96|33|N|,Chilpancingo|MX12|MX|-99.5|17.55|187|NW|chilpancingo de los bravo,Chimbote|ancash|PE|-78.59|-9.08|316|W|,Chimoio|manica|MZ|33.48|-19.12|422|W|,Chinatown|CA|US|-122.41|37.8|100|N|,Chinatown|NY|US|-74|40.72|90|N|,Chincha Alta|ica|PE|-76.13|-13.41|153|W|,Chingola|copperbelt|ZM|27.88|-12.53|256|W|,Chiniot|punjab|PK|72.98|31.72|318|W|,Chinju|gyeongsangnam do|KR|128.08|35.19|307|W|jinju,Chino|CA|US|-117.69|34.01|85|N|,Chino Hills|CA|US|-117.76|33.99|78|N|,Chipata|eastern province|ZM|32.65|-13.63|327|W|,Chirchiq|tashkent region|UZ|69.58|41.47|162|W|circik;tchirtchik;tjirtjik;circig,Chishtian|punjab|PK|72.86|29.8|149|W|,Chisinau|chisinau municipality|MD|28.86|47.01|635|W|kishinev;kiszyniow;kisinev,Chita|zabaykalskiy transbaikal kray|RU|113.49|52.04|349|W|tsjita;tchita;tschita;tsita;cita,Chitato|luanda norte|AO|20.73|-7.3|246|W|,Chitradurga|karnataka|IN|76.4|14.22|145|W|,Chittoor|andhra pradesh|IN|79.1|13.21|160|W|chittur,Chitungwiza|harare|ZW|31.08|-18.01|371|W|,Chizhou|anhui|CN|117.48|30.66|615|W|,Chlef|chlef|DZ|1.33|36.17|178|W|ech cheliff;szalif;asch schalif;ash shalif;al asnam,Cho Lon|ho chi minh city hcmc|VN|106.65|10.75|561|W|,Choa Chu Kang New Town||SG|103.75|1.38|187|W|,Chofu|tokyo|JP|139.55|35.66|242|W|,Choloma|cortes department|HN|-87.95|15.61|139|W|,Cholula|MX21|MX|-98.3|19.06|292|NW|cholula de rivadavia;san pedro cholula,Chom Thong|bangkok|TH|100.48|13.68|158|W|,Chomedey|QC|CA|-73.75|45.53|94|N|,Chon Buri|chon buri|TH|100.98|13.36|219|W|,Chongjin|north hamgyong|KP|129.78|41.8|327|W|ch ongjin;cchongdzin,Chongming||CN|121.7|31.62|637|W|,Chongqing|chongqing|CN|106.56|29.56|7457|W|trung khanh;tsjoengking;congcing;cchung cching,Chongzuo|guangxi|CN|107.37|22.38|384|W|,Christchurch|canterbury|NZ|172.63|-43.53|419|W|,Chula Vista|CA|US|-117.08|32.64|265|NW|,Chuncheon|gangwon do|KR|127.73|37.87|284|W|cunceon;cchuncchon,Chungju|north chungcheong|KR|127.93|36.98|209|W|cungcu;cchungdzu,Chunian|punjab|PK|73.98|30.97|634|W|,Chuo|tokyo|JP|139.78|35.67|169|W|chuo city,Church-Yonge Corridor|ON|CA|-79.38|43.66|31|N|,Chuxiong|yunnan|CN|101.55|25.04|555|W|,Chuzhou|anhui|CN|118.3|32.32|782|W|cchu cou,Ciampea|west java|ID|106.7|-6.55|207|W|,Cianjur|west java|ID|107.14|-6.82|174|W|kabupaten de cianjur,Cibinong|west java|ID|106.85|-6.48|363|W|,Cibolo|TX|US|-98.23|29.56|33|N|,Cicero|IL|US|-87.75|41.85|83|N|,Cicero|NY|US|-76.12|43.18|31|N|,Cidade Ademar|sao paulo|BR|-46.66|-23.67|249|W|,Cidade Dutra|sao paulo|BR|-46.7|-23.73|182|W|,Cidade Lider|sao paulo|BR|-46.49|-23.56|136|W|,Cidade Tiradentes|sao paulo|BR|-46.4|-23.58|192|W|,Ciego de Avila|ciego de avila province|CU|-78.76|21.84|142|W|,Cienfuegos|cienfuegos province|CU|-80.45|22.15|186|W|,Cigli|izmir province|TR|27.07|38.5|214|W|,Cihuatlan|MX14|MX|-104.57|19.24|40|N|,Cikupa|west java|ID|106.51|-6.24|174|W|,Cilacap|central java|ID|109.01|-7.73|256|W|,Cilegon|banten|ID|106.05|-6.01|470|W|,Cileungsir|west java|ID|106.96|-6.39|289|W|,Cimahi|west java|ID|107.54|-6.87|581|W|kota cimahi,Cincinnati|OH|US|-84.51|39.13|311|NW|,Cintalapa de Figueroa|MX05|MX|-93.72|16.68|42|N|,Ciputat|west java|ID|106.7|-6.24|207|W|,Circoiscrizione II|piedmont|IT|7.64|45.05|141|W|,Circoiscrizione III|piedmont|IT|7.63|45.06|130|W|,Circoiscrizione VIII|piedmont|IT|7.67|45.04|134|W|,Cirebon|west java|ID|108.56|-6.71|344|W|kota cirebon,Citeureup|west java|ID|106.88|-6.49|214|W|,Citrus Heights|CA|US|-121.28|38.71|87|N|,City of Milford (balance)|CT|US|-73.06|41.22|51|N|,City of Sammamish|WA|US|-122.04|47.6|45|N|,City of Westminster|england|GB|-0.14|51.5|247|W|,Ciudad Acuna|MX07|MX|-100.95|29.32|216|NW|acuna,Ciudad Altamirano|MX12|MX|-100.67|18.36|25|N|,Ciudad Apodaca|MX19|MX|-100.19|25.78|467|NW|apodaca,Ciudad Benito Juarez|MX19|MX|-100.09|25.65|308|NW|,Ciudad Bolivar|bolivar|VE|-63.55|8.12|412|W|,Ciudad Camilo Cienfuegos|havana|CU|-82.33|23.16|178|W|,Ciudad Constitucion|MX03|MX|-111.66|25.03|40|N|,Ciudad de Allende|MX19|MX|-100.02|25.28|26|N|allende,Ciudad de Huajuapan de Leon|MX20|MX|-97.78|17.81|53|N|huajuapan;huajuapan de leon;huajuapam;huajuapam de leon,Ciudad de Villa de Alvarez|MX08|MX|-103.74|19.27|117|N|,Ciudad del Carmen|MX04|MX|-91.83|18.65|191|NW|cd carmen;cd del carmen;carmen,Ciudad del Este|alto parana department|PY|-54.65|-25.5|301|W|kota del este,Ciudad Delicias|MX06|MX|-105.47|28.19|148|NW|akitakata;delicias,Ciudad Fernandez|MX24|MX|-100.01|21.94|32|N|,Ciudad General Escobedo|MX19|MX|-100.32|25.8|454|NW|gral escobedo;general escobedo,Ciudad Guayana|bolivar|VE|-62.64|8.35|978|W|cidade guaiana;guayana,Ciudad Guzman|MX14|MX|-103.46|19.7|111|N|cd guzman,Ciudad Hidalgo|MX16|MX|-100.56|19.69|60|N|,Ciudad Juarez|MX06|MX|-106.46|31.72|1512|NW|juarez,Ciudad Lazaro Cardenas|MX16|MX|-102.2|17.96|196|NW|lazaro cardenas,Ciudad Lineal|madrid|ES|-3.65|40.45|228|W|,Ciudad Lopez Mateos|MX15|MX|-99.26|19.56|489|NW|adolfo lopez mateos,Ciudad Madero|MX28|MX|-97.84|22.25|197|NW|cd madero,Ciudad Mante|MX28|MX|-98.97|22.74|84|N|,Ciudad Melchor Muzquiz|MX07|MX|-101.52|27.88|35|N|,Ciudad Mendoza|MX30|MX|-97.18|18.81|35|N|,Ciudad Nezahualcoyotl|MX15|MX|-99.01|19.4|1077|NW|cd neza;cd nezahualcoyotl;ciudad neza;neza;nezahualcoyotl,Ciudad Obregon|MX26|MX|-109.94|27.49|329|NW|cd obregon,Ciudad Ojeda|zulia|VE|-71.31|10.2|240|W|,Ciudad Rio Bravo|MX28|MX|-98.09|25.99|95|N|,Ciudad Sabinas Hidalgo|MX19|MX|-100.18|26.5|33|N|,Ciudad Sahagun|MX13|MX|-98.57|19.78|28|N|,Ciudad Valles|MX24|MX|-99.01|22|124|N|,Ciudad Victoria|MX28|MX|-99.14|23.74|332|NW|cd victoria;victoria,Cixi|zhejiang|CN|121.25|30.18|1457|W|,Cizre|sirnak|TR|42.18|37.33|134|W|,Clairlea-Birchmount|ON|CA|-79.28|43.71|26|N|,Claremont|CA|US|-117.72|34.1|36|N|,Clarksville|TN|US|-87.36|36.53|166|NW|,Clay|NY|US|-76.17|43.19|58|N|,Clearfield|UT|US|-112.03|41.11|30|N|,Clearwater|FL|US|-82.8|27.97|117|N|,Cleburne|TX|US|-97.39|32.35|30|N|,Clermont|FL|US|-81.77|28.55|32|N|,Clermont-Ferrand|rhone alpes|FR|3.09|45.78|147|W|,Cleveland|OH|US|-81.7|41.5|365|NW|,Cleveland|TN|US|-84.88|35.16|43|N|,Cleveland Heights|OH|US|-81.56|41.52|44|N|,Clifton|NJ|US|-74.16|40.86|86|N|,Clifton Park|NY|US|-73.77|42.87|36|N|,Clinton|MD|US|-76.9|38.77|35|N|robeystown;surrats;surratsville;surratts;surrattsville,Clinton|IA|US|-90.19|41.84|26|N|,Clinton|MS|US|-90.32|32.34|25|N|,Clinton Township|MI|US|-82.92|42.59|99|N|,Cloverdale|BC|CA|-122.73|49.11|73|N|,Clovis|CA|US|-119.7|36.83|104|N|,Clovis|NM|US|-103.21|34.4|39|N|,Cluj-Napoca|cluj county|RO|23.6|46.77|286|W|klausenburg;clausenburg;kalosvar;kluz napoka;kluz;kolozsvar;clausemburgo,Coacalco|MX15|MX|-99.11|19.63|277|NW|coacalco de berriozaval;san francisco coacalco,Coachella|CA|US|-116.17|33.68|44|N|,Coatepec|MX30|MX|-96.96|19.45|53|N|,Coatzacoalcos|MX30|MX|-94.44|18.15|310|NW|puerto mexico;port of mexico,Coatzintla|MX30|MX|-97.47|20.49|34|N|,Coban|alta verapaz|GT|-90.37|15.47|212|W|,Cobbs Creek|PA|US|-75.24|39.95|33|N|,Cochabamba|cochabamba|BO|-66.16|-17.38|841|W|,Cochrane|AB|CA|-114.47|51.18|32|N|,Coconut Creek|FL|US|-80.18|26.25|59|N|,Cocula|MX14|MX|-103.82|20.37|29|N|,Coeur d'Alene|ID|US|-116.78|47.68|49|N|,Coimbatore|tamil nadu|IN|76.97|11.01|2136|W|koimbatur,Coimbra|coimbra|PT|-8.42|40.21|140|W|,Colchester|england|GB|0.9|51.89|130|W|,Colima|MX08|MX|-103.71|19.24|146|NW|,Colina|santiago metropolitan|CL|-70.67|-33.2|146|W|,College Park|MD|US|-76.94|38.98|32|N|,College Point|NY|US|-73.85|40.79|27|N|,College Station|TX|US|-96.33|30.63|107|N|,Colleyville|TX|US|-97.16|32.88|25|N|,Collierville|TN|US|-89.66|35.04|48|N|,Collinwood|OH|US|-81.57|41.56|34|N|,Colombo|western province|LK|79.85|6.94|648|W|kolombo,Colombo|parana|BR|-49.22|-25.29|232|W|,Colonia del Sol|MX03|MX|-109.93|22.91|48|N|,Colonia del Valle|MX09|MX|-99.16|19.39|250|NW|col del valle;del valle,Colonia Lindavista|MX15|MX|-99.12|19.49|100|N|col lindavista;lindavista,Colonia Nativitas|MX09|MX|-99.14|19.38|60|N|col nativitas;nativitas,Colorado Springs|CO|US|-104.82|38.83|456|NW|colorado spgs,Colton|CA|US|-117.31|34.07|54|N|,Columbia|SC|US|-81.03|34|142|NW|,Columbia|MO|US|-92.33|38.95|129|N|,Columbia|MD|US|-76.84|39.24|99|N|,Columbia|TN|US|-87.04|35.62|36|N|,Columbia Heights|DC|US|-77.03|38.93|38|N|meridian hill;meridian hill heights,Columbus|OH|US|-83|39.96|913|NW|,Columbus|GA|US|-84.99|32.46|206|NW|,Columbus|IN|US|-85.92|39.2|46|N|,Comalcalco|MX27|MX|-93.22|18.26|41|N|,Comilla|chittagong|BD|91.19|23.46|634|W|kumilla,Comitan|MX05|MX|-92.14|16.24|166|NW|comitan de dominguez,Commack|NY|US|-73.29|40.84|36|N|,Commerce City|CO|US|-104.93|39.81|53|N|,Commonwealth|national capital region|PH|121.08|14.7|215|W|,Comodoro Rivadavia|chubut|AR|-67.49|-45.86|140|W|,Compton|CA|US|-118.22|33.9|98|N|,Conakry|conakry|GN|-13.68|9.54|1928|W|conacri;konakry,Concepcion|biobio|CL|-73.05|-36.83|223|W|konsepsi,Concepcion|central luzon|PH|120.66|15.33|178|W|,Conception Bay South|NL|CA|-53|47.5|27|N|,Concord|CA|US|-122.03|37.98|128|N|,Concord|NC|US|-80.58|35.41|87|N|,Concord|NH|US|-71.54|43.21|43|N|,Concordia|entre rios|AR|-58.02|-31.39|145|W|,Coney Island|NY|US|-73.99|40.58|60|N|coney adasi,Confederation|SK|CA|-106.7|52.14|70|N|,Conroe|TX|US|-95.46|30.31|68|N|,Conselheiro Lafaiete|minas gerais|BR|-43.79|-20.66|138|W|,Constanta|constanta county|RO|28.63|44.18|317|W|konstanza;constanza;constanca;costanza;konstanca;kostence;kustence,Constantine|constantine|DZ|6.61|36.37|448|W|constantina,Contagem|minas gerais|BR|-44.05|-19.93|627|W|,Contla|MX29|MX|-98.17|19.33|27|N|,Conway|AR|US|-92.44|35.09|64|N|,Cookeville|TN|US|-85.5|36.16|32|N|,Coon Rapids|MN|US|-93.29|45.12|62|N|,Cooper City|FL|US|-80.27|26.06|35|N|,Copenhagen|capital region|DK|12.57|55.68|1153|W|copenaghen;copenhaga;copenhague;kodan;kopenhag;kopenhaga;kopenhagen;kopenhamn;koopenhamina;kobenhavn,Coppell|TX|US|-97.02|32.95|41|N|,Copperas Cove|TX|US|-97.9|31.12|33|N|,Coquimbo|coquimbo region|CL|-71.34|-29.95|161|W|,Coquitlam|BC|CA|-122.78|49.28|148|NW|,Coquitlam West|BC|CA|-122.88|49.26|25|N|,Coral Gables|FL|US|-80.27|25.72|51|N|,Coral Springs|FL|US|-80.27|26.27|129|N|,Coram|NY|US|-73|40.87|39|N|,Cordoba|cordoba|AR|-64.19|-31.41|2106|W|ciudad de cordoba;cordova,Cordoba|andalusia|ES|-4.77|37.89|325|W|cordoue;cordova;kordoba,Cordoba|MX30|MX|-96.93|18.88|204|NW|,Cordova|TN|US|-89.78|35.16|68|N|,Core Neighbourhoods|SK|CA|-106.67|52.13|36|N|,Cork|munster|IE|-8.47|51.9|224|W|cork city,Corlu|tekirdag|TR|27.8|41.16|202|W|,Cornelius|NC|US|-80.86|35.49|28|N|,Cornwall|ON|CA|-74.73|45.02|48|N|,Coro|falcon|VE|-69.68|11.41|246|W|,Corona|CA|US|-117.57|33.88|164|NW|,Corona|NY|US|-73.86|40.75|109|N|,Corpus Christi|TX|US|-97.4|27.8|316|NW|,Corrientes|corrientes|AR|-58.83|-27.47|346|W|ciudad de corrientes,Cortazar|MX11|MX|-100.96|20.48|61|N|,Corum|corum|TR|34.95|40.55|269|W|,Corvallis|OR|US|-123.26|44.56|55|N|,Cosamaloapan|MX30|MX|-95.8|18.37|30|N|,Costa Mesa|CA|US|-117.92|33.64|113|N|,Cotabato|autonomous region in muslim mindanao|PH|124.25|7.22|383|W|cotabato city,Cote-Saint-Luc|QC|CA|-73.67|45.47|31|N|,Cotia|sao paulo|BR|-46.92|-23.6|253|W|,Cotonou|littoral|BJ|2.42|6.37|679|W|cotonu;kotonu,Cottage Grove|MN|US|-92.94|44.83|35|N|,Cottonwood Heights|UT|US|-111.81|40.62|34|N|,Council Bluffs|IA|US|-95.86|41.26|62|N|co bluffs,Country Club|FL|US|-80.32|25.95|47|N|,Courtenay|BC|CA|-124.99|49.69|28|N|,Coventry|england|GB|-1.51|52.41|345|W|,Coventry|RI|US|-71.68|41.7|35|N|,Covina|CA|US|-117.89|34.09|48|N|,Covington|KY|US|-84.51|39.08|40|N|,Cox's Bazar|chittagong|BD|92.01|21.44|253|W|,Coyoacan|MX09|MX|-99.16|19.35|614|NW|,Coyotepec|MX15|MX|-99.21|19.78|35|N|,Coyula|MX14|MX|-103.23|20.66|29|N|,Cozumel|MX23|MX|-86.94|20.5|77|N|san miguel de cozumel,Craiova|dolj|RO|23.8|44.32|234|W|krajowa,Cranberry Township|PA|US|-80.11|40.68|28|N|,Cranston|RI|US|-71.44|41.78|81|N|,Crato|ceara|BR|-39.41|-7.23|139|W|,Criciuma|santa catarina|BR|-49.37|-28.68|227|W|,Crofton|MD|US|-76.69|39|27|N|,Croix-des-Bouquets|ouest|HT|-72.23|18.58|229|W|,Crown Point|IN|US|-87.37|41.42|28|N|,Croydon|england|GB|-0.1|51.38|173|W|croydon grants,Crystal Lake|IL|US|-88.32|42.24|40|N|,Cua|miranda|VE|-66.88|10.16|182|W|,Cuauhtemoc|MX09|MX|-99.15|19.45|531|NW|,Cuauhtemoc|MX06|MX|-106.87|28.41|168|NW|,Cuautitlan|MX15|MX|-99.18|19.67|178|NW|,Cuautitlan Izcalli|MX15|MX|-99.22|19.64|555|NW|izcalli,Cuautla|MX17|MX|-98.94|18.81|157|NW|,Cuautlancingo|MX21|MX|-98.27|19.09|25|N|san juan b cuautlancingo,Cucuta|norte de santander department|CO|-72.5|7.91|777|W|kukuta,Cuddalore|tamil nadu|IN|79.77|11.76|173|W|gondelour,Cuenca|azuay|EC|-79|-2.9|636|W|,Cuernavaca|MX17|MX|-99.23|18.93|338|NW|,Cuiaba|mato grosso|BR|-56.1|-15.6|618|W|culaba,Cuito|bie|AO|16.93|-12.38|355|W|kuito,Culiacan|MX25|MX|-107.39|24.8|808|NW|,Culver City|CA|US|-118.4|34.02|39|N|,Cumana|sucre|VE|-64.18|10.46|405|W|,Cumberland|RI|US|-71.43|41.97|34|N|,Cupertino|CA|US|-122.03|37.32|60|N|,Curitiba|parana|BR|-49.27|-25.43|1948|W|kurytyba,Curug|banten|ID|106.56|-6.27|191|W|,Cusco|cuzco department|PE|-71.97|-13.53|428|W|ciudad del cuzco;cuzco,Cutler Bay|FL|US|-80.34|25.58|45|N|cutler ridge,Cutler Ridge|FL|US|-80.35|25.58|26|N|,Cuttack|odisha|IN|85.88|20.46|610|W|,Cuyahoga Falls|OH|US|-81.48|41.13|49|N|,Cypress|TX|US|-95.7|29.97|200|NW|,Cypress|CA|US|-118.04|33.82|49|N|,Cypress Hills|NY|US|-73.89|40.68|54|N|,Czestochowa|silesia|PL|19.12|50.8|248|W|czenstochau;censtochova;tschenstochau,Da Lat|lam dong|VN|108.44|11.95|258|W|,Da Nang|da nang city|VN|108.22|16.07|1276|W|danang;thanh thai phien,Dabou|lagunes district|CI|-4.38|5.33|138|W|,Dachang|shanghai|CN|121.42|31.31|371|W|,Dadu|sindh|PK|67.78|26.73|201|W|,Daegu|daegu|KR|128.59|35.87|2365|W|daegu si;taegu;tegu,Daejeon|daejeon|KR|127.38|36.35|1441|W|daejeon si;taejon,Dagupan|ilocos|PH|120.33|16.04|171|W|kota dagupan,Dajal|punjab|PK|70.38|29.56|200|W|,Dakar|dakar|SN|-17.44|14.69|2646|W|dacar,Dakota Ridge|CO|US|-105.14|39.62|33|N|,Dale City|VA|US|-77.31|38.64|65|N|,Dali|yunnan|CN|100.21|25.58|235|W|,Dalian|liaoning|CN|121.6|38.91|4913|W|luta;luda,Daliang|guangdong|CN|113.25|22.84|210|W|shunde,Dallas|TX|US|-96.81|32.78|1326|NW|,Daloa|sassandra marahoue|CI|-6.45|6.88|421|W|,Dalton|GA|US|-84.97|34.77|33|N|,Dalupura|delhi|IN|77.32|28.61|154|W|,Daly City|CA|US|-122.46|37.71|106|N|,Damanhur|beheira|EG|30.47|31.03|318|W|,Damascus|damascus governorate|SY|36.29|33.51|1569|W|damasco;damas;damasc;damaskos;damaskus;damaszek;damasek;sam,Damietta|damietta|EG|31.81|31.42|305|W|damieta;damiette;dimyat;dimyath,Dammam|eastern province|SA|50.1|26.43|1252|W|ad dammam;ed dammam,Damoh|madhya pradesh|IN|79.44|23.83|139|W|,Dana Point|CA|US|-117.7|33.47|34|N|,Danbury|CT|US|-73.45|41.39|84|N|,Dandong|liaoning|CN|124.39|40.13|631|W|dan dong;andong,Dania Beach|FL|US|-80.14|26.05|31|N|,Danli|el paraiso department|HN|-86.58|14.03|233|W|,Danshui|taipei|TW|121.44|25.17|189|W|tamsui,Danvers|MA|US|-70.93|42.58|26|N|,Danville|CA|US|-122|37.82|44|N|,Danville|VA|US|-79.4|36.59|42|N|,Danville|IL|US|-87.63|40.12|32|N|,Daqing|heilongjiang|CN|125|46.58|1604|W|ta cching;taching,Dar Bouazza|casablanca settat|MA|-7.82|33.52|165|W|,Dar es Salaam|dar es salaam region|TZ|39.27|-6.82|5383|W|dar es salam;daressalam;darusselam,Darbhanga|bihar|IN|85.9|26.15|296|W|,Darmstadt|hesse|DE|8.65|49.87|167|W|,Darnytsya|kyiv city|UA|30.7|50.42|343|W|darnytsia;darnytskyi raion;darnytskyi rayon;darnytskyy raion;darnytskyy rayon,Dartmouth|NS|CA|-63.58|44.67|101|N|darmouth,Darwin|northern territory|AU|130.84|-12.46|139|W|port darwin,Dasmarinas|calabarzon|PH|120.94|14.33|441|W|kota dasmarinas,Dasoguz|dasoguz|TM|59.97|41.84|201|W|dashoguz;daszoguz;dashowuz;tasjauz,Datong|shanxi|CN|113.29|40.09|1850|W|ta tchung,Daule|guayas|EC|-79.98|-1.86|173|W|,Davangere|karnataka|IN|75.93|14.47|435|W|,Davao|davao region|PH|125.61|7.07|1848|W|davao city,Davenport|IA|US|-90.58|41.52|102|N|,Davie|FL|US|-80.23|26.06|100|N|,Davis|CA|US|-121.74|38.54|67|N|,Dawei|tanintharyi region|MM|98.19|14.08|136|W|tavoy,Dawukou|ningxia|CN|106.4|39.04|131|W|,Daxing'anling|heilongjiang|CN|124.71|52.33|520|W|,Daye|hubei|CN|114.95|30.08|347|W|,Dayrah|dubai|AE|55.3|25.27|400|W|deira,Dayton|OH|US|-84.19|39.76|135|NW|,Daytona Beach|FL|US|-81.02|29.21|72|N|daytona,Dazhou|sichuan|CN|107.46|31.21|1589|W|ta cou,Dearborn|MI|US|-83.18|42.32|95|N|,Dearborn Heights|MI|US|-83.27|42.34|56|N|,Debre Birhan|amhara|ET|39.53|9.68|146|W|debre berhan;debre byrhan,Debre Mark'os|amhara|ET|37.73|10.35|140|W|,Debrecen|hajdu bihar|HU|21.62|47.53|202|W|debreczyn;debrecin;debretin,Decatur|IL|US|-88.95|39.84|73|N|,Decatur|AL|US|-86.98|34.61|55|N|,Deer Park|TX|US|-95.12|29.71|33|N|,Deer Park|NY|US|-73.33|40.76|27|N|,Deer Valley|AZ|US|-112.13|33.68|165|NW|,Deerfield Beach|FL|US|-80.1|26.32|79|N|,Dehiwala-Mount Lavinia|western province|LK|79.87|6.84|219|W|mount lavinia,Dehradun|uttarakhand|IN|78.03|30.32|522|W|dehra dun,Deir ez-Zor|deir ez zor|SY|40.14|35.34|271|W|dayr az zawr;dajr az zaur;dayr al zawr;deir azzor;deir al zour;deir el zor;deir es sor;der ezzor;deyrez zor;deyrizor,DeKalb|IL|US|-88.75|41.93|43|N|,Del Rio|TX|US|-100.9|29.36|36|N|,DeLand|FL|US|-81.3|29.03|30|N|de land,Delano|CA|US|-119.25|35.77|52|N|,Delaware|OH|US|-83.07|40.3|37|N|,Delegacion Cuajimalpa de Morelos|MX09|MX|-99.29|19.37|160|NW|cuajimalpa de morelos,Delhi|delhi|IN|77.23|28.65|11034|W|dilli;deli;sahdzahanabad,Delmas|ouest|HT|-72.3|18.54|395|W|,Delray Beach|FL|US|-80.07|26.46|66|N|del ray beach,Delta|BC|CA|-123.05|49.09|101|N|,Deltona|FL|US|-81.26|28.9|88|N|,Dengzhou|henan|CN|112.09|32.68|285|W|,Denizli|denizli|TR|29.09|37.77|313|W|,Denpasar|bali|ID|115.22|-8.65|670|W|dempasar;dempassar;denpasar bali;kota denpasar,Denton|TX|US|-97.13|33.21|131|NW|,Denver|CO|US|-104.98|39.74|729|NW|,Deoghar|jharkhand|IN|86.7|24.49|203|W|,Deoli|delhi|IN|77.23|28.5|169|W|,Depok|west java|ID|106.82|-6.4|2163|W|kota depok,Dera Ghazi Khan|punjab|PK|70.64|30.05|494|W|,Dera Ismail Khan|khyber pakhtunkhwa|PK|70.9|31.83|763|W|,Derby|england|GB|-1.48|52.92|270|W|,Derry Village|NH|US|-71.31|42.89|34|N|,Des Moines|IA|US|-93.61|41.6|214|NW|,Des Moines|WA|US|-122.32|47.4|31|N|desmoines,Des Plaines|IL|US|-87.88|42.03|58|N|,Desert Hot Springs|CA|US|-116.5|33.96|28|N|,Desmarchais-Crawford|QC|CA|-73.58|45.45|29|N|,Desna|kyiv city|UA|30.68|50.52|368|W|,Desnyanskyi|chernihiv oblast|UA|31.32|51.51|179|W|desnianskyi;desnianskyi raion;desnyanskyi rayon,DeSoto|TX|US|-96.86|32.59|52|N|,Dessalines|artibonite|HT|-72.52|19.26|181|W|,Dessie|amhara|ET|39.63|11.13|270|W|dese;desje,Detroit|MI|US|-83.05|42.33|645|NW|,Dewas|madhya pradesh|IN|76.06|22.97|289|W|,Deyang|sichuan|CN|104.38|31.13|735|W|te jang,Dezful|khuzestan|IR|48.41|32.38|264|W|dezfoul,Dezhou|shandong|CN|116.37|37.45|679|W|te cou,Dhaka|dhaka division|BD|90.41|23.71|10356|W|daca;dacca;dakka,Dhamar|dhamar|YE|44.41|14.54|160|W|damar,Dhanbad|jharkhand|IN|86.43|23.8|1196|W|,Dhangadhi|sudurpashchim pradesh|NP|80.59|28.7|204|W|,Dharan|koshi|NP|87.28|26.81|173|W|,Dharavi|maharashtra|IN|72.87|19.05|700|W|,Dhaulpur|rajasthan|IN|77.88|26.69|133|W|,Dhirkot|azad kashmir|PK|73.58|34.04|195|W|,Dhule|maharashtra|IN|74.78|20.9|375|W|,Di An|ho chi minh city hcmc|VN|106.77|10.91|463|W|,Diadema|sao paulo|BR|-46.62|-23.69|403|W|,Diamond Bar|CA|US|-117.81|34.03|56|N|,Dibrugarh|assam|IN|94.91|27.48|145|W|,Dieppe|NB|CA|-64.69|46.08|27|N|,Diepsloot|gauteng|ZA|28.01|-25.93|350|W|,Diez de Octubre|havana|CU|-82.36|23.09|227|W|,Digri|sindh|PK|69.11|25.16|234|W|,Dihok|duhok|IQ|42.99|36.87|340|W|dahuk;dohuk;duhok,Dijon|bourgogne|FR|5.01|47.31|159|W|digione,Dila|south ethiopia regional state|ET|38.32|6.42|158|W|,Dili|dili municipality|TL|125.57|-8.56|150|W|,Dimapur|nagaland|IN|93.72|25.91|135|W|,Dimitrovgrad|ulyanovsk|RU|49.62|54.21|132|W|dimitrowgrad,Din Daeng|bangkok|TH|100.57|13.79|130|W|,Dinajpur|rangpur division|BD|88.64|25.63|206|W|,Dinapore|bihar|IN|85.05|25.64|152|W|,Dinapur Nizamat|bihar|IN|85.05|25.64|182|W|,Dindigul|tamil nadu|IN|77.98|10.37|292|W|dindukkal,Dingxi|gansu|CN|104.62|35.57|420|W|,Dingzhou|hebei|CN|114.99|38.51|152|W|,Diourbel|diourbel region|SN|-16.24|14.65|157|W|,Dire Dawa|dire dawa|ET|41.87|9.59|343|W|dire daua,Disuq|kafr el sheikh|EG|30.65|31.13|149|W|,Divinopolis|minas gerais|BR|-44.89|-20.14|231|W|,Divo|goh djiboua|CI|-5.36|5.84|136|W|,Dix Hills|NY|US|-73.34|40.8|26|N|,Dixinn|conakry|GN|-13.67|9.55|137|W|,Diyarbakir|diyarbakir province|TR|40.22|37.91|1833|W|amida,Djelfa|djelfa|DZ|3.26|34.67|265|W|dzilfa,Djibouti|djibouti|DJ|43.15|11.59|626|W|cibuti;dschibuti;dzibuti;gibuti;yibuti,Dnipro|dnipropetrovsk|UA|35.04|48.47|968|W|dniepr;dnjepropetrovsk;dnepropetrovsk;caterinoslavia;catherinoslav;dnipropetrovs k;dnipropetrovsk;dniproslav;katerynoslav;novorosiynsk;novyy kodak;sicheslav,Dniprovskyi|kyiv city|UA|30.6|50.45|357|W|,Dodge City|KS|US|-100.02|37.75|27|N|,Dodoma|dodoma|TZ|35.74|-6.17|765|W|,Doha|baladiyat ad dawhah|QA|51.53|25.29|344|W|ad dauha;dauha,Doilungdeqen|tibet|CN|90.99|29.66|137|W|,Dollard-Des Ormeaux|QC|CA|-73.82|45.49|48|N|,Dolores Hidalgo|MX11|MX|-100.93|21.16|67|N|ciudad de dolores hidalgo,Dombivali|maharashtra|IN|73.08|19.22|1247|W|dombivli,Don Valley Village|ON|CA|-79.35|43.78|27|N|,Donaustadt|state of vienna|AT|16.46|48.23|187|W|,Donetsk|donetsk|UA|37.8|48.02|901|W|donezk;donec k;donetk;donieck;doneck;dinetsk;dinetske;iuziv;iuzivka;iuzove;oleksandrivka;yuziv;yuzove,Dong Ha|quang tri|VN|107.1|16.82|164|W|,Dongguan|guangdong|CN|113.75|23.02|9644|W|,Donghai|guangdong|CN|115.64|22.95|264|W|,Dongling|liaoning|CN|123.58|41.81|171|W|,Dongtai|jiangsu|CN|120.31|32.85|262|W|,Dongyang|zhejiang|CN|120.23|29.27|130|W|,Dongying|shandong|CN|118.49|37.46|998|W|tung jing;dong dinh,Doral|FL|US|-80.36|25.82|75|N|,Dorchester|MA|US|-71.07|42.3|97|N|,Dorset Park|ON|CA|-79.28|43.75|25|N|,Dortmund|north rhine westphalia|DE|7.47|51.51|588|W|,Dosquebradas|risaralda department|CO|-75.67|4.84|206|W|dos quebradas,Dothan|AL|US|-85.39|31.22|68|N|,Douala|littoral|CM|9.7|4.05|1338|W|duala,Douglasville|GA|US|-84.75|33.75|32|N|,Dourados|mato grosso do sul|BR|-54.81|-22.22|264|W|,Dover|DE|US|-75.52|39.16|39|N|,Dover|NH|US|-70.87|43.2|30|N|,Dovercourt-Wallace Emerson-Junction|ON|CA|-79.44|43.67|36|N|,Downers Grove|IL|US|-88.01|41.81|49|N|,Downey|CA|US|-118.13|33.94|114|N|,Downsview-Roding-CFB|ON|CA|-79.49|43.73|35|N|,Downtown DC|DC|US|-77.02|38.89|52|N|,Downtown Halifax|NS|CA|-63.58|44.65|25|N|,Downtown Vancouver|BC|CA|-123.12|49.28|62|N|,Dracut|MA|US|-71.3|42.67|28|N|,Draper|UT|US|-111.86|40.52|46|N|,Dresden|saxony|DE|13.74|51.05|564|W|dresda;dresde;drezno;drazdany,Drexel Heights|AZ|US|-111.03|32.14|27|N|,Drexel Hill|PA|US|-75.29|39.95|28|N|,Drummondville|QC|CA|-72.48|45.88|59|N|,Dubai|dubai|AE|55.31|25.08|3790|W|dubai city;dubaj,Dubai Investments Park|dubai|AE|55.16|25.01|160|W|,Dublin|leinster|IE|-6.25|53.33|1024|W|dublin city;dublino,Dublin|CA|US|-121.94|37.7|57|N|,Dublin|OH|US|-83.11|40.1|45|N|,Dubreka|kindia|GN|-13.52|9.79|182|W|,Dubuque|IA|US|-90.66|42.5|58|N|,Dudley|england|GB|-2.08|52.5|199|W|,Duesseldorf|north rhine westphalia|DE|6.78|51.22|618|W|dusseldorf,Duezce|duzce|TR|31.16|40.84|194|W|duzce,Duisburg|north rhine westphalia|DE|6.77|51.43|504|W|duisbourg;duisburgo,Duluth|MN|US|-92.11|46.78|86|N|,Duluth|GA|US|-84.14|34|29|N|,Dumai|riau|ID|101.44|1.67|349|W|kota dumai,Duncanville|TX|US|-96.91|32.65|39|N|,Dundalk|MD|US|-76.52|39.25|63|N|,Dundee|scotland|GB|-2.97|56.47|148|W|,Dundo|luanda norte|AO|20.82|-7.37|177|W|,Dunedin|otago|NZ|170.5|-45.87|132|W|,Dunedin|FL|US|-82.77|28.02|36|N|,Dunhua|jilin|CN|128.23|43.37|148|W|,Dunhuang|gansu|CN|94.68|40.17|186|W|tun chuang;don hoang,Dunwoody|GA|US|-84.33|33.95|48|N|,Duque de Caxias|rio de janeiro|BR|-43.31|-22.79|866|W|,Durban|kwazulu natal|ZA|31.03|-29.86|3338|W|port natal,Durg|chhattisgarh|IN|81.28|21.19|268|W|,Durgapur|west bengal|IN|87.31|23.52|518|W|,Durham|NC|US|-78.9|35.99|257|NW|,Durres|durres county|AL|19.45|41.32|195|W|drac;durazzo,Dushanbe|dushanbe|TJ|68.78|38.54|679|W|doesjanbe;douchanbe;duschanbe;dusjanbe;duszanbe;dusanbe,Duvernay|QC|CA|-73.67|45.58|37|N|,Duyun|guizhou|CN|107.52|26.27|198|W|,Dyker Heights|NY|US|-74.01|40.62|34|N|,Dzerzhinsk|nizhny novgorod oblast|RU|43.46|56.24|233|W|dserschinsk;dzerjinsk;dzerzjinsk;dzerzinsk;dzierzynsk,E'zhou|hubei|CN|114.89|30.4|668|W|ezhou;wuchang,Eagan|MN|US|-93.17|44.8|66|N|,Eagle Mountain|UT|US|-112.01|40.31|27|N|,Eagle Pass|TX|US|-100.5|28.71|28|N|,East Boston|MA|US|-71.04|42.38|43|N|,East Brunswick|NJ|US|-74.42|40.43|48|N|e brunswick;east brunswick township,East Chattanooga|TN|US|-85.25|35.07|154|NW|,East Chicago|IN|US|-87.45|41.64|28|N|,East Concord|NH|US|-71.54|43.24|42|N|,East Flatbush|NY|US|-73.93|40.65|178|NW|,East Florence|AL|US|-87.65|34.81|35|N|,East Hampton|VA|US|-76.33|37.04|147|NW|,East Harlem|NY|US|-73.94|40.79|115|N|harlem del este,East Hartford|CT|US|-72.61|41.78|51|N|,East Hastings|BC|CA|-123.06|49.27|80|N|,East Haven|CT|US|-72.87|41.28|29|N|,East Helsinki|uusimaa|FI|25.08|60.21|170|W|ita helsinki;ostra helsingfors,East Hill-Meridian|WA|US|-122.17|47.41|29|N|,East Honolulu|HI|US|-157.72|21.29|49|N|,East Independence|MO|US|-94.36|39.1|110|N|,East Jerusalem|west bank|PS|35.23|31.78|428|W|dogu kudus;gerusalemme est;jerusalem oriental;jerusalen este;jerusalem est;oost jeruzalem;ostjerusalem;vychodni jeruzalem;wschodnia jerozolima;yerusalem timur;ostra jerusalem;ost jerusalem;dong jerusalem,East Lake|FL|US|-82.69|28.11|30|N|,East Lansing|MI|US|-84.48|42.74|48|N|,East London|eastern cape|ZA|27.91|-33.02|478|W|buffalo city;kugompo city,East Los Angeles|CA|US|-118.17|34.02|126|N|dogu los angeles;este de los angeles,East Meadow|NY|US|-73.56|40.71|38|N|,East New York|NY|US|-73.88|40.67|173|NW|,East Norwalk|CT|US|-73.4|41.11|84|N|,East Orange|NJ|US|-74.2|40.77|64|N|,East Palo Alto|CA|US|-122.14|37.47|29|N|palo alto timur,East Pensacola Heights|FL|US|-87.18|30.43|54|N|,East Point|GA|US|-84.44|33.68|35|N|,East Providence|RI|US|-71.37|41.81|47|N|dong providence,East Saint Louis|IL|US|-90.15|38.62|27|N|,East Village|NY|US|-73.99|40.73|62|N|,Easton|PA|US|-75.22|40.69|26|N|,Eastpointe|MI|US|-82.96|42.47|32|N|,Eastvale|CA|US|-117.56|33.96|59|N|,Eau Claire|WI|US|-91.5|44.81|67|N|,Ebetsu|hokkaido|JP|141.55|43.11|133|W|,Ebina|kanagawa|JP|139.4|35.38|136|W|,Ebute Ikorodu|lagos|NG|3.49|6.6|535|W|,Ecatepec de Morelos|MX15|MX|-99.06|19.6|1645|NW|ecatepec,Echo Park|CA|US|-118.26|34.08|43|N|,Ede|osun state|NG|4.44|7.74|159|W|,Eden Prairie|MN|US|-93.47|44.85|63|N|,Edgewater|IL|US|-87.66|41.98|54|N|,Edgewood|MD|US|-76.29|39.42|25|N|,Edina|MN|US|-93.35|44.89|50|N|,Edinburg|TX|US|-98.16|26.3|84|N|,Edinburgh|scotland|GB|-3.2|55.95|514|W|edimburgo;edynburg;edimbourg,Edirne|edirne|TR|26.56|41.68|180|W|adrianopol;adrianopoli,Edison|NJ|US|-74.41|40.52|102|N|gmina edison,Edmond|OK|US|-97.48|35.65|90|N|,Edmonds|WA|US|-122.38|47.81|41|N|,Edmonton|AB|CA|-113.47|53.55|1010|NW|,Edogawe|tokyo|JP|139.87|35.69|697|W|edogawa city,Efon-Alaaye|ekiti state|NG|4.92|7.66|279|W|,Egypt Lake-Leto|FL|US|-82.51|28.02|35|N|,Eimsbuettel|hamburg|DE|9.96|53.57|269|W|eimsbuttel;bezirk eimsbuttel;distretto di eimsbuttel;hambourg eimsbuttel;hamburg eimsbuttel,Eindhoven|north brabant|NL|5.48|51.44|235|W|,Eixample|catalonia|ES|2.16|41.39|266|W|distrito del ensanche,Ejigbo|osun state|NG|4.31|7.9|138|W|,El Achir|bordj bou arreridj|DZ|4.63|36.06|158|W|,El Cajon|CA|US|-116.96|32.79|103|N|,El Centro|CA|US|-115.56|32.79|43|N|,El Daein|eastern darfur|SD|26.13|11.46|264|W|ad du ayn;ad duajn;ad du ain;ed daein,El Dibir|bari|SO|51.22|11.77|200|W|,El Dorado Hills|CA|US|-121.08|38.69|42|N|,El Eulma|setif|DZ|5.69|36.15|145|W|,El Fasher|northern darfur|SD|25.35|13.63|252|W|al fashir;al faschir,El Geneina Fort|western darfur|SD|22.46|13.47|134|W|,El Jadida|casablanca settat|MA|-8.51|33.26|212|W|al dzadida;el yadida;mazagao;castilho real;mazaghan,El Limon|aragua|VE|-67.63|10.31|148|W|,El Mirage|AZ|US|-112.32|33.61|33|N|,El Monte|CA|US|-118.03|34.07|116|N|,El Obeid|north kordofan|SD|30.22|13.18|393|W|al ubayyid,El Oued|el oued|DZ|6.86|33.36|186|W|al wadi;oued souf,El Paso|TX|US|-106.49|31.76|678|NW|,El Pueblito|MX22|MX|-100.44|20.54|71|N|corregidora,El Tigre|anzoategui|VE|-64.25|8.89|222|W|,El Vigia|merida|VE|-71.66|8.61|162|W|,Elazig|elazig|TR|39.22|38.67|443|W|,Elche|valencia|ES|-0.7|38.26|234|W|elx,Eldersburg|MD|US|-76.95|39.4|30|N|eldersburgh,Eldoret|uasin gishu county|KE|35.27|0.52|475|W|,Elektrostal'|moscow oblast|RU|38.46|55.79|144|W|,Elgin|IL|US|-88.28|42.04|112|N|,Elizabeth|NJ|US|-74.21|40.66|129|N|,Elizabethtown|KY|US|-85.86|37.69|29|N|,Elk Grove|CA|US|-121.37|38.41|166|NW|,Elk Grove Village|IL|US|-87.97|42|33|N|,Elkhart|IN|US|-85.98|41.68|52|N|,Ellendale|TN|US|-89.83|35.23|25|N|,Ellicott City|MD|US|-76.8|39.27|65|N|,Elmhurst|NY|US|-73.88|40.74|113|N|,Elmhurst|IL|US|-87.94|41.9|45|N|,Elmira|NY|US|-76.81|42.09|28|N|,Elmont|NY|US|-73.71|40.7|33|N|,Eloy Alfaro|guayas|EC|-79.84|-2.17|315|W|duran,Eluru|andhra pradesh|IN|81.1|16.71|218|W|,Elyria|OH|US|-82.11|41.37|53|N|,Emalahleni|mpumalanga|ZA|29.23|-25.87|373|W|,eMbalenhle|mpumalanga|ZA|29.07|-26.53|142|W|,Embu das Artes|sao paulo|BR|-46.85|-23.65|259|W|embu arte,Emiliano Zapata|MX17|MX|-99.18|18.84|49|N|,Emiliano Zapata|MX15|MX|-98.97|19.34|25|N|,Eminabad|punjab|PK|74.26|32.04|150|W|,Empalme|MX26|MX|-110.81|27.96|42|N|,Encanto|AZ|US|-112.08|33.48|54|N|,Encarnacion de Diaz|MX14|MX|-102.24|21.53|25|N|la chona,Enchanted Hills|NM|US|-106.59|35.34|87|N|,Encinitas|CA|US|-117.29|33.04|62|N|,Encino|CA|US|-118.5|34.16|44|N|,Enfield|CT|US|-72.59|41.98|45|N|,Enfield Town|england|GB|-0.08|51.65|156|W|enfield,Engels|saratov oblast|RU|46.11|51.48|196|W|enehl s;engel s;pokrovs ka sloboda,Englewood|CO|US|-104.99|39.65|33|N|new dawn rejuvenation,Englewood|NJ|US|-73.97|40.89|28|N|,Englewood|IL|US|-87.65|41.78|26|N|,Enid|OK|US|-97.88|36.4|51|N|,Enschede|overijssel|NL|6.9|52.22|153|W|,Ensenada|MX02|MX|-116.6|31.87|443|NW|enseada,Enshi|hubei|CN|109.48|30.3|279|W|,Enterprise|NV|US|-115.24|36.03|108|N|,Enterprise|AL|US|-85.86|31.32|27|N|,Enugu|enugu state|NG|7.5|6.44|950|W|,Envigado|antioquia|CO|-75.59|6.18|163|W|,Epworth|harare|ZW|31.15|-17.89|206|W|,Erbil|erbil|IQ|44.01|36.19|1612|W|arbil;hawler;irbil,Eregli|konya|TR|34.05|37.51|156|W|heraclea;heraclea minoa;herakleia,Erfurt|thuringia|DE|11.04|50.98|218|W|,Erie|PA|US|-80.09|42.13|99|N|,Erode|tamil nadu|IN|77.73|11.34|521|W|irodu,Erzincan|erzincan|TR|39.49|39.74|150|W|erzincam;erzinca,Erzurum|erzurum|TR|41.28|39.91|767|W|,Escarcega|MX04|MX|-90.75|18.61|29|N|,Escondido|CA|US|-117.09|33.12|151|NW|,Escuinapa de Hidalgo|MX25|MX|-105.78|22.83|30|N|,Escuintla|escuintla|GT|-90.79|14.3|156|W|,Esenler|istanbul|TR|28.88|41.04|520|W|,Esenyurt|istanbul|TR|28.68|41.03|983|W|,Eskisehir|eskisehir|TR|30.52|39.78|921|W|,Eslamshahr|tehran|IR|51.24|35.55|450|W|eslamchahr;eslamschahr;shadshahr,Esmeraldas|esmeraldas|EC|-79.65|0.96|218|W|,Esna|qena|EG|32.55|25.29|462|W|,Esperanza|MX26|MX|-109.93|27.58|38|N|,Espoo|uusimaa|FI|24.65|60.21|323|W|esbo,Essen|north rhine westphalia|DE|7.01|51.46|593|W|,Essex|MD|US|-76.47|39.31|39|N|,Estero|FL|US|-81.81|26.44|30|N|,Etah|uttar pradesh|IN|78.66|27.56|131|W|,Etawah|uttar pradesh|IN|79.02|26.78|257|W|,Etobicoke|ON|CA|-79.57|43.64|365|NW|,Etwatwa|gauteng|ZA|28.45|-26.13|151|W|,Euclid|OH|US|-81.53|41.59|47|N|,Eugene|OR|US|-123.09|44.05|176|NW|,Euless|TX|US|-97.08|32.84|54|N|,Eureka|CA|US|-124.16|40.8|27|N|,Evans|GA|US|-82.13|33.53|29|N|,Evanston|IL|US|-87.69|42.04|75|N|,Evansville|IN|US|-87.56|37.97|119|N|,Evaton|gauteng|ZA|27.85|-26.53|725|W|,Everett|WA|US|-122.2|47.98|108|N|,Everett|MA|US|-71.05|42.41|46|N|,'Ewa Gentry-West Loch|HI|US|-158.03|21.35|35|N|,Ewing|NJ|US|-74.8|40.27|36|N|,Exeter|england|GB|-3.53|50.72|130|W|,Ezhou|hubei|CN|114.83|30.4|193|W|,Facatativa|cundinamarca|CO|-74.35|4.81|141|W|,Fair Lawn|NJ|US|-74.13|40.94|33|N|,Fair Oaks|CA|US|-121.27|38.64|30|N|,Fairbanks|AK|US|-147.72|64.84|32|N|,Fairborn|OH|US|-84.02|39.82|33|N|,Fairfield|CA|US|-122.04|38.25|112|N|,Fairfield|CT|US|-73.26|41.14|59|N|,Fairfield|OH|US|-84.56|39.35|42|N|,Fairview|BC|CA|-123.13|49.26|33|N|,Faisalabad|punjab|PK|73.09|31.42|3800|W|fajsalabad;lyallpur,Fall River|MA|US|-71.16|41.7|94|N|,Fallbrook|CA|US|-117.25|33.38|30|N|,Fallingbrook|ON|CA|-75.48|45.48|25|N|,Fangchenggang|guangxi|CN|108.36|21.77|276|W|,Fanling|north district|HK|114.14|22.49|263|W|,Far Rockaway|NY|US|-73.76|40.61|39|N|,Fardis|tehran|IR|51|35.76|181|W|,Fargo|ND|US|-96.79|46.88|118|N|,Faridabad|haryana|IN|77.31|28.41|1414|W|,Farmers Branch|TX|US|-96.9|32.93|32|N|,Farmington|NM|US|-108.22|36.73|42|N|,Farmington|CT|US|-72.83|41.72|25|N|,Farmington Hills|MI|US|-83.38|42.49|81|N|,Farrukhabad|uttar pradesh|IN|79.58|27.39|241|W|,Fatehpur|uttar pradesh|IN|80.81|25.93|166|W|,Fatih|istanbul|TR|28.94|41.02|356|W|,Favoriten|state of vienna|AT|16.38|48.16|201|W|,Fayetteville|NC|US|-78.88|35.05|201|NW|,Fayetteville|AR|US|-94.16|36.06|82|N|,Fazenda Rio Grande|parana|BR|-49.31|-25.66|148|W|,Federal Way|WA|US|-122.31|47.32|95|N|,Feira de Santana|bahia|BR|-38.97|-12.27|616|W|,Felipe Carrillo Puerto|MX23|MX|-88.05|19.58|25|N|,Fendou|heilongjiang|CN|124.86|46.64|226|W|,Fengcheng|chongqing|CN|107.06|29.83|175|W|changshohein,Fengcheng|jiangsu|CN|116.59|34.7|161|W|,Fenghuang|hunan|CN|109.6|27.94|370|W|,Fengshan|takao|TW|120.36|22.63|356|W|feng san;fongshan district,Fengxiang|shanghai|CN|121.47|30.86|1140|W|,Fenway/Kenmore|MA|US|-71.1|42.34|37|N|,Fergana|fergana|UZ|71.78|40.38|299|W|ferghana,Ferrara|emilia romagna|IT|11.62|44.84|132|W|ferrare,Ferraz de Vasconcelos|sao paulo|BR|-46.37|-23.54|179|W|,Ferry Pass|FL|US|-87.21|30.51|28|N|,Fes|fes meknes|MA|-5|34.03|1191|W|fez,Fes al Bali|fes meknes|MA|-4.95|34.07|156|W|,Fianarantsoa|upper matsiatra|MG|47.09|-21.45|203|W|,Financial District|NY|US|-74.01|40.71|60|N|,Findlay|OH|US|-83.65|41.04|41|N|,Firozabad|uttar pradesh|IN|78.4|27.15|306|W|,Fishers|IN|US|-86.01|39.96|76|N|,Fitchburg|MA|US|-71.8|42.58|40|N|,Fitchburg|WI|US|-89.47|42.96|27|N|,Flagami|FL|US|-80.32|25.76|50|N|,Flagstaff|AZ|US|-111.65|35.2|70|N|,Flatbush|NY|US|-73.96|40.65|93|N|,Flatlands|NY|US|-73.93|40.62|63|N|,Fleetwood|BC|CA|-122.8|49.17|65|N|,Fleming Island|FL|US|-81.72|30.09|27|N|,Flint|MI|US|-83.69|43.01|98|N|,Florence|tuscany|IT|11.25|43.78|367|W|florencja;firenze;floransa;florencia;florencie;florens;florenz;florenca;florenta,Florence|AL|US|-87.68|34.8|40|N|,Florence|SC|US|-79.76|34.2|38|N|,Florence|KY|US|-84.63|39|32|N|,Florence|AZ|US|-111.39|33.03|31|N|,Florence-Graham|CA|US|-118.24|33.97|63|N|,Florencia|caqueta|CO|-75.6|1.62|168|W|,Florianopolis|santa catarina|BR|-48.55|-27.6|508|W|floripa;nossa senhora do desterro;santa catherina,Floridablanca|santander department|CO|-73.09|7.06|267|W|,Floridsdorf|state of vienna|AT|16.4|48.25|162|W|,Florin|CA|US|-121.41|38.5|47|N|,Florissant|MO|US|-90.32|38.79|52|N|,Flower Mound|TX|US|-97.1|33.01|71|N|,Foggia|apulia|IT|15.55|41.46|137|W|,Folsom|CA|US|-121.18|38.68|76|N|,Fond du Lac|WI|US|-88.44|43.77|42|N|,Fontana|CA|US|-117.44|34.09|212|NW|,Fontanar|havana|CU|-82.41|23.02|178|W|,Foothill Farms|CA|US|-121.35|38.68|33|N|,Fordham|NY|US|-73.9|40.86|94|N|,Forest Hills|NY|US|-73.85|40.72|67|N|,Forest Hills|MI|US|-85.49|42.96|25|N|,Formosa|formosa|AR|-58.17|-26.18|222|W|ciudad de formosa,Fort Bragg|NC|US|-79.01|35.14|29|N|phao dai bragg;fort liberty,Fort Cavazos|TX|US|-97.78|31.13|29|N|,Fort Collins|CO|US|-105.08|40.59|170|NW|ft collins,Fort Erie|ON|CA|-78.93|42.9|30|N|,Fort Garry South|MB|CA|-97.16|49.79|65|N|,Fort Hamilton|NY|US|-74.03|40.62|28|N|,Fort Lauderdale|FL|US|-80.14|26.12|183|NW|,Fort Lee|NJ|US|-73.97|40.85|36|N|,Fort McMurray|AB|CA|-111.38|56.73|66|N|,Fort Myers|FL|US|-81.84|26.62|74|N|,Fort Pierce|FL|US|-80.33|27.45|44|N|ft pierce,Fort Smith|AR|US|-94.4|35.39|88|N|,Fort Wayne|IN|US|-85.13|41.13|260|NW|,Fort Worth|TX|US|-97.32|32.73|1008|NW|ft worth,Fortaleza|ceara|BR|-38.54|-3.72|2400|W|,Fortechnyi|kirovohrad|UA|32.25|48.5|167|W|,Fortuna Foothills|AZ|US|-114.41|32.66|26|N|,Foshan|guangdong|CN|113.13|23.03|9042|W|fo san,Foster City|CA|US|-122.27|37.56|33|N|,Foumban|west|CM|10.9|5.73|130|W|foumbam;fumban,Fountain|CO|US|-104.7|38.68|27|N|,Fountain Valley|CA|US|-117.95|33.71|56|N|,Fountainebleau|FL|US|-80.35|25.77|59|N|fountainbleau,Four Corners|FL|US|-81.65|28.33|26|N|,Foz do Iguacu|parana|BR|-54.59|-25.55|297|W|foz de iguazu,Fraccionamiento Real Palmas|MX19|MX|-100.16|25.9|34|N|,Framingham|MA|US|-71.42|42.28|68|N|,Framingham Center|MA|US|-71.44|42.3|65|N|,Franca|sao paulo|BR|-47.4|-20.54|365|W|,Franceville|haut ogooue|GA|13.58|-1.63|132|W|,Francisco I. Madero|MX07|MX|-103.27|25.77|26|N|,Francisco Morato|sao paulo|BR|-46.75|-23.28|165|W|,Franco da Rocha|sao paulo|BR|-46.73|-23.32|144|W|,Frankfort|KY|US|-84.87|38.2|28|N|,Frankfurt am Main|hesse|DE|8.68|50.12|650|W|francfort sur le main;francoforte sul meno;francfort del meno;francfort;francoforte;frankfurt;frankfurt nad menem;frankfurt nad mohanem;franckfurt,Franklin|TN|US|-86.87|35.93|72|N|,Franklin|WI|US|-88.04|42.89|36|N|,Franklin|MA|US|-71.4|42.08|30|N|,Franklin Square|NY|US|-73.68|40.71|29|N|,Fraser Heights|BC|CA|-122.78|49.2|25|N|,Frederick|MD|US|-77.41|39.41|69|N|,Fredericksburg|VA|US|-77.46|38.3|28|N|,Fredericton|NB|CA|-66.67|45.95|63|N|,Fredericton Northside|NB|CA|-66.64|45.98|28|N|northside fredericton,Freeport|NY|US|-73.58|40.66|43|N|,Freetown|western area|SL|-13.24|8.49|802|W|,Freguesia do O|sao paulo|BR|-46.7|-23.5|137|W|nossa senhora do o,Freiburg|baden wurttemberg|DE|7.85|48|237|W|freiburg im breisgau;fribourg en brisgau;friburgo de brisgovia;friburgo in brisgovia;fryburg bryzgowijski,Fremont|CA|US|-121.99|37.55|232|NW|,Fremont|NE|US|-96.5|41.43|26|N|,Fresh Meadows|NY|US|-73.79|40.73|28|N|,Fresnillo|MX32|MX|-102.87|23.17|143|NW|,Fresno|CA|US|-119.77|36.75|542|NW|,Fridley|MN|US|-93.26|45.09|27|N|,Friendswood|TX|US|-95.2|29.53|38|N|,Frisco|TX|US|-96.82|33.15|154|NW|,Frontera|MX07|MX|-101.45|26.93|69|N|ciudad frontera,Fruit Cove|FL|US|-81.64|30.11|29|N|,Fu'an|fujian|CN|119.64|27.09|154|W|,Fuchu|tokyo|JP|139.48|35.67|262|W|,Fuding|fujian|CN|120.21|27.33|192|W|,Fuencarral|madrid|ES|-3.68|40.5|238|W|,Fuencarral-El Pardo|madrid|ES|-3.73|40.5|220|W|,Fuenlabrada|madrid|ES|-3.79|40.28|190|W|,Fuentes del Valle|MX15|MX|-99.14|19.63|74|N|,Fuerth|bavaria|DE|10.99|49.48|132|W|furth,Fuji|shizuoka|JP|138.68|35.17|245|W|fudzi,Fuji|sichuan|CN|105.37|29.15|131|W|,Fujieda|shizuoka|JP|138.27|34.87|145|W|,Fujinomiya|shizuoka|JP|138.62|35.22|132|W|,Fujisawa|kanagawa|JP|139.48|35.35|439|W|,Fukayacho|saitama|JP|139.28|36.2|141|W|,Fukui-shi|fukui|JP|136.22|36.06|262|W|,Fukuoka|fukuoka|JP|130.42|33.6|1612|W|fukuoka shi;fukuokashi,Fukushima|fukushima|JP|140.47|37.75|294|W|,Fukuyama|hiroshima|JP|133.37|34.48|468|W|,Fuling|chongqing|CN|107.39|29.71|268|W|fuchow,Fullerton|CA|US|-117.93|33.87|140|NW|,Funtua|katsina state|NG|7.31|11.52|136|W|,Fushun|liaoning|CN|123.94|41.89|1400|W|fu sun,Fuxin|liaoning|CN|121.66|42.02|689|W|fu sin,Fuyang|anhui|CN|115.82|32.9|1768|W|fu jang,Fuyu|jilin|CN|124.82|45.18|138|W|,Fuzhou|fujian|CN|119.31|26.06|3740|W|fu cou;fucheu;phuc chau,Fuzhou|jiangxi|CN|116.33|27.96|1089|W|fu cou,Fyzabad|uttar pradesh|IN|82.15|26.78|153|W|faizabad,Gaborone|gaborone|BW|25.91|-24.65|246|W|,Gabriel Leyva Solano|MX25|MX|-108.64|25.66|27|N|benito juarez;leyva solano,Gadag|karnataka|IN|75.63|15.43|172|W|,Gadag-Betageri|karnataka|IN|75.62|15.42|172|W|,Gadsden|AL|US|-86.01|34.01|36|N|,Gage Park|IL|US|-87.7|41.8|41|N|,Gagnoa|goh djiboua|CI|-5.95|6.13|277|W|,Gahanna|OH|US|-82.88|40.02|34|N|,Gainesville|FL|US|-82.32|29.65|145|NW|,Gainesville|GA|US|-83.82|34.3|38|N|,Gaithersburg|MD|US|-77.2|39.14|67|N|,Gajuwaka|andhra pradesh|IN|83.22|17.7|258|W|,Galati|galati county|RO|28.05|45.44|217|W|galatz;galacz,Galesburg|IL|US|-90.37|40.95|31|N|,Gallatin|TN|US|-86.45|36.39|34|N|,Galt|CA|US|-121.3|38.25|25|N|,Galveston|TX|US|-94.8|29.3|50|N|,Gama|federal district|BR|-48.07|-16.03|139|W|,Gandajika|lomami|CD|23.95|-6.75|208|W|,Gandhidham|gujarat|IN|70.13|23.08|247|W|,Gandhinagar|gujarat|IN|72.68|23.22|292|W|,Gangneung|gangwon do|KR|128.87|37.75|208|W|,Ganja|gence|AZ|46.36|40.68|330|W|ganca;gandja;gandza;gence;gandzja,Ganzhou|jiangxi|CN|114.93|25.85|1977|W|cam chau;kan cou,Gao|gao|ML|-0.04|16.27|133|W|,Gaomi|shandong|CN|119.75|36.38|391|W|,Gaoping|sichuan|CN|106.1|30.78|204|W|,Gaozhou|guangdong|CN|110.86|21.92|292|W|,Garanhuns|pernambuco|BR|-36.5|-8.88|151|W|,Garcia|MX19|MX|-100.59|25.8|93|N|,Garden City|KS|US|-100.87|37.97|27|N|,Garden City|MI|US|-83.33|42.33|26|N|,Garden Grove|CA|US|-117.94|33.77|175|NW|,Gardena|CA|US|-118.31|33.89|60|N|,Garfield|NJ|US|-74.11|40.88|31|N|,Garfield Heights|OH|US|-81.61|41.42|28|N|garfield hts,Garhi Khairo|sindh|PK|67.98|28.06|193|W|,Garissa|garissa county|KE|39.65|-0.45|163|W|,Garland|TX|US|-96.64|32.91|236|NW|,Garner|NC|US|-78.61|35.71|28|N|,Garut|west java|ID|107.92|-7.25|131|W|,Gary|IN|US|-87.35|41.59|77|N|,Gasteiz / Vitoria|basque country|ES|-2.67|42.85|257|W|vitoria;vitoria gasteiz,Gastonia|NC|US|-81.19|35.26|74|N|,Gatineau|QC|CA|-75.7|45.48|300|NW|,Gaya|bihar|IN|85|24.8|474|W|,Gaza|gaza strip|PS|34.47|31.5|410|W|gaza city;gazze,Gaziantep|gaziantep|TR|37.38|37.06|2222|W|,Gazipur|dhaka division|BD|90.42|24|2674|W|,Gboko|benue state|NG|9|7.32|365|W|,Gbongan|osun state|NG|4.35|7.48|139|W|,Gdansk|pomerania|PL|18.65|54.35|487|W|danzica;danzig,Gdynia|pomerania|PL|18.53|54.52|257|W|gdingen;gdyne,Gebze|kocaeli|TR|29.43|40.8|281|W|,Geelong|victoria|AU|144.36|-38.15|282|W|,Geita|geita|TZ|32.23|-2.87|318|W|,Gejiu|yunnan|CN|103.15|23.36|136|W|,Gelsenkirchen|north rhine westphalia|DE|7.1|51.51|270|W|,Gemena|sud ubangi|CD|19.77|3.26|197|W|,General Santos|soccsksargen|PH|125.17|6.11|722|W|kota general santos,Geneva|geneva|CH|6.15|46.2|201|W|cenevre;genebra;geneve;genewa;genf;ginebra;ginevra;jenewa;zeneva,Genoa|liguria|IT|8.94|44.4|580|W|genova;cenova;genua;genes;janov,Gent|flanders|BE|3.72|51.05|265|W|gand;gandawa;gante;ghent,Geoje|gyeongsangnam do|KR|128.71|34.81|232|W|,George|western cape|ZA|22.46|-33.96|188|W|,George Town|penang|MY|100.34|5.41|158|W|georgetown;penang,Georgetown|demerara mahaica|GY|-58.16|6.8|235|W|,Georgetown|TX|US|-97.68|30.63|63|N|,Georgetown|ON|CA|-79.92|43.65|44|N|,Georgetown|KY|US|-84.56|38.21|32|N|,Germantown|MD|US|-77.27|39.17|86|N|,Germantown|TN|US|-89.81|35.09|39|N|,Germiston|gauteng|ZA|28.18|-26.23|255|W|germinston,Getafe|madrid|ES|-3.73|40.31|187|W|,Ghardaia|ghardaia|DZ|3.67|32.49|142|W|gardaya;ghardaja,Ghaziabad|uttar pradesh|IN|77.44|28.67|1199|W|gaziabade,Ghazni|ghazni|AF|68.42|33.55|141|W|gazni,Ghulja|xinjiang|CN|81.32|43.92|269|W|yining,Gia Lam|hanoi|VN|105.94|21.02|309|W|,Gia Rai|ca mau|VN|105.46|9.23|145|W|,Gifu|gifu|JP|136.76|35.42|402|W|gifu city,Gijang|busan|KR|129.21|35.24|176|W|,Gijon|asturias|ES|-5.66|43.54|271|W|,Gilbert|AZ|US|-111.79|33.35|247|NW|,Gilgit|gilgit baltistan|PK|74.31|35.92|216|W|,Gillette|WY|US|-105.5|44.29|32|N|,Gilroy|CA|US|-121.57|37.01|53|N|,Gimcheon|gyeongsangbuk do|KR|128.12|36.12|150|W|kimcchon,Gimpo-si|gyeonggi do|KR|126.71|37.62|203|W|gimpo,Gingoog|northern mindanao|PH|125.1|8.83|138|W|,Girga|sohag|EG|31.89|26.34|151|W|jirja,Gisenyi|western province|RW|29.26|-1.7|172|W|gosenyi,Giza|giza|EG|31.21|30.01|4367|W|gizeh;gize;guiza,GJien Ban|da nang city|VN|108.25|15.89|226|W|,GJong GJa|hanoi|VN|105.83|21.01|371|W|,GJong Hoi|quang tri|VN|106.62|17.47|133|W|dong hoi,GJong Xoai|dong nai|VN|106.88|11.53|168|W|dong xoai,GJuc Pho|quang ngai|VN|108.96|14.81|155|W|,GJuc Trong|lam dong|VN|108.37|11.74|161|W|lien nghia,Gladstone|MO|US|-94.55|39.2|26|N|,Glasgow|scotland|GB|-4.26|55.87|626|W|,Glastonbury|CT|US|-72.61|41.71|31|N|,Glen Burnie|MD|US|-76.62|39.16|67|N|,Glen Cove|NY|US|-73.63|40.86|27|N|,Glen Ellyn|IL|US|-88.07|41.88|28|N|,Glendale|AZ|US|-112.19|33.54|240|NW|,Glendale|CA|US|-118.26|34.14|201|NW|,Glendale|NY|US|-73.89|40.7|34|N|,Glendale Heights|IL|US|-88.06|41.91|34|N|,Glendora|CA|US|-117.87|34.14|52|N|,Glenfield-Jane Heights|ON|CA|-79.51|43.75|30|N|,Glenview|IL|US|-87.79|42.07|47|N|,Glenville|NY|US|-74.05|42.93|29|N|,Gliwice|silesia|PL|18.68|50.3|198|W|gleiwitz,Gloucester|ON|CA|-75.63|45.35|150|NW|,Gloucester|england|GB|-2.24|51.87|132|W|,Gloucester|MA|US|-70.66|42.61|29|N|,Godhra|gujarat|IN|73.61|22.78|143|W|,Godome|atlantique|BJ|2.35|6.39|253|W|,Goelbasi|ankara|TR|32.81|39.79|165|W|golbasi,Goiania|goias|BR|-49.25|-16.68|1536|W|,Gojra|punjab|PK|72.68|31.15|214|W|gorja,Gol'yanovo|moscow|RU|37.81|55.82|158|W|,Gold Coast|queensland|AU|153.43|-28|640|W|costa dorada;gold,Golden Glades|FL|US|-80.2|25.91|33|N|,Goldsboro|NC|US|-77.99|35.38|35|N|,Golestan|tehran|IR|51.18|35.52|240|W|,Goleta|CA|US|-119.83|34.44|30|N|goelette;kuunari;schoener;schoner;schooner;skonert;skonnert;szkuner,Golfe|luanda|AO|13.26|-8.87|655|W|,Goma|north kivu|CD|29.23|-1.67|432|W|,Gombe|gombe state|NG|11.17|10.29|560|W|,Gomez Palacio|MX10|MX|-103.5|25.57|257|NW|,Gonbad-e Kavus|golestan|IR|55.17|37.25|151|W|,Gonda City|uttar pradesh|IN|81.95|27.13|133|W|,Gonder|amhara|ET|37.47|12.6|466|W|gondar,Gondia|maharashtra|IN|80.19|21.46|132|W|gondiya,Gongheyong|guangdong|CN|113.79|22.76|204|W|,Gongzhuling|jilin|CN|124.82|43.5|140|W|,Goodyear|AZ|US|-112.36|33.44|79|N|,Goose Creek|SC|US|-80.03|32.98|40|N|,Gorakhpur|haryana|IN|75.67|29.45|1324|W|,Gorakhpur|uttar pradesh|IN|83.37|26.77|674|W|,Gorgan|golestan|IR|54.44|36.84|244|W|,Gorontalo|gorontalo|ID|123.06|0.54|205|W|,Goshen|IN|US|-85.83|41.58|32|N|,Gothenburg|vastra gotaland|SE|11.97|57.71|608|W|goteborg;gotemburgo;gotenburg;gothembourg,Governador Valadares|minas gerais|BR|-41.95|-18.85|266|W|gov valadares;valadares,Goyang-si|gyeonggi do|KR|126.83|37.66|1061|W|goyang,Gqeberha|eastern cape|ZA|25.61|-33.96|1050|W|port elizabeth;porto elizabeth;puerto elizabeth,Grajau|sao paulo|BR|-46.67|-23.77|384|W|,Gramercy Park|NY|US|-73.99|40.74|27|N|,Granada|andalusia|ES|-3.61|37.19|233|W|grenada;grenade;girnata,Granby|QC|CA|-72.73|45.4|66|N|,Grand Forks|ND|US|-97.03|47.93|57|N|,Grand Island|NE|US|-98.34|40.93|51|N|,Grand Junction|CO|US|-108.55|39.06|60|N|,Grand Prairie|TX|US|-97|32.75|187|NW|,Grand Rapids|MI|US|-85.67|42.96|195|NW|,Grande Prairie|AB|CA|-118.8|55.17|70|N|,Grandview|MO|US|-94.53|38.89|25|N|,Grandview-Woodlands|BC|CA|-123.07|49.28|29|N|,Granger|IN|US|-86.11|41.75|30|N|,Granite City|IL|US|-90.15|38.7|29|N|,Grants Pass|OR|US|-123.33|42.44|37|N|,Grapevine|TX|US|-97.08|32.93|51|N|,Gravatai|rio grande do sul|BR|-50.99|-29.94|265|W|,Gravesend|NY|US|-73.97|40.6|112|N|,Graz|styria|AT|15.44|47.07|303|W|styrsky hradec,Great Falls|MT|US|-111.3|47.5|59|N|,Greater Grand Crossing|IL|US|-87.61|41.76|32|N|,Greater Noida|uttar pradesh|IN|77.54|28.5|293|W|,Greater Sudbury|ON|CA|-80.99|46.49|166|NW|sudbury;gran sudbury;grand sudbury,Greeley|CO|US|-104.71|40.42|108|N|,Green|OH|US|-81.48|40.95|25|N|,Green Bay|WI|US|-88.02|44.52|105|N|,Greenacres City|FL|US|-80.13|26.62|32|N|,Greenburgh|NY|US|-73.84|41.03|86|N|,Greenfield|WI|US|-88.01|42.96|37|N|,Greenpoint|NY|US|-73.95|40.72|34|N|,Greensboro|NC|US|-79.79|36.07|285|NW|,Greenville|NC|US|-77.37|35.61|90|N|,Greenville|SC|US|-82.39|34.85|64|N|,Greenville|MS|US|-91.06|33.41|32|N|,Greenville|TX|US|-96.11|33.14|26|N|,Greenwood|IN|US|-86.11|39.61|55|N|,Greer|SC|US|-82.23|34.94|28|N|,Grenoble|rhone alpes|FR|5.71|45.18|158|W|,Gresham|OR|US|-122.43|45.5|110|N|,Grimsby|ON|CA|-79.57|43.2|27|N|,Groningen|groningen|NL|6.57|53.22|244|W|groninga;groningue,Grove City|OH|US|-83.09|39.88|39|N|,Grozny|chechnya|RU|45.69|43.31|297|W|grosnij;grosny;grozni;groznyi;groznyj;groznyy;groznai;groznii,Guacara|carabobo|VE|-67.88|10.23|198|W|,Guadalajara|MX14|MX|-103.35|20.68|1385|NW|,Guadalupe|MX19|MX|-100.26|25.68|673|NW|ciudad guadalupe;villa de guadalupe,Guadalupe|MX32|MX|-102.52|22.75|170|NW|,Guamuchil|MX25|MX|-108.08|25.46|72|N|,Guanajuato|MX11|MX|-101.26|21.02|72|N|guanajuato city,Guang'an|sichuan|CN|106.64|30.47|858|W|,Guangshui|hubei|CN|114|31.62|154|W|,Guangyuan|sichuan|CN|105.82|32.44|516|W|kuang juan,Guangzhou|guangdong|CN|113.25|23.12|16096|W|canton;cantao;kanton;koshu,Guankou|hunan|CN|113.63|28.16|1380|W|,Guantanamo|guantanamo province|CU|-75.21|20.14|272|W|,Guarapari|espirito santo|BR|-40.5|-20.67|136|W|,Guarapuava|parana|BR|-51.47|-25.39|189|W|,Guarenas|miranda|VE|-66.62|10.47|248|W|,Guaruja|sao paulo|BR|-46.26|-23.99|294|W|,Guarulhos|sao paulo|BR|-46.53|-23.46|1345|W|,Guasave|MX25|MX|-108.47|25.57|71|N|,Guatemala City|guatemala|GT|-90.51|14.64|994|W|citta del guatemala;ciudad de guatemala;guatemala;guatemala stadt;guate;cidade da guatemala;ciudad guatemala;guatemala by;guatemala stad;gwatemala;new guatemala;nueva guatemala;santiago de guatimala,Guatire|miranda|VE|-66.54|10.47|227|W|,Guayaquil|guayas|EC|-79.89|-2.2|2723|W|guaiaquil,Gucun|shanghai|CN|121.39|31.35|240|W|,Guediawaye|dakar|SN|-17.4|14.77|329|W|,Guelph|ON|CA|-80.26|43.55|143|NW|,Guigang|guangxi|CN|109.59|23.12|1086|W|kuej kang,Guildford|BC|CA|-122.8|49.19|64|N|,Guilin|guangxi|CN|110.3|25.28|1572|W|kuej lin,Guixi|chongqing|CN|107.35|30.33|188|W|,Guiyang|guizhou|CN|106.72|26.58|3037|W|kuej jang;quy duong,Gujangbagh|xinjiang|CN|79.93|37.11|408|W|chotan;ciudad de jotan;hotan;hoten;khotan,Gujranwala|punjab|PK|74.19|32.16|2511|W|gudzranwala;gudzranvala,Gujrat|punjab|PK|74.08|32.57|574|W|,Gulfport|MS|US|-89.09|30.37|71|N|,Guli|zhejiang|CN|120.03|28.88|536|W|,Gulu|northern region|UG|32.3|2.77|177|W|,Gumi|gyeongsangbuk do|KR|128.34|36.11|404|W|,Guna|madhya pradesh|IN|77.31|24.65|180|W|,Gunan|chongqing|CN|106.65|29.02|208|W|,Gundupalaiyam|puducherry|IN|79.8|11.94|300|W|,Gunpo|gyeonggi do|KR|126.95|37.37|286|W|,Gunsan|jeollabuk do|KR|126.71|35.98|264|W|kunsan;kunsanpo,Guntur|andhra pradesh|IN|80.46|16.3|670|W|gunturu,Gunungsitoli|north sumatra|ID|97.61|1.29|136|W|,Guri-si|gyeonggi do|KR|127.14|37.6|195|W|guri,Gurnee|IL|US|-87.9|42.37|31|N|,Gurue|zambezia province|MZ|36.98|-15.47|168|W|,Gurugram|haryana|IN|77.03|28.46|886|W|gurgaon,Gusau|zamfara state|NG|6.66|12.17|226|W|,Gustavo Adolfo Madero|MX09|MX|-99.11|19.49|1185|NW|gustavo a madero,Guwahati|assam|IN|91.75|26.18|962|W|gauhati,Guyong|central luzon|PH|120.98|14.84|155|W|,Guyuan|ningxia|CN|106.28|36.01|411|W|,Gwalior|madhya pradesh|IN|78.17|26.23|1054|W|,Gwangju|gwangju|KR|126.92|35.15|1401|W|gwangju si;kwangdzu;kwangju,Gwangmyeong|gyeonggi do|KR|126.87|37.48|357|W|,Gwangyang|jeollanam do|KR|127.7|34.94|154|W|,Gweru|midlands province|ZW|29.82|-19.45|158|W|,Gwynn Oak|MD|US|-76.69|39.33|47|N|,Gyanpur|uttar pradesh|IN|82.47|25.33|200|W|,Gyeongju|gyeongsangbuk do|KR|129.21|35.84|245|W|,Gyeongsan-si|gyeongsangbuk do|KR|128.74|35.82|266|W|gyeongsan,Ha'il|ha il region|SA|41.69|27.52|605|W|hail,Ha Long|quang ninh|VN|107.07|20.95|270|W|,Ha Tinh|ha tinh province|VN|105.91|18.34|266|W|ha thin;thanh sen,Haarlem|north holland|NL|4.64|52.38|162|W|,Habra|west bengal|IN|88.66|22.84|139|W|,Hachinohe|aomori|JP|141.5|40.5|239|W|,Hachioji|tokyo|JP|139.32|35.66|579|W|hachiouji,Hacienda Heights|CA|US|-117.97|33.99|54|N|,Hacienda Santa Fe|MX14|MX|-103.38|20.52|86|N|,Hackensack|NJ|US|-74.04|40.89|44|N|,Hada'iq al Qubbah|cairo|EG|31.28|30.09|339|W|,Hadano|kanagawa|JP|139.22|35.37|163|W|,Haeju|south hwanghae|KP|125.71|38.04|222|W|,Hafar Al-Batin|eastern province|SA|45.97|28.43|271|W|,Hafizabad|punjab|PK|73.69|32.07|318|W|,Hagen|north rhine westphalia|DE|7.47|51.36|198|W|,Hagerstown|MD|US|-77.72|39.64|40|N|,Hai Ba Trung|hanoi|VN|105.85|21.01|303|W|hai batrung,Hai Chau|da nang city|VN|108.13|15.92|131|W|,Hai Duong|hai phong|VN|106.33|20.94|241|W|,Haicheng|liaoning|CN|122.75|40.85|191|W|,Haifa|haifa|IL|35|32.81|285|W|hajfa;hayfa,Haikou|hainan|CN|110.35|20.03|2873|W|chaj kchou,Hailar|inner mongolia|CN|119.7|49.2|211|W|,Hailin|heilongjiang|CN|129.39|44.57|144|W|,Haiphong|hai phong|VN|106.68|20.86|2625|W|hai phong;hajfong,Hajipur|bihar|IN|85.21|25.69|147|W|,Hakodate|hokkaido|JP|140.74|41.78|275|W|,Haldia|west bengal|IN|88.11|22.06|170|W|,Haldwani|uttarakhand|IN|79.53|29.22|139|W|haldwani kathgodam;haldwani cum kathgodam,Halifax|NS|CA|-63.58|44.64|471|NW|,Hallandale Beach|FL|US|-80.15|25.98|39|N|hallandale,Halle (Saale)|saxony anhalt|DE|11.98|51.48|237|W|halle;halle an der saale;halle sul saale,Haltom City|TX|US|-97.27|32.8|44|N|,Halton Hills|ON|CA|-79.93|43.64|62|N|,Halwan|cairo|EG|31.3|29.84|230|W|helwan,Hamadan|hamadan province|IR|48.51|34.8|528|W|,Hamah|hama|SY|36.76|35.13|460|W|hama,Hamamatsu|shizuoka|JP|137.73|34.7|791|W|hamamacu;hamamatsu city;hamamatsu shi,Hamburg|hamburg|DE|9.99|53.55|1973|W|hamburgo;amburgo;hamborg;hambourg;hamburk;hampuri,Hamburg-Mitte|hamburg|DE|10.02|53.55|301|W|bezirk hamburg mitte;hamburg centru,Hamburg-Nord|hamburg|DE|9.98|53.59|315|W|bezirk hamburg nord;distretto di hamburg nord,Hamden|CT|US|-72.9|41.4|59|N|,Hamhung|south hamgyong|KP|127.54|39.92|559|W|,Hami|xinjiang|CN|93.51|42.83|246|W|kumul,Hamilton|ON|CA|-79.85|43.25|569|NW|,Hamilton|waikato region|NZ|175.28|-37.78|192|W|,Hamilton|OH|US|-84.56|39.4|62|N|,Hamm|north rhine westphalia|DE|7.82|51.68|178|W|,Hammond|IN|US|-87.5|41.58|77|N|,Hampton|VA|US|-76.35|37.03|137|NW|,Hanam|gyeonggi do|KR|127.21|37.54|254|W|,Handan|hebei|CN|114.49|36.61|1358|W|chan tan;ham dan,Hanfeng|chongqing|CN|108.4|31.17|196|W|,Hanford|CA|US|-119.65|36.33|55|N|,Hangu|tianjin|CN|117.79|39.25|208|W|,Hangzhou|zhejiang|CN|120.16|30.29|9236|W|chang cou;hang chau,Hannover|lower saxony|DE|9.73|52.37|515|W|hanover;hanovra;hanovre;hanower,Hanoi|hanoi|VN|105.84|21.02|8053|W|hanoj;kecho;kescio;thang long,Hanover|MD|US|-76.72|39.19|38|N|,Hanover Park|IL|US|-88.15|42|38|N|,Hanumangarh|rajasthan|IN|74.33|29.58|155|W|,Hanzhong|shaanxi|CN|107.02|33.08|1006|W|chan cung;han trung,Hapur|uttar pradesh|IN|77.78|28.73|242|W|,Harar|harari|ET|42.12|9.31|157|W|harar jugol;harer,Harare|harare|ZW|31.05|-17.83|1542|W|,Harbin|heilongjiang|CN|126.65|45.75|5242|W|charbin;cap nhi tan,Harburg|hamburg|DE|9.98|53.46|169|W|hamburg harburg;bezirk harburg;distretto di harburg;hambourg harburg;hamburgo harburgo,Hargeysa|woqooyi galbeed|SO|44.06|9.56|477|W|hargeisa,Haridwar|uttarakhand|IN|78.16|29.95|186|W|hardwar;haridvar,Harker Heights|TX|US|-97.66|31.08|29|N|,Harlem|NY|US|-73.95|40.81|116|N|,Harlingen|TX|US|-97.7|26.19|65|N|,Harrisburg|PA|US|-76.88|40.27|50|N|,Harrison|NY|US|-73.71|40.97|28|N|,Harrisonburg|VA|US|-78.87|38.45|52|N|,Harrow|england|GB|-0.33|51.58|149|W|,Hartford|CT|US|-72.69|41.76|121|N|,Harunabad|punjab|PK|73.14|29.61|149|W|,Harvey|IL|US|-87.65|41.61|25|N|,Hashtsal|delhi|IN|77.06|28.63|176|W|,Hasilpur|punjab|PK|72.55|29.69|168|W|,Hassan|karnataka|IN|76.1|13.01|155|W|,Hastings-Sunrise|BC|CA|-123.03|49.28|34|N|,Hat Yai|songkhla|TH|100.48|7.01|191|W|,Hathazari|chittagong|BD|91.81|22.51|498|W|,Hattiesburg|MS|US|-89.29|31.33|46|N|,Havana|havana|CU|-82.38|23.13|2163|W|havanna;hawana;l avana;la habana;la havane,Haverhill|MA|US|-71.08|42.78|62|N|,Havertown|PA|US|-75.31|39.98|50|N|,Hawai'i Kai|HI|US|-157.7|21.3|30|N|,Hawalli|hawalli|KW|48.03|29.33|164|W|havalli,Hawthorne|CA|US|-118.35|33.92|88|N|,Hayward|CA|US|-122.08|37.67|158|NW|,Hayy Khilda|amman|JO|35.84|31.99|251|W|,Hazaribagh|jharkhand|IN|85.36|23.99|153|W|hazaribag,Hazelwood|MO|US|-90.37|38.77|25|N|,Hebi|henan|CN|114.29|35.73|634|W|che pi,Hebron|west bank|PS|35.09|31.53|160|W|el halil;hebrom,Hechi|guangxi|CN|108.08|24.69|330|W|,Hechuan|chongqing|CN|106.26|29.99|377|W|,Hefei|anhui|CN|117.28|31.86|5050|W|che fej,Hegang|heilongjiang|CN|130.29|47.35|743|W|che kang,Heidelberg|baden wurttemberg|DE|8.69|49.41|143|W|edelberga;heidelberga,Heihe|heilongjiang|CN|127.49|50.24|223|W|chej che,Hejiang|sichuan|CN|105.83|28.81|137|W|,Helena|MT|US|-112.04|46.59|32|N|,Hell's Kitchen|NY|US|-73.99|40.76|45|N|la cocina del infierno;midtown west,Helsinki|uusimaa|FI|24.94|60.17|658|W|helsingfors;helsinky;helsinquia;khel sinki,Hemet|CA|US|-116.97|33.75|83|N|,Hempstead|NY|US|-73.62|40.71|55|N|,Henderson|NV|US|-114.98|36.04|285|NW|,Henderson|KY|US|-87.59|37.84|28|N|,Hendersonville|TN|US|-86.62|36.3|56|N|,Hengshan|heilongjiang|CN|130.9|45.21|164|W|,Hengshui|hebei|CN|115.68|37.74|522|W|cheng suej,Hengyang|hunan|CN|112.62|26.89|1075|W|cheng jang;hanh duong,Henrietta|NY|US|-77.61|43.06|42|N|,Hepo|guangdong|CN|115.83|23.43|131|W|,Hepu|guangxi|CN|109.2|21.66|192|W|,Herat|herat|AF|62.2|34.35|574|W|,Hercules|CA|US|-122.29|38.02|25|N|,Hermitage|TN|US|-86.62|36.2|37|N|,Hermosillo|MX26|MX|-110.97|29.09|812|NW|,Herne|north rhine westphalia|DE|7.23|51.54|172|W|,Heroica Caborca|MX26|MX|-112.16|30.72|59|N|caborca,Heroica Ciudad de Juchitan de Zaragoza|MX20|MX|-95.02|16.43|88|N|juchitan de zaragoza;juchitan,Heroica Guaymas|MX26|MX|-110.9|27.92|117|N|guaymas,Heroica Matamoros|MX28|MX|-97.5|25.88|510|NW|matamoros,Heroica Zitacuaro|MX16|MX|-100.36|19.44|84|N|,Herriman|UT|US|-112.03|40.51|30|N|,Heshan|hunan|CN|112.35|28.57|1249|W|,Hesperia|CA|US|-117.3|34.43|93|N|,Hetauda|bagmati province|NP|85.03|27.43|195|W|,Heyuan|guangdong|CN|114.68|23.73|463|W|che juan;ha nguyen,Heze|shandong|CN|115.47|35.24|1346|W|che ce,Hezhou|guangxi|CN|111.57|24.4|1005|W|che cou,Hialeah|FL|US|-80.28|25.86|237|NW|,Hickory|NC|US|-81.34|35.73|40|N|,Hicksville|NY|US|-73.53|40.77|41|N|,Hidalgo del Parral|MX06|MX|-105.67|26.93|104|N|parral,Higashihiroshima|hiroshima|JP|132.74|34.41|196|W|,Higashimurayama|tokyo|JP|139.47|35.75|151|W|,Higashiosaka|osaka|JP|135.58|34.67|493|W|,High Point|NC|US|-80.01|35.96|110|N|,High Wycombe|england|GB|-0.75|51.63|133|W|,Highland|CA|US|-117.21|34.13|54|N|,Highland Park|IL|US|-87.8|42.18|29|N|,Highlands Ranch|CO|US|-104.97|39.55|96|N|,Hilliard|OH|US|-83.16|40.03|33|N|,Hillsboro|OR|US|-122.99|45.52|102|N|,Hillsborough|NJ|US|-74.63|40.48|38|N|,Hilo|HI|US|-155.09|19.73|43|N|baie de hilo,Hilton Head|SC|US|-80.75|32.22|37|N|hilton head island,Hilton Head Island|SC|US|-80.74|32.19|40|N|ile de hilton head,Himeji|hyogo|JP|134.7|34.82|530|W|,Hindupur|andhra pradesh|IN|77.49|13.83|151|W|,Hinesville|GA|US|-81.6|31.85|33|N|,Hino|tokyo|JP|139.4|35.67|190|W|,Hinthada|ayeyarwady|MM|95.46|17.65|134|W|henzada,Hirakata|osaka|JP|135.65|34.81|406|W|,Hiratsuka|kanagawa|JP|139.34|35.33|258|W|,Hirosaki|aomori|JP|140.47|40.59|168|W|,Hiroshima|hiroshima|JP|132.45|34.4|1200|W|hiroshima shi;hiroshimashi;hiroszima;hiroxima;hirosima,Hisar|haryana|IN|75.72|29.15|307|W|,Hitachi|ibaraki|JP|140.65|36.6|174|W|,Hitachi-Naka|ibaraki|JP|140.53|36.4|156|W|,Hlaingthaya|yangon|MM|96.07|16.85|687|W|,Ho|volta|GH|0.47|6.6|130|W|,Ho Chi Minh City|ho chi minh city hcmc|VN|106.63|10.82|14002|W|ho chi minh stadt;ho chi minh ville;hcmv;tphcm;cidade de ho chi minh;ciudad ho chi minh;ho chi minh;ho chi minh byen;ho chi minh staden;ho chi minhstad;ho ci minovo mesto;saigon;sai gon,Hoa Thanh|tay ninh|VN|106.13|11.29|147|W|,Hoan Kiem|hanoi|VN|105.85|21.03|135|W|,Hobart|tasmania|AU|147.33|-42.88|254|W|,Hobart|IN|US|-87.26|41.53|28|N|,Hobbs|NM|US|-103.14|32.7|38|N|,Hoboken|NJ|US|-74.03|40.74|53|N|,Hoffman Estates|IL|US|-88.08|42.04|52|N|,Hohhot|inner mongolia|CN|111.65|40.81|2350|W|choch chot;huhhot;kweisui,Hoji ya Henda|luanda|AO|13.29|-8.81|642|W|,Holbrook|NY|US|-73.08|40.81|27|N|,Holguin|holguin province|CU|-76.26|20.89|319|W|,Holladay|UT|US|-111.82|40.67|30|N|,Holland|MI|US|-86.11|42.79|33|N|,Hollister|CA|US|-121.4|36.85|37|N|,Holly Springs|NC|US|-78.83|35.65|31|N|,Hollywood|CA|US|-118.33|34.1|167|NW|,Hollywood|FL|US|-80.15|26.01|149|NW|,Holmesburg|PA|US|-75.03|40.04|28|N|,Holon|tel aviv|IL|34.78|32.01|196|W|cholon;jolon,Holyoke|MA|US|-72.62|42.2|40|N|,Homestead|FL|US|-80.48|25.47|80|N|,Homewood|AL|US|-86.8|33.47|25|N|,Homs|homs|SY|36.73|34.72|775|W|hims;hums;humus,Homyel'|homyel voblasc|BY|30.98|52.43|501|W|homel;homiel;gomel,Honcho|chiba|JP|139.99|35.7|644|W|funabashi,Hong Kong||HK|114.17|22.28|7396|W|hongkong;victoria,Hong Kong Island||HK|114.18|22.26|1195|W|hong kong,Honggang|heilongjiang|CN|124.88|46.4|147|W|,Hongkou|shanghai|CN|121.49|31.25|687|W|,Honolulu|HI|US|-157.86|21.31|350|NW|,Hoofddorp|north holland|NL|4.69|52.3|132|W|,Hoover|AL|US|-86.81|33.41|84|N|,Hopkinsville|KY|US|-87.49|36.87|32|N|,Horlivka|donetsk|UA|38.02|48.3|239|W|gorlowka;gorlovka;horliwka,Horn Lake|MS|US|-90.03|34.96|26|N|,Horta-Guinardo|catalonia|ES|2.17|41.42|168|W|,Hortaleza|madrid|ES|-3.64|40.47|161|W|,Hortolandia|sao paulo|BR|-47.22|-22.86|236|W|,Hosa'ina|central ethiopia regional state|ET|37.85|7.55|188|W|,Hosapete|karnataka|IN|76.39|15.27|206|W|hospet,Hoshiarpur|punjab|IN|75.91|31.54|168|W|,Hosur|tamil nadu|IN|77.83|12.74|229|W|,Hot Springs|AR|US|-93.06|34.5|35|N|,Hougang New Town||SG|103.89|1.36|227|W|hougang,Houma|LA|US|-90.72|29.6|34|N|,Houston|TX|US|-95.36|29.76|2314|NW|,Howard Beach|NY|US|-73.84|40.66|26|N|,Howrah|west bengal|IN|88.32|22.58|1027|W|haora,Hrodna|grodnenskaya|BY|23.83|53.68|363|W|goradnia;grodno,Hsinchu|taiwan|TW|120.97|24.8|453|W|kota hsinchu;sin cu;tan truc;xinzhu,Huadian|jilin|CN|126.74|42.97|139|W|,Huai'an|jiangsu|CN|119.02|33.59|2494|W|chuaj an;huaiyin,Huaibei|anhui|CN|116.79|33.97|1113|W|chuaj pej,Huaihua|hunan|CN|110|27.56|552|W|chuaj chua;hoai hoa,Huainan|anhui|CN|117|32.63|1666|W|,Huamantla|MX29|MX|-97.93|19.31|51|N|,Huambo|huambo|AO|15.74|-12.78|595|W|,Huancayo|junin|PE|-75.21|-12.07|456|W|,Huanggang|hubei|CN|114.87|30.45|366|W|chuang kang;hoang cuong;hwang chau;hwang chow;hwangchow;wangchau;wangchou,Huanggang|guangdong|CN|117|23.68|225|W|,Huangpu|shanghai|CN|121.48|31.24|504|W|,Huangshan|anhui|CN|118.31|29.71|460|W|chuang san;hoang son;huangshan city,Huangshi|hubei|CN|115.05|30.25|688|W|chuang s,Huanuco|huanuco department|PE|-76.24|-9.93|196|W|,Huatabampo|MX26|MX|-109.64|26.83|30|N|,Huatusco|MX30|MX|-96.97|19.15|31|N|,Huauchinango|MX21|MX|-98.05|20.17|56|N|,Huayin|shaanxi|CN|110.07|34.57|242|W|,Hub|balochistan|PK|66.89|25.03|195|W|,Hubballi|karnataka|IN|75.13|15.35|943|W|hubli,Huber Heights|OH|US|-84.12|39.84|38|N|,Huddersfield|england|GB|-1.78|53.65|149|W|,Hue|thua thien hue province|VN|107.6|16.46|1380|W|,Huejotzingo|MX21|MX|-98.41|19.16|25|N|,Huejutla de Reyes|MX13|MX|-98.42|21.14|40|N|,Huelva|andalusia|ES|-6.94|37.27|144|W|,Hugli|west bengal|IN|88.4|22.91|177|W|,Huimanguillo|MX27|MX|-93.39|17.83|27|N|,Huinong|ningxia|CN|106.77|39.23|136|W|,Huixing|chongqing|CN|106.61|29.68|186|W|,Huixquilucan|MX15|MX|-99.35|19.36|124|N|,Huixtla|MX05|MX|-92.46|15.14|32|N|,Huizhou|guangdong|CN|114.42|23.11|2900|W|chuej cou,Hulan Ergi|heilongjiang|CN|123.63|47.2|265|W|,Hull|QC|CA|-75.71|45.43|63|N|,Huludao|liaoning|CN|120.84|40.75|944|W|,Hulunbuir|inner mongolia|CN|119.76|49.21|349|W|,Humen|guangdong|CN|113.67|22.82|191|W|,Hungnam|south hamgyong|KP|127.63|39.84|346|W|,Huntersville|NC|US|-80.84|35.41|52|N|,Huntington|WV|US|-82.45|38.42|48|N|,Huntington Beach|CA|US|-118|33.66|201|NW|,Huntington Park|CA|US|-118.23|33.98|59|N|,Huntington Station|NY|US|-73.41|40.85|33|N|,Huntley|IL|US|-88.43|42.17|26|N|,Hunts Point|NY|US|-73.88|40.81|27|N|,Huntsville|AL|US|-86.59|34.73|215|NW|,Huntsville|TX|US|-95.55|30.72|40|N|,Huocheng|xinjiang|CN|80.87|44.05|360|W|huocheng county,Hurghada|red sea|EG|33.81|27.26|207|W|hurgada,Hurst|TX|US|-97.17|32.82|39|N|,Hutchinson|KS|US|-97.93|38.06|41|N|,Huyen Lam Ha|lam dong|VN|108.21|11.82|144|W|lam ha;lam ha district,Huzhou|zhejiang|CN|120.09|30.87|1015|W|,Hwaseong-si|gyeonggi do|KR|126.82|37.21|640|W|hwaseong,Hyde Park|MA|US|-71.12|42.26|31|N|,Hyde Park|IL|US|-87.59|41.79|26|N|,Hyderabad|telangana|IN|78.46|17.38|6993|W|haiderabad;hajdarabad,Hyderabad|sindh|PK|68.38|25.4|1921|W|hajdarabad;haydarabad,Hyesan|yanggang do|KP|128.18|41.4|192|W|,Iasi|iasi county|RO|27.6|47.17|378|W|jassy;jasy;yas;jassenmarkt,Ibadan|oyo state|NG|3.91|7.38|3649|W|,Ibague|tolima department|CO|-75.2|4.44|529|W|,Ibaraki|osaka|JP|135.57|34.82|287|W|,Ibarra|imbabura|EC|-78.12|0.35|221|W|,Ibb|ibb governorate|YE|44.18|13.97|771|W|,Ibirite|minas gerais|BR|-44.06|-20.02|179|W|,'Ibri|ad dhahirah|OM|56.52|23.23|163|W|,Ica|ica|PE|-75.73|-14.08|282|W|ika,Ichalkaranji|maharashtra|IN|74.46|16.69|287|W|,Icheon-si|gyeonggi do|KR|127.44|37.28|196|W|icheon,Ichihara|chiba|JP|140.08|35.52|283|W|,Ichikawa|chiba|JP|139.91|35.73|496|W|,Ichinomiya|aichi|JP|136.8|35.3|380|W|owari ichinomiya,Idaho Falls|ID|US|-112.03|43.47|59|N|,Idku|beheira|EG|30.3|31.31|177|W|,Ifakara|morogoro|TZ|36.68|-8.13|205|W|,Igboho|oyo state|NG|3.76|8.84|136|W|,Iguala de la Independencia|MX12|MX|-99.54|18.35|118|N|,Iguatemi|sao paulo|BR|-46.43|-23.61|149|W|,Ijebu Ode|ogun state|NG|3.92|6.82|360|W|,Ijero-Ekiti|ekiti state|NG|5.07|7.82|167|W|,Ikare|ondo state|NG|5.75|7.53|465|W|,Ikeja|lagos|NG|3.34|6.6|313|W|,Ikire|osun state|NG|4.19|7.37|222|W|,Ikirun|osun state|NG|4.67|7.91|134|W|,Ikot Ekpene|akwa ibom state|NG|7.71|5.18|254|W|,Iksan|jeollabuk do|KR|126.95|35.94|307|W|,Ila Orangun|osun state|NG|4.9|8.02|179|W|,Ilagan|cagayan valley|PH|121.89|17.15|164|W|,Ilam|ilam province|IR|46.42|33.64|140|W|,Ile-Ife|osun state|NG|4.56|7.48|560|W|,Ilesa|osun state|NG|4.74|7.63|325|W|,Ilford|england|GB|0.07|51.56|168|W|,Ilheus|bahia|BR|-39.03|-14.8|189|W|sao jorge dos ilheos,Iligan|northern mindanao|PH|124.24|8.23|342|W|,Iligan City|soccsksargen|PH|124.4|8.25|312|W|,Iloilo|western visayas|PH|122.56|10.7|473|W|iloilo city,Ilorin|kwara state|NG|4.54|8.5|1080|W|,Imabari|ehime|JP|133|34.07|170|W|,Imperatriz|maranhao|BR|-47.49|-5.53|273|W|,Imperial Beach|CA|US|-117.11|32.58|27|N|,Imphal|manipur|IN|93.94|24.81|277|W|,Imus|calabarzon|PH|120.94|14.43|481|W|,Inazawa|aichi|JP|136.78|35.25|134|W|,Incheon|incheon|KR|126.71|37.46|3015|W|inch on;incheon si;inchon;incchon;nhan xuyen;chemulpo,Indaiatuba|sao paulo|BR|-47.21|-23.09|256|W|,Independence|MO|US|-94.42|39.09|117|N|,Independence|KY|US|-84.54|38.94|26|N|,Indian Trail|NC|US|-80.67|35.08|37|N|,Indianapolis|IN|US|-86.16|39.77|887|NW|indpls,Indio|CA|US|-116.22|33.72|87|N|,Indore|madhya pradesh|IN|75.83|22.72|1994|W|indhur,Inegol|bursa province|TR|29.51|40.08|133|W|,Inezgane|souss massa|MA|-9.54|30.36|142|W|,Inglewood|CA|US|-118.35|33.96|111|N|,Ingombota|luanda|AO|13.23|-8.82|144|W|,Inisa|osun state|NG|4.33|7.85|164|W|,Innisfil|ON|CA|-79.65|44.3|43|N|,Innsbruck|tyrol|AT|11.39|47.26|132|W|,Insein|yangon|MM|96.1|16.89|247|W|,Inver Grove Heights|MN|US|-93.04|44.85|34|N|inver grove,Iowa City|IA|US|-91.53|41.66|74|N|,Ipatinga|minas gerais|BR|-42.54|-19.47|235|W|,Ipoh|perak|MY|101.08|4.58|759|W|,Ipswich|england|GB|1.16|52.06|178|W|,Iquique|tarapaca|CL|-70.15|-20.21|199|W|,Iquitos|loreto|PE|-73.25|-3.75|377|W|,Irakleion|crete|GR|25.14|35.33|137|W|heraklion;candia;heracliao;heraclion;herakleion;iraklio;iraklion;iraclio;kandiye,Iranshahr|sistan and baluchestan|IR|60.68|27.2|131|W|,Irapuato|MX11|MX|-101.36|20.67|380|NW|,Irbid|irbid|JO|35.85|32.56|569|W|,Irewe|lagos|NG|3.14|6.42|139|W|,Iringa|iringa|TZ|35.7|-7.77|202|W|,Irkutsk|irkutsk oblast|RU|104.29|52.3|623|W|irkoetsk;irkoutsk;irkuck;irkutsc;irkutk,Irondequoit|NY|US|-77.58|43.21|51|N|,Iruma|saitama|JP|139.37|35.82|147|W|,Irvine|CA|US|-117.82|33.67|256|NW|,Irving|TX|US|-96.95|32.81|236|NW|,Irving Park|IL|US|-87.74|41.95|56|N|,Irvington|NJ|US|-74.23|40.73|61|N|,Isahaya|nagasaki|JP|130.04|32.84|135|W|,Ise-Ekiti|ekiti state|NG|5.42|7.46|190|W|,Isesaki|gunma|JP|139.2|36.32|211|W|,Iseyin|oyo state|NG|3.6|7.97|365|W|,Isfahan|isfahan|IR|51.67|32.65|1547|W|esfahan;ispahan;kota isfahan,Isfara|sughd|TJ|70.63|40.13|274|W|,Ishinomaki|miyagi|JP|141.3|38.42|140|W|,Isidro Casanova|buenos aires|AR|-58.59|-34.7|131|W|,Isiro|haut uele|CD|27.62|2.77|255|W|,Iskandar Puteri|johor|MY|103.62|1.39|575|W|,Iskenderun|hatay|TR|36.17|36.59|251|W|alejandreta;aleksandretta;alexandretta,Isla|MX30|MX|-95.53|18.03|26|N|,Islamabad|islamabad|PK|73.04|33.72|601|W|islamabade,Islington|england|GB|-0.1|51.54|319|W|,Islington-City Centre West|ON|CA|-79.54|43.63|43|N|,Ismailia|ismailia|EG|32.27|30.6|429|W|el ismalia;ismalia;ismailija;ismailiye,Isparta|isparta|TR|30.55|37.76|172|W|,Issaquah|WA|US|-122.03|47.53|36|N|,Istanbul|istanbul|TR|28.95|41.01|15701|W|estambul;istambul;stambul;byzance;byzantion;byzantium;constantinopla;constantinople;constantinopolen;costantinopoli;konstantinopel;micklagard,Istaravshan|sughd|TJ|69|39.91|273|W|istaravchan;istaravsjan;istaravsan;istarawschan;istarawshan;istarawszan,Itabashi|tokyo|JP|139.71|35.75|584|W|tabashi city,Itaborai|rio de janeiro|BR|-42.86|-22.74|240|W|,Itabuna|bahia|BR|-39.28|-14.79|196|W|,Itaguei|antioquia|CO|-75.6|6.18|281|W|itagui,Itaim Paulista|sao paulo|BR|-46.39|-23.5|205|W|,Itaituba|para|BR|-55.98|-4.28|135|W|,Itajai|santa catarina|BR|-48.66|-26.91|294|W|itajahy,Itami|hyogo|JP|135.4|34.78|198|W|,Itapecerica da Serra|sao paulo|BR|-46.85|-23.72|163|W|,Itapetininga|sao paulo|BR|-48.05|-23.59|164|W|,Itapevi|sao paulo|BR|-46.93|-23.55|240|W|,Itapipoca|ceara|BR|-39.58|-3.49|138|W|,Itaquaquecetuba|sao paulo|BR|-46.35|-23.49|369|W|,Itaquera|sao paulo|BR|-46.44|-23.53|210|W|,Ithaca|NY|US|-76.5|42.44|30|N|,Itu|sao paulo|BR|-47.3|-23.26|175|W|,Ituzaingo|corrientes|AR|-56.69|-27.59|168|W|,Ivano-Frankivsk|ivano frankivsk|UA|24.71|48.92|238|W|ivano frankivs k;iwano frankiwsk;stanislaopoli;stanislau;stanislaw;stanislawow,Ivanovo|ivanovo oblast|RU|40.97|57|406|W|iwanowo,Ivory Park|gauteng|ZA|28.2|-26|184|W|,Iwaki|fukushima|JP|140.88|37.05|357|W|,Iwata|shizuoka|JP|137.85|34.7|166|W|,Iwo|osun state|NG|4.18|7.64|250|W|,Ixmiquilpan|MX13|MX|-99.22|20.48|34|N|,Ixtaczoquitlan|MX30|MX|-97.06|18.85|26|N|,Ixtapa|MX14|MX|-105.21|20.72|29|N|,Ixtapa-Zihuatanejo|MX12|MX|-101.55|17.64|67|N|jose azueta;zihuatanejo,Ixtapaluca|MX15|MX|-98.88|19.32|322|NW|iztapaluca,Ixtepec|MX20|MX|-95.1|16.56|25|N|san geronimo ixtepec;ciudad ixtepec,Izhevsk|udmurtiya republic|RU|53.2|56.85|648|W|izjevsk;ijevsk;ischewsk;izewsk;izevsk,Izmir|izmir province|TR|27.14|38.41|2938|W|esmirna;smirne,Izmit|kocaeli|TR|29.93|40.76|196|W|nicomedia;nicomedie;nikomedia,Iztacalco|MX09|MX|-99.1|19.4|384|NW|,Iztapalapa|MX09|MX|-99.06|19.36|1835|NW|delegacion iztapalapa;delegazione iztapalapa,Izucar de Matamoros|MX21|MX|-98.46|18.6|42|N|izucar,Izumi|osaka|JP|135.43|34.48|184|W|,Izumo|shimane|JP|132.77|35.37|172|W|,Jabalpur|madhya pradesh|IN|79.95|23.17|1081|W|dzabalpur,Jabalya|gaza strip|PS|34.48|31.53|168|W|jabalia,Jabaquara|sao paulo|BR|-46.65|-23.65|214|W|,Jaboatao dos Guararapes|pernambuco|BR|-35.01|-8.11|644|W|,Jacarei|sao paulo|BR|-45.97|-23.31|250|W|,Jackson|MS|US|-90.18|32.3|153|NW|,Jackson|TN|US|-88.81|35.61|66|N|,Jackson|NJ|US|-74.86|39.78|54|N|,Jackson|MI|US|-84.4|42.25|33|N|,Jackson Heights|NY|US|-73.89|40.76|67|N|,Jacksonville|FL|US|-81.66|30.33|1009|NW|,Jacksonville|NC|US|-77.43|34.75|67|N|,Jacksonville|AR|US|-92.11|34.87|28|N|,Jacmel|sud est|HT|-72.54|18.24|137|W|yaquimo,Jacobabad|sindh|PK|68.44|28.28|219|W|khangarh,Jacona de Plancarte|MX16|MX|-102.31|19.96|53|N|,Jaffna|northern province|LK|80.01|9.67|169|W|dzafna,Jahrom|fars|IR|53.56|28.5|141|W|,Jaigaon|west bengal|IN|89.38|26.85|158|W|,Jaipur|rajasthan|IN|75.79|26.92|3046|W|dzajpur,Jajmau|uttar pradesh|IN|80.41|26.43|652|W|,Jakarta|jakarta|ID|106.85|-6.21|8540|W|cakarta;djakarta;dzakarta;giacarta;yakarta;batavia;sunda kelapa;sundapura,Jalalabad|nangarhar|AF|70.45|34.43|271|W|celalabad;dschalalabad;dzalalabad,Jalalpur Jattan|punjab|PK|74.21|32.64|146|W|,Jalalpur Pirwala|punjab|PK|71.22|29.51|500|W|dzalalpur pirwala,Jalandhar|punjab|IN|75.58|31.33|868|W|dzalandhar,Jalapa|jalapa|GT|-89.99|14.64|159|W|,Jalgaon|maharashtra|IN|75.57|21|460|W|,Jalna|maharashtra|IN|75.89|19.84|285|W|,Jaltipan de Morelos|MX30|MX|-94.71|17.97|32|N|,Jamaica|NY|US|-73.81|40.69|216|NW|,Jamaica Plain|MA|US|-71.12|42.31|37|N|,Jamalpur|mymensingh division|BD|89.95|24.92|167|W|,Jambi City|jambi|ID|103.62|-1.6|635|W|jambi,Jamestown|NY|US|-79.24|42.1|30|N|,Jammu|jammu and kashmir|IN|74.86|32.74|576|W|dzammu,Jamnagar|gujarat|IN|70.07|22.47|600|W|dzamnagar,Jampur|punjab|PK|70.6|29.64|155|W|,Jamshedpur|jharkhand|IN|86.19|22.8|1339|W|cemsidpur;dzamsedpur,Jamuria|west bengal|IN|87.08|23.7|160|W|,Janakpur|madhesh|NP|85.93|26.73|195|W|janakpur dham,Janesville|WI|US|-89.02|42.68|64|N|,Janzur|al jafarah|LY|13.02|32.82|154|W|,Jaragua|sao paulo|BR|-46.74|-23.44|211|W|,Jaragua do Sul|santa catarina|BR|-49.07|-26.49|199|W|,Jaranwala|punjab|PK|73.42|31.33|150|W|,Jardim Angela|sao paulo|BR|-46.77|-23.72|311|W|,Jardim Sao Luis|sao paulo|BR|-46.74|-23.68|259|W|,Jardines de la Silla|MX19|MX|-100.19|25.63|53|N|,Jau|sao paulo|BR|-48.56|-22.3|133|W|,Jaunpur|uttar pradesh|IN|82.69|25.75|169|W|jawnpur,Jayapura|papua|ID|140.72|-2.53|410|W|jaya pura;kota jayapura;port numbay;hollandia;noordwijk,Jebel Ali|dubai|AE|55.11|25|210|W|,Jeddah|mecca region|SA|39.19|21.49|4697|W|cidde;djedda;djeddah;dschidda;dzudda;dzidda;jedda;jidda;jida;yida;yidda,Jefferson City|MO|US|-92.17|38.58|42|N|kota jefferson,Jeffersontown|KY|US|-85.56|38.19|26|N|,Jeffersonville|IN|US|-85.74|38.28|46|N|,Jeju City|jeju do|KR|126.52|33.51|488|W|czedzu;jeju;jeju sehri;kota jeju,Jember|east java|ID|113.7|-8.17|298|W|,Jeongeup|jeollabuk do|KR|126.92|35.6|139|W|,Jeonju|jeollabuk do|KR|127.15|35.82|638|W|chonju;condzu,Jepara|central java|ID|110.67|-6.59|1257|W|,Jerez de Garcia Salinas|MX32|MX|-102.99|22.65|43|N|,Jerez de la Frontera|andalusia|ES|-6.14|36.69|212|W|jerez;xeres,Jersey City|NJ|US|-74.08|40.73|264|NW|,Jerusalem|jerusalem|IL|35.22|31.77|971|W|gerusalemme;jerozolima;jerusalen;jeruzalem;al quds;ariel;ierusalim;kudus;yerusalem;zion,Jessore|khulna division|BD|89.21|23.17|243|W|,Jesus Maria|MX01|MX|-102.34|21.96|43|N|,Jhang Sadr|punjab|PK|72.32|31.27|606|W|jhang;jhang sadar,Jhansi|uttar pradesh|IN|78.58|25.46|412|W|,Jhelum|punjab|PK|73.73|32.93|190|W|alessandria bucefala;dzhelam;jhelam,Ji'an|jiangxi|CN|114.98|27.12|538|W|,Ji Parana|rondonia|BR|-61.95|-10.89|140|W|,Jiading|shanghai|CN|121.24|31.39|1886|W|,Jiagedaqi|inner mongolia|CN|124.12|50.42|135|W|jagdaqi,Jiamusi|heilongjiang|CN|130.31|46.8|549|W|tia mu s,Jiangmen|guangdong|CN|113.08|22.58|1795|W|giang mon;kongmoon;tiang men,Jiangyin|jiangsu|CN|120.26|31.91|1779|W|kiang ying,Jianshui|yunnan|CN|101.22|24.28|490|W|,Jiaojiang|zhejiang|CN|121.47|28.7|470|W|,Jiaozhou|shandong|CN|120|36.28|619|W|,Jiaozuo|henan|CN|113.24|35.24|865|W|tieu tac;tiao cuo,Jiashan|zhejiang|CN|120.93|30.85|137|W|,Jiawang|jiangsu|CN|117.44|34.43|133|W|,Jiaxing|zhejiang|CN|120.75|30.75|1180|W|gia hung;tia sing,Jiayuguan|gansu|CN|98.29|39.81|231|W|tia ju kuan,Jiazi|guangdong|CN|116.07|22.88|130|W|,Jieshi|guangdong|CN|115.83|22.81|137|W|,Jieshou|anhui|CN|115.36|33.26|141|W|,Jieyang|guangdong|CN|116.37|23.54|1899|W|tie jang,Jijel|jijel|DZ|5.76|36.82|131|W|dzidzili;yiyel;jijelli,Jijiang|chongqing|CN|106.25|29.29|196|W|,Jijiga|somali|ET|42.8|9.35|483|W|djidjiga;dschidschiga;dzidziga,Jilin|jilin|CN|126.56|43.85|1895|W|jilin city;ciudad de jilin;cat lam;kota jilin;ti lin,Jimeta|adamawa|NG|12.46|9.28|248|W|,Jimma|oromiya|ET|36.83|7.67|250|W|dzimma;gimma;jima,Jinan|shandong|CN|117|36.67|4335|W|ti nan,Jinchang|gansu|CN|102.19|38.5|228|W|kim xuong;tin cchang,Jincheng|shanxi|CN|112.83|35.5|476|W|,Jind|haryana|IN|76.32|29.32|167|W|,Jing'an|shanghai|CN|121.42|31.22|936|W|,Jing'an|guangdong|CN|113.29|22.21|186|W|,Jingdezhen|jiangxi|CN|117.21|29.29|473|W|,Jinghong|yunnan|CN|100.77|22|205|W|,Jingling|hubei|CN|113.1|30.65|224|W|,Jingmen|hubei|CN|112.2|31.03|632|W|kinh mon;ting men,Jingzhou|hubei|CN|112.19|30.35|1052|W|kinh chau;ting cou,Jinhua|zhejiang|CN|119.64|29.11|1463|W|kim hoa;tin chua,Jining|shandong|CN|116.58|35.41|1241|W|ti ning,Jining|inner mongolia|CN|113.11|41.03|258|W|,Jinjiang|fujian|CN|118.57|24.82|1416|W|,Jinshan|shanghai|CN|121.29|30.84|822|W|,Jinshanlu|xinjiang|CN|88.13|47.85|190|W|altay,Jinzhong|shanxi|CN|112.75|37.68|1226|W|,Jinzhou|liaoning|CN|121.14|41.11|604|W|tin cou,Jiroft|kerman|IR|57.74|28.68|130|W|,Jiujiang|jiangxi|CN|116|29.7|1164|W|ciuciang;tiou tiang,Jiuquan|gansu|CN|98.52|39.74|428|W|tiou cchuan,Jiutai|jilin|CN|125.83|44.15|175|W|,Jiutepec|MX17|MX|-99.18|18.88|215|NW|,Jixi|heilongjiang|CN|130.96|45.29|403|W|ke tay;ti si,Jiyuan|henan|CN|112.59|35.09|242|W|,Jizhou|hebei|CN|115.57|37.55|362|W|,Jizzax|jizzakh region|UZ|67.83|40.13|179|W|cizzak;djizak;djizaks;dschizak;dzjizak;dzyzak;jizzak;jizzakh,Joao Pessoa|paraiba|BR|-34.86|-7.12|817|W|,Jodhpur|rajasthan|IN|73.01|26.27|1056|W|dzodhpur;dzodpur,Joetsu|niigata|JP|138.24|37.15|189|W|,Johannesburg|gauteng|ZA|28.04|-26.2|9418|W|johannesbourg;jo anna;joanesburgo;johannesburgo,Johns Creek|GA|US|-84.2|34.03|83|N|,Johnson City|TN|US|-82.35|36.31|66|N|,Johnston|RI|US|-71.51|41.82|29|N|,Johor Bahru|johor|MY|103.76|1.47|858|W|johor baharu,Joint Base Pearl Harbor Hickam|HI|US|-157.95|21.35|42|N|,Joinville|santa catarina|BR|-48.85|-26.3|664|W|,Joliet|IL|US|-88.08|41.53|147|NW|,Joliette|QC|CA|-73.42|46.02|34|N|,Jomvu|mombasa county|KE|39.61|-3.99|163|W|,Jonesboro|AR|US|-90.7|35.84|73|N|,Jonquiere|QC|CA|-71.25|48.42|54|N|,Joplin|MO|US|-94.51|37.08|51|N|,Jos|plateau state|NG|8.89|9.93|1040|W|dzos,Jose C. Paz|buenos aires|AR|-58.77|-34.52|230|W|,Jose Mariano Jimenez|MX06|MX|-104.92|27.13|34|N|,Juazeiro|bahia|BR|-40.5|-9.41|256|W|,Juazeiro do Norte|ceara|BR|-39.32|-7.21|305|W|,Juba|central equatoria|SS|31.58|4.85|450|W|djouba;dschuba,Juiz de Fora|minas gerais|BR|-43.35|-21.76|540|W|,Juja|kiambu county|KE|37.01|-1.1|156|W|,Juliaca|puno|PE|-70.13|-15.5|245|W|,Junagadh|gujarat|IN|70.46|21.52|319|W|,Jundiai|sao paulo|BR|-46.88|-23.19|443|W|,Juneau|AK|US|-134.42|58.3|31|N|,Jupiter|FL|US|-80.09|26.93|62|N|,Jurong Town||SG|103.72|1.33|262|W|,Jurong West||SG|103.72|1.35|253|W|,Jutiapa|jutiapa|GT|-89.89|14.28|145|W|,Juventino Rosas|MX11|MX|-101|20.64|42|N|,Jyvaeskylae|central finland|FI|25.72|62.24|148|W|jyvaskyla,Kabankalan|western visayas|PH|122.81|9.98|210|W|,Kabin Buri|prachin buri|TH|101.72|13.95|140|W|,Kabinda|lomami|CD|24.48|-6.14|219|W|,Kabul|kabul|AF|69.17|34.53|4434|W|cabul;kaboel;kaboul;kabil,Kabwe|central province|ZM|28.45|-14.45|288|W|,Kadapa|andhra pradesh|IN|78.82|14.48|344|W|cuddapah,Kadoma|osaka|JP|135.57|34.74|131|W|,Kaduna|kaduna state|NG|7.44|10.53|1850|W|,Kaech'on|south pyongan|KP|125.89|39.7|319|W|,Kaesong|kaesong|KP|126.55|37.97|338|W|,Kafr ash Shaykh|kafr el sheikh|EG|30.94|31.11|194|W|,Kafrul|dhaka division|BD|90.37|23.79|339|W|,Kagoshima|kagoshima|JP|130.55|31.57|595|W|kagosima,Kahama|shinyanga|TZ|32.6|-3.83|453|W|,Kahramanmaras|kahramanmaras|TR|36.93|37.58|384|W|,Kahului|HI|US|-156.47|20.89|26|N|,Kaifeng|henan|CN|114.31|34.8|1451|W|kai feng;kchaj feng;khai phong,Kaili|guizhou|CN|107.98|26.59|275|W|,Kailua|HI|US|-157.74|21.4|38|N|,Kairouan|kairouan|TN|10.1|35.68|139|W|cairuao;kairuan;kayravan;qairawan;qayrawan,Kaithal|haryana|IN|76.4|29.8|144|W|,Kaiyuan|yunnan|CN|103.3|23.7|198|W|,Kajang|selangor|MY|101.79|2.99|236|W|,Kajansi|central region|UG|32.53|0.22|135|W|,Kakamega|kakamega county|KE|34.75|0.28|1867|W|,Kakamigahara|gifu|JP|136.87|35.42|144|W|,Kakinada|andhra pradesh|IN|82.24|16.96|384|W|,Kakogawacho-honmachi|hyogo|JP|134.83|34.77|271|W|kakogawa,Kalaban Koro|koulikoro|ML|-8.03|12.57|148|W|,Kalaburagi|karnataka|IN|76.84|17.34|543|W|gulbarga;kalaburgi,Kalamazoo|MI|US|-85.59|42.29|76|N|,Kalemie|tanganyika|CD|29.19|-5.95|160|W|,Kalemyo|sagaing region|MM|94.06|23.19|348|W|,Kalihi-Palama|HI|US|-157.88|21.33|43|N|kalihi,Kaliningrad|kaliningrad oblast|RU|20.51|54.71|475|W|krolewiec;caliningrado;kaliningrado;konigsberg;konigsberg in preussen,Kalininskiy|st petersburg|RU|30.39|60|504|W|,Kallakurichi|tamil nadu|IN|78.96|11.73|1682|W|,Kalol|gujarat|IN|72.5|23.25|134|W|,Kaluga|kaluga oblast|RU|36.27|54.53|340|W|kaloega;kalouga,Kalyan|maharashtra|IN|73.14|19.24|1262|W|,Kamakura|kanagawa|JP|139.55|35.31|172|W|,Kamalia|punjab|PK|72.65|30.73|166|W|,Kamalshahr|alborz province|IR|50.87|35.86|141|W|,Kamarhati|west bengal|IN|88.37|22.67|332|W|,Kamensk-Ural'skiy|sverdlovsk oblast|RU|61.93|56.41|182|W|kamensk uralskij;kamensk uralsky;kamensk uralski,Kamina|haut lomami|CD|25|-8.74|200|W|,Kamirenjaku|tokyo|JP|139.55|35.69|195|W|,Kamloops|BC|CA|-120.32|50.67|104|N|,Kamoke|punjab|PK|74.22|31.98|292|W|,Kampala|central region|UG|32.58|0.32|1680|W|campala,Kampong Baharu Cheras Batu Sebelas|selangor|MY|101.77|3.05|232|W|,Kampong Pasir Ris||SG|103.93|1.38|144|W|,Kampung Baru Subang|selangor|MY|101.53|3.15|833|W|,Kampung Kangkar Teberau|johor|MY|103.75|1.53|412|W|,Kampung Larkin Lama|johor|MY|103.74|1.5|500|W|,Kampung Pasir Gudang Baru|johor|MY|103.88|1.47|145|W|,Kampung Sungai Ara|penang|MY|100.27|5.33|140|W|,Kampung Sungai Glugur|penang|MY|100.31|5.37|145|W|,Kamyanske|dnipropetrovsk|UA|34.61|48.52|226|W|dnieprodzierzynsk;dniprodzerzyns k;kam jans ke;kamianske;kamienskie;dniprodzerzhynsk,Kananga|kasai central|CD|22.42|-5.9|1247|W|kanange,Kanasin|MX31|MX|-89.56|20.93|77|N|,Kanata|ON|CA|-75.92|45.3|90|N|,Kanayannur|kerala|IN|76.27|9.97|851|W|,Kanazawa|ishikawa|JP|136.62|36.6|466|W|,Kanchipuram|tamil nadu|IN|79.7|12.84|221|W|kancheepuram;kancipuram;conjevaram,Kanchrapara|west bengal|IN|88.43|22.96|136|W|,Kandahar|kandahar|AF|65.71|31.61|523|W|kandehar,Kaneohe|HI|US|-157.8|21.4|34|N|,Kanggye|chagang|KP|126.59|40.97|209|W|,Kankakee|IL|US|-87.86|41.12|26|N|,Kankan|kankan region|GN|-9.31|10.39|221|W|,Kannapolis|NC|US|-80.62|35.49|46|N|,Kano|kano state|NG|8.52|12|4910|W|,Kanpur|uttar pradesh|IN|80.35|26.47|2823|W|cawnporne,Kansas City|MO|US|-94.58|39.1|475|NW|kota kansas,Kansas City|KS|US|-94.63|39.11|152|NW|,Kaohsiung|takao|TW|120.31|22.62|2737|W|kaohsiung city;cao hung;gaoxiong;takao,Kaolack|kaolack|SN|-16.07|14.15|298|W|,Kapar|selangor|MY|101.38|3.13|269|W|,Karabaglar|izmir province|TR|27.13|38.38|479|W|,Karachi|sindh|PK|67.01|24.86|11624|W|carachi;karaczi;karanchi;karatschi;karaci,Karagandy|karaganda|KZ|73.1|49.8|497|W|karaganda;qaraghandy;qaragandi,Karaikkudi|tamil nadu|IN|78.77|10.07|181|W|karaikudi,Karaj|alborz province|IR|50.99|35.83|1448|W|karadsch;karadz;kerec,Karaman|karaman|TR|33.22|37.18|175|W|,Karamay|xinjiang|CN|84.89|45.58|261|W|kelamayi,Karawalnagar|delhi|IN|77.27|28.73|224|W|,Karawang|west java|ID|107.32|-6.31|307|W|,Karbala|karbala|IQ|44.02|32.62|1218|W|kerbela;kerbala,Kariega|eastern cape|ZA|25.4|-33.76|291|W|uitenhage,Karimnagar|telangana|IN|79.13|18.44|289|W|,Kariya|aichi|JP|136.98|34.98|153|W|,Karlsruhe|baden wurttemberg|DE|8.4|49.01|283|W|,Karnal|haryana|IN|76.98|29.69|302|W|,Karnaphuli|chittagong|BD|92.23|22.69|203|W|,Karol Bagh|delhi|IN|77.19|28.65|505|W|,Karsiyaka|izmir province|TR|27.11|38.46|339|W|cordaleo;cordelio,Karur|tamil nadu|IN|78.08|10.96|234|W|,Karuri|kiambu county|KE|36.76|-1.18|194|W|,Karuri|murang a|KE|37.18|-0.7|194|W|,Kasama|northern province|ZM|31.18|-10.21|179|W|arcidiocesi di kasama,Kasangati|central region|UG|32.6|0.44|207|W|,Kashan|isfahan|IR|51.43|33.98|304|W|,Kashgar|xinjiang|CN|75.99|39.47|506|W|kachgar;kaschgar;kasgar;kaszgar,Kashiwa|chiba|JP|139.98|35.86|433|W|,Kashmar|razavi khorasan|IR|58.47|35.24|131|W|,Kassala|kassala|SD|36.4|15.45|401|W|statul kassala,Kassel|hesse|DE|9.5|51.32|197|W|cassel,Kasugai|aichi|JP|136.97|35.25|308|W|,Kasukabe|saitama|JP|139.75|35.98|229|W|,Kasulu|kigoma|TZ|30.1|-4.58|238|W|,Kasur|punjab|PK|74.45|31.12|510|W|,Katabi|central region|UG|32.47|0.08|154|W|,Kathmandu|bagmati province|NP|85.32|27.7|1442|W|katmandou;catmandu;kathmandou;katmandu,Kati|koulikoro|ML|-8.07|12.74|130|W|,Katihar|bihar|IN|87.57|25.54|240|W|,Katowice|silesia|PL|19.02|50.26|286|W|katovice;kattowitz,Katsina|katsina state|NG|7.6|12.99|670|W|,Katsushika|tokyo|JP|139.85|35.73|453|W|katsushika ku;katsushika city,Katsuta|ibaraki|JP|140.53|36.38|155|W|,Kaunas|kaunas|LT|23.91|54.9|289|W|kowno;kauen,Kawagoe|saitama|JP|139.49|35.91|354|W|,Kawaguchi|saitama|JP|139.71|35.81|607|W|,Kawanishi|hyogo|JP|135.42|34.82|155|W|,Kawasaki|kanagawa|JP|139.72|35.52|1538|W|kawasaki city,Kayes|kayes|ML|-11.44|14.45|194|W|,Kayseri|kayseri|TR|35.49|38.73|1452|W|cesarea in cappadocia,Kaysville|UT|US|-111.94|41.04|30|N|,Kazan|tatarstan republic|RU|49.12|55.79|1243|W|caza;kasan,Kearney|NE|US|-99.08|40.7|33|N|,Kearns|UT|US|-112|40.66|35|N|,Kearny|NJ|US|-74.15|40.77|42|N|,Kediri|east java|ID|112.02|-7.82|301|W|kota kediri,Keelung|taiwan|TW|121.74|25.13|362|W|chilung;co long;kota keelung;ti lung,Keizer|OR|US|-123.03|44.99|37|N|,Kelar|sulaymaniyah|IQ|45.32|34.63|250|W|,Keller|TX|US|-97.25|32.93|45|N|,Kelowna|BC|CA|-119.49|49.88|144|NW|,Kembangan||SG|103.91|1.32|130|W|,Kemerovo|kuzbass|RU|86.1|55.35|558|W|kemerowo,Ken Caryl|CO|US|-105.11|39.58|32|N|,Kendale Lakes|FL|US|-80.41|25.71|56|N|,Kendall|FL|US|-80.32|25.68|80|N|,Kendall West|FL|US|-80.44|25.71|36|N|,Kendari|southeast sulawesi|ID|122.52|-3.98|351|W|kota kendari,Kenema|eastern province|SL|-11.19|7.88|255|W|,Keng Tung|shan state|MM|99.93|21.63|171|W|,Kenitra|rabat sale kenitra|MA|-6.58|34.26|470|W|al kunajtira;kenitre,Kennedy|bogota d c|CO|-74.15|4.62|979|W|,Kenner|LA|US|-90.24|29.99|67|N|,Kennesaw|GA|US|-84.62|34.02|33|N|,Kennewick|WA|US|-119.14|46.21|78|N|,Kenosha|WI|US|-87.82|42.58|99|N|,Kensington|NY|US|-73.97|40.65|39|N|,Kensington-Cedar Cottage|BC|CA|-123.07|49.25|49|N|,Kent|WA|US|-122.23|47.38|126|N|,Kent|OH|US|-81.36|41.15|29|N|,Kentron|yerevan|AM|44.51|40.18|133|W|kentron district,Kentwood|MI|US|-85.64|42.87|51|N|,Kerch|crimea|UA|36.48|45.36|148|W|kerci;kercz;kertch;kertj;kertsch;kertsj;kerts;kerc,Kerman|kerman|IR|57.08|30.28|577|W|,Kermanshah|kermanshah province|IR|47.06|34.31|621|W|kermanschah;kirmansah;province de kermanshah;provincia de kermanshah,Kettering|OH|US|-84.17|39.69|55|N|,Kew Gardens Hills|NY|US|-73.82|40.73|37|N|,Key West|FL|US|-81.78|24.56|25|N|cayo hueso,Khabarovsk|khabarovsk|RU|135.1|48.46|618|W|chabarovsk;chabarowsk;habarovsk;jabarovsk,Khairpur Mir's|sindh|PK|68.76|27.53|191|W|khairpur,Khamis Mushait|asir region|SA|42.73|18.3|387|W|chamis muschait;chamis muszajt;hamis musayt;khamis mushayt,Khammam|telangana|IN|80.14|17.25|196|W|,Khan Yunis|gaza strip|PS|34.31|31.34|173|W|jan yunis;khan younis,Khanaqin|diyala|IQ|45.39|34.35|175|W|,Khandwa|madhya pradesh|IN|76.35|21.82|200|W|,Khanpur|punjab|PK|70.66|28.65|142|W|,Kharagpur|west bengal|IN|87.33|22.34|219|W|,Kharkiv|kharkiv|UA|36.25|49.98|1421|W|charkiv;carcovia;charkiw;charkov;charkow;harkov;harkova;jarkov;kharkov,Khartoum|khartoum|SD|32.53|15.55|1974|W|cartum;chartum;hartum;jartum;khartoem;khartum,Khartoum North|khartoum|SD|32.53|15.65|1012|W|bahri;jartum norte;khartoum nord;khartum nord,Khasnahzan|erbil|IQ|44.14|36.2|146|W|,Khemisset|rabat sale kenitra|MA|-6.07|33.82|143|W|,Khimki|moscow oblast|RU|37.43|55.9|239|W|chimki;himki;jimki,Khirdalan|abseron|AZ|49.76|40.45|196|W|hirdalan;xirdalan,Khlong Sam Wa|bangkok|TH|100.74|13.87|169|W|,Khmelnytskyi|khmelnytskyi|UA|26.98|49.42|274|W|chmel nyc kyj;chmelnyzkyj;chmielnicki;khmel nyts kyy;proscurovia;ploskurow,Khobar|eastern province|SA|50.21|26.28|165|W|al chubar;al khobar;el huber,Khomeyni Shahr|isfahan|IR|51.54|32.69|277|W|three castles,Khoroshevo-Mnevniki|moscow|RU|37.47|55.78|159|W|,Khorramabad|lorestan province|IR|48.36|33.49|329|W|,Khorramshahr|khuzestan|IR|48.18|30.44|330|W|chorramschahr;chorramszahr;chorramsahr;hurremsehr;jorramchar;koramsjar,Khouribga|beni mellal khenifra|MA|-6.91|32.88|214|W|,Khujand|sughd|TJ|69.62|40.28|191|W|choedzjand;chudschand;chudzjand;hucand;hudzand;khodjent,Khulna|khulna division|BD|89.56|22.81|1500|W|,Khuraybat as Suq|amman|JO|35.92|31.88|186|W|,Khuy|west azerbaijan|IR|44.95|38.55|198|W|,Khuzdar|balochistan|PK|66.61|27.81|218|W|,Kiambu|kiambu county|KE|36.84|-1.17|147|W|,Kibaha|pwani|TZ|38.92|-6.77|265|W|,Kiel|schleswig holstein|DE|10.13|54.32|252|W|kilonia,Kielce|swietokrzyskie|PL|20.63|50.87|192|W|,Kigali|kigali|RW|30.06|-1.95|1132|W|,Kigoma|kigoma|TZ|29.63|-4.88|232|W|,Kikolo|luanda|AO|13.33|-8.78|728|W|quicolo,Kikuyu|kiambu county|KE|36.66|-1.25|323|W|,Kikwit|kwilu|CD|18.82|-5.04|509|W|,Kilamba|luanda|AO|13.28|-8.85|237|W|kilamba kiaxi,Killarney|BC|CA|-123.04|49.23|29|N|,Killeen|TX|US|-97.73|31.12|140|NW|,Kima Kieza|luanda|AO|13.3|-8.83|428|W|quima quieza,Kimberley|northern cape|ZA|24.76|-28.73|142|W|,Kimhae|gyeongsangnam do|KR|128.88|35.23|531|W|gimhae,Kindia|kindia|GN|-12.87|10.06|161|W|,Kindu|maniema|CD|25.92|-2.94|234|W|,Kingman|AZ|US|-114.05|35.19|28|N|,Kings Bridge|NY|US|-73.91|40.88|75|N|,Kingsport|TN|US|-82.56|36.55|53|N|,Kingston|kingston|JM|-76.79|18|937|W|,Kingston|ON|CA|-76.48|44.23|132|NW|cataraqui,Kingston upon Hull|england|GB|-0.34|53.74|314|W|hull,Kingsville|TX|US|-97.86|27.52|26|N|,Kinshasa|kinshasa|CD|15.31|-4.33|16000|W|kinsasa;kinszasa;quinxassa,Kipushi|haut katanga|CD|27.25|-11.76|169|W|,Kira|central region|UG|32.63|0.4|462|W|,Kirari Sulemannagar|delhi|IN|77.06|28.7|283|W|,Kirdasah|giza|EG|31.11|30.03|137|W|kerdasa,Kirikkale|kirikkale|TR|33.51|39.85|186|W|,Kirkland|WA|US|-122.21|47.68|87|N|,Kirkuk|kirkuk|IQ|44.39|35.47|1031|W|kerkuk;kirkoek;kirkouk,Kirkwood|MO|US|-90.41|38.58|27|N|,Kirov|kirov oblast|RU|49.66|58.6|507|W|kirow,Kirsehir|kirsehir|TR|34.16|39.15|150|W|,Kiryas Joel|NY|US|-74.17|41.34|32|N|,Kisangani|tshopo|CD|25.19|0.52|1181|W|stanleystad;stanleyville,Kisaran|north sumatra|ID|99.62|2.98|141|W|,Kisarazu|chiba|JP|139.93|35.38|136|W|,Kishangarh|rajasthan|IN|74.85|26.59|154|W|,Kishiwada|osaka|JP|135.37|34.47|205|W|,Kisi|oyo state|NG|3.85|9.08|155|W|,Kislovodsk|stavropol kray|RU|42.72|43.91|132|W|kislowodsk;kislowodzk,Kismayo|lower juba|SO|42.55|-0.36|234|W|chisimayu;kismaayo,Kissimmee|FL|US|-81.42|28.3|69|N|,Kisumu|kisumu county|KE|34.76|-0.1|397|W|,Kita|tokyo|JP|139.73|35.75|332|W|kita ku,Kitakyushu|fukuoka|JP|130.85|33.85|940|W|kitakjusu,Kitale|trans nzoia|KE|35.01|1.02|162|W|,Kitchener|ON|CA|-80.51|43.43|256|NW|,Kitengela|kajiado county|KE|36.96|-1.48|154|W|,Kitsilano|BC|CA|-123.17|49.27|43|N|,Kitwe|copperbelt|ZM|28.21|-12.8|665|W|,Kiziltepe|mardin|TR|40.58|37.19|150|W|,Klaipeda|klaipeda county|LT|21.14|55.71|172|W|klajpeda;memel,Klang|selangor|MY|101.44|3.04|240|W|kelang,Klerksdorp|north west|ZA|26.67|-26.85|227|W|,Kluang|johor|MY|103.32|2.03|323|W|,Klungkung|bali|ID|115.4|-8.53|223|W|,Knoxville|TN|US|-83.92|35.96|190|NW|,Kobe|hyogo|JP|135.18|34.69|1525|W|,Kochi|kerala|IN|76.26|9.94|633|W|cochim;cochin;ernakulam;koczin,Kochi|kochi|JP|133.53|33.55|332|W|kochi shi;kochishi,Kodaira|tokyo|JP|139.49|35.73|198|W|,Koeln|north rhine westphalia|DE|6.95|50.93|1024|W|koln;cologne;colonia;keulen;kolonia;kolin nad rynem,Koforidua|eastern|GH|-0.26|6.09|151|W|,Kofu|yamanashi|JP|138.57|35.67|189|W|,Koga|ibaraki|JP|139.72|36.18|139|W|,Kohat|khyber pakhtunkhwa|PK|71.45|33.58|151|W|,Kokomo|IN|US|-86.13|40.49|57|N|,Kokshetau|aqmola|KZ|69.39|53.28|150|W|kokchetaou;kokczetaw;koksetau;kokcetau;kokschetau;koksjetau;koksetaw,Kolar|karnataka|IN|78.13|13.14|138|W|,Kolhapur|maharashtra|IN|74.23|16.7|549|W|,Kolkata|west bengal|IN|88.36|22.56|4631|W|calcutta;calcuta;kalkata;kalkuta;kalkutta,Kollam|kerala|IN|76.58|8.88|367|W|quilon;coulao,Kolomna|moscow oblast|RU|38.78|55.07|147|W|,Kolpino|st petersburg|RU|30.59|59.75|138|W|kolppina,Kolwezi|lualaba|CD|25.47|-10.71|790|W|,Kom Ombo|aswan|EG|32.95|24.48|409|W|,Komaki|aichi|JP|136.92|35.28|148|W|,Kombolcha|amhara|ET|39.74|11.08|132|W|kembolcza,Komsomolsk-on-Amur|khabarovsk|RU|137.01|50.55|275|W|komsomolsk am amur;komsomolsk del amur;komsomolsk na amure;komsomolsk sur l amour,Kon Tum|quang ngai|VN|108.01|14.35|205|W|,Konak|izmir province|TR|27.1|38.4|332|W|,Konibodom|sughd|TJ|70.43|40.29|211|W|,Konya|konya|TR|32.48|37.87|1433|W|iconio,Korba|chhattisgarh|IN|82.7|22.35|419|W|,Koreatown|CA|US|-118.3|34.06|124|N|,Korhogo|savanes district|CI|-5.63|9.46|440|W|,Koriyama|fukushima|JP|140.38|37.4|327|W|,Korla|xinjiang|CN|86.15|41.76|549|W|,Korolev|moscow oblast|RU|37.83|55.91|139|W|korolyov;koroliov;koroljov;korolow,Koronadal|soccsksargen|PH|124.85|6.5|201|W|koronadal city;kota koronadal,Koshigaya|saitama|JP|139.79|35.89|345|W|,Kosice|kosice region|SK|21.26|48.71|225|W|koszyce;kaschau,Kostanay|kostanay|KZ|63.62|53.21|210|W|kostanai;kostanaj;kustanaj;qostanai;qostanaj;qostanay;kustanay;nikolayevsk,Kosti|white nile|SD|32.66|13.16|345|W|kusti,Kostroma|kostroma oblast|RU|40.93|57.77|277|W|,Kota|rajasthan|IN|75.84|25.18|1001|W|,Kota Bharu|kelantan|MY|102.24|6.12|568|W|kota bahru,Kota Damansara|selangor|MY|101.58|3.15|500|W|,Kota Kinabalu|sabah|MY|116.07|5.97|500|W|,Kota Kuala Muda|kedah|MY|100.37|5.59|544|W|,Koto|kumamoto|JP|130.75|32.78|543|W|koto city,Koudougou|centre ouest|BF|-2.37|12.25|160|W|,Koumassi|abidjan autonomous district|CI|-3.97|5.3|412|W|,Kousseri|far north|CM|15.03|12.08|139|W|,Koutiala|sikasso|ML|-5.47|12.39|218|W|,Kovpakivskyi|sumy|UA|34.79|50.93|142|W|kovpakivskyi rayon,Kovrov|vladimir oblast|RU|41.32|56.36|154|W|kowrow,Kowloon||HK|114.18|22.32|2232|W|koulun,Kowloon City|kowloon city|HK|114.19|22.33|418|W|,Kowloon City Centre|kowloon city|HK|114.19|22.33|194|W|,Kozhikode|kerala|IN|75.78|11.25|550|W|kozikkot;calecute;calicut,Kragujevac|central serbia|RS|20.92|44.02|147|W|,Krakow|lesser poland|PL|19.94|50.06|816|W|cracovia;cracovie;krakau;krakov;krakova;cracow,Kramatorsk|donetsk|UA|37.57|48.73|147|W|kramators k,Krasnodar|krasnodar krai|RU|38.98|45.05|899|W|,Krasnogvargeisky|st petersburg|RU|30.48|59.97|337|W|,Krasnoyarsk|krasnoyarsk krai|RU|92.93|56.04|1090|W|krasnojarsk;krasnoiarsk,Krefeld|north rhine westphalia|DE|6.55|51.34|237|W|,Kremenchuk|poltava|UA|33.4|49.06|224|W|kremencuk;kremenciuk;krementchouk;krementjuk;krementschuk;krementsjoek;krementsjuk;krementsuk;kremencug;krzemienczuk;kremenchug;kreminchuk,Kreuzberg|state of berlin|DE|13.4|52.5|153|W|berlin kreuzberg,Krishnanagar|west bengal|IN|88.49|23.41|145|W|,Kropyvnytskyi|kirovohrad|UA|32.27|48.51|219|W|kropywnycki;kropywnyzkyj;elisavetgrad;elizabethgrad;jelisawetgrad;jelizawietgrad;kirovo;kirovograd;kirovogrado;kirovohrad;kirowograd;kirowohrad;yelisavetgrad;zinovievsk;zinovyevsk;zinowjewsk,Krugersdorp|gauteng|ZA|27.78|-26.09|378|W|,Kryvyy Rih|dnipropetrovsk|UA|33.39|47.91|603|W|krivoj rog;kryvy rig;kryvy rih;kryvyi rih;kryvyj rih;krywyj rih;krzywy rog;krivii rih,Ksar El Kebir|tanger tetouan al hoceima|MA|-5.9|35|138|W|,Kuala Kubu Baharu|selangor|MY|101.66|3.56|194|W|kuala kubu;kuala kubu baru;kuala kubu bharu,Kuala Lumpur|kuala lumpur|MY|101.69|3.14|1453|W|,Kuala Terengganu|terengganu|MY|103.14|5.33|426|W|,Kuantan|pahang|MY|103.33|3.81|548|W|,Kuching|sarawak|MY|110.33|1.55|402|W|,Kuecuekcekmece|istanbul|TR|28.77|40.99|792|W|kucukcekmece,Kuetahya|kutahya|TR|29.98|39.42|185|W|kutahya,Kukatpally|telangana|IN|78.41|17.48|341|W|kukatpalle;kukatpalli,Kukichuo|saitama|JP|139.67|36.07|150|W|,Kulim|kedah|MY|100.56|5.36|170|W|,Kulob|khatlon province|TJ|69.78|37.91|214|W|,Kulti|west bengal|IN|86.84|23.73|305|W|,Kumagaya|saitama|JP|139.39|36.13|195|W|,Kumamoto|kumamoto|JP|130.69|32.81|738|W|kumamoto shi,Kumarapalayam|tamil nadu|IN|77.71|11.44|195|W|komarapalayam,Kumasi|ashanti|GH|-1.62|6.69|2544|W|,Kumba|south west|CM|9.45|4.64|225|W|,Kumbakonam|tamil nadu|IN|79.39|10.96|167|W|,Kunduz|kunduz|AF|68.86|36.73|161|W|konduz;kondoz;kundus;qunduz,Kunming|yunnan|CN|102.72|25.04|3855|W|con minh;kchun ming,Kunri|sindh|PK|69.57|25.18|237|W|,Kunshan|jiangsu|CN|120.95|31.38|2092|W|con son;kchun san,Kuntsevo|moscow|RU|37.4|55.74|147|W|kuncevo;kuncewo;kuntsevo district,Kupang|east nusa tenggara|ID|123.61|-10.17|474|W|kota kupang,Kurashiki|okayama|JP|133.77|34.58|483|W|,Kure|hiroshima|JP|132.57|34.23|214|W|,Kurgan|kurgan oblast|RU|65.34|55.45|309|W|curgan;koergan;kourgan,Kurnool|andhra pradesh|IN|78.04|15.83|460|W|karnulu,Kursk|kursk oblast|RU|36.18|51.73|448|W|koersk;koursk,Kurume|fukuoka|JP|130.52|33.32|303|W|,Kusatsu|shiga|JP|135.97|35.02|143|W|,Kushinagar|uttar pradesh|IN|83.89|26.74|274|W|,Kushiro|hokkaido|JP|144.37|42.98|167|W|kushiro shi;kusiro,Kushtia|khulna division|BD|89.12|23.9|135|W|,Kutaisi|imereti|GE|42.69|42.27|135|W|koutaissi;kutaissi;koetaisi;kutayis,Kuwana|mie|JP|136.67|35.05|140|W|,Kuz'minki|moscow|RU|37.8|55.7|143|W|,KwaDukuza|kwazulu natal|ZA|31.29|-29.33|161|W|,Kwai Chung|kwai tsing district|HK|114.14|22.37|331|W|,Ky Anh|ha tinh province|VN|106.3|18.06|150|W|,Kyaukpyu|rakhine|MM|93.55|19.43|180|W|,Kyauktan|yangon|MM|96.33|16.64|132|W|,Kyengera|central region|UG|32.5|0.3|285|W|,Kyiv|kyiv city|UA|30.52|50.45|2952|W|kiev;kyjiw;ki ep;kiew;kijow;kiova;kyiw;kyjev;chiovia,Kyivskyi|donetsk|UA|37.78|48.05|139|W|kyivskyi rayon,Kyle|TX|US|-97.88|29.99|35|N|,Kyoto|kyoto|JP|135.75|35.02|1463|W|kioto;kjoto;kyoto shi;quioto,Kyzylorda|kyzylorda|KZ|65.51|44.85|354|W|kizilorda;qysylorda;qyzylorda;qizilorda;ak mechet;fort perovsky;kzyl orda;perovsk,L'Amoreaux|ON|CA|-79.31|43.8|43|N|,L'Hospitalet de Llobregat|catalonia|ES|2.1|41.36|257|W|hospitalet de llobregat,La Barca|MX14|MX|-102.54|20.29|35|N|,La Ceiba|atlantida department|HN|-86.78|15.76|222|W|,La Cite-Limoilou|QC|CA|-71.23|46.83|108|N|,La Crosse|WI|US|-91.24|43.8|52|N|,La Gi|lam dong|VN|107.77|10.66|160|W|,La Habra|CA|US|-117.95|33.93|62|N|,La Haute-Saint-Charles|QC|CA|-71.37|46.89|88|N|,La Jolla|CA|US|-117.27|32.85|42|N|,La Joya|MX02|MX|-117|32.44|26|N|,La Laguna|canary islands|ES|-16.32|28.49|150|W|,La Mesa|CA|US|-117.02|32.77|60|N|,La Mirada|CA|US|-118.01|33.92|49|N|,La Paz|la paz department|BO|-68.15|-16.5|2004|W|ciudad la paz,La Paz|MX03|MX|-110.31|24.14|250|NW|,La Piedad de Cabadas|MX16|MX|-102.02|20.34|83|N|la piedad;municipio la piedad,La Pintana|santiago metropolitan|CL|-70.63|-33.58|201|W|,La Plata|buenos aires|AR|-57.95|-34.92|195|W|,La Porte|TX|US|-95.02|29.67|35|N|,La Presa|CA|US|-117|32.71|34|N|,La Puente|CA|US|-117.95|34.02|40|N|,La Quinta|CA|US|-116.31|33.66|40|N|,La Rioja|la rioja|AR|-66.86|-29.41|178|W|ciudad de la rioja;rioja,La Romana|la romana|DO|-68.97|18.42|208|W|,La Serena|coquimbo region|CL|-71.25|-29.91|154|W|,La Trinidad|cordillera|PH|120.59|16.45|142|W|,La Vergne|TN|US|-86.58|36.02|34|N|,La Verne|CA|US|-117.77|34.1|32|N|,Laayoune||EH|-13.19|27.14|196|W|el aaiun;aaiun;al ajoen;al ayun;al ujun;el ayun,Labuan Bajo|east nusa tenggara|ID|119.89|-8.5|188|W|labuanbajo,Lacey|WA|US|-122.82|47.03|46|N|,Ladysmith|kwazulu natal|ZA|29.78|-28.56|143|W|,Lafayette|LA|US|-92.02|30.22|121|N|,Lafayette|IN|US|-86.88|40.42|71|N|,Lafayette|CO|US|-105.09|39.99|27|N|,Lafayette|CA|US|-122.12|37.89|25|N|,Lages|santa catarina|BR|-50.33|-27.82|172|W|,Laghouat|laghouat|DZ|2.87|33.8|134|W|al aghwat;lagouat,Lagos|lagos|NG|3.39|6.45|15388|W|,Lagos de Moreno|MX14|MX|-101.93|21.36|98|N|,LaGrange|GA|US|-85.03|33.04|29|N|la grange,Laguna|CA|US|-121.42|38.42|46|N|,Laguna Hills|CA|US|-117.71|33.61|31|N|,Laguna Niguel|CA|US|-117.71|33.52|65|N|,Lahore|punjab|PK|74.35|31.56|13004|W|lahaur;lahor,Laibin|guangxi|CN|109.22|23.75|910|W|lai tan;laj pin,Laiwu|shandong|CN|117.66|36.19|989|W|lai vu;laj wu,Laixi|shandong|CN|120.53|36.86|341|W|,Laiyang|shandong|CN|120.71|36.98|169|W|,Laizhou|shandong|CN|119.94|37.18|188|W|laichow,Lajeado|sao paulo|BR|-46.41|-23.53|164|W|,Lake Charles|LA|US|-93.2|30.21|76|N|,Lake Elsinore|CA|US|-117.33|33.67|61|N|,Lake Forest|CA|US|-117.69|33.65|82|N|,Lake Havasu City|AZ|US|-114.32|34.48|53|N|,Lake in the Hills|IL|US|-88.33|42.18|29|N|,Lake Jackson|TX|US|-95.43|29.03|27|N|,Lake Magdalene|FL|US|-82.47|28.07|28|N|,Lake Oswego|OR|US|-122.67|45.42|38|N|,Lake Ridge|VA|US|-77.3|38.69|41|N|,Lake Stevens|WA|US|-122.06|48.02|30|N|,Lake Worth Beach|FL|US|-80.07|26.62|37|N|lake worth,Lakeland|FL|US|-81.95|28.04|104|N|,Lakeside|FL|US|-81.77|30.13|30|N|,Lakeville|MN|US|-93.24|44.65|60|N|,Lakewood|CO|US|-105.08|39.7|152|NW|,Lakewood|CA|US|-118.13|33.85|81|N|,Lakewood|WA|US|-122.52|47.17|59|N|,Lakewood|NJ|US|-74.22|40.1|53|N|lakewood township;municipio de lakewood,Lakewood|SK|CA|-106.59|52.11|51|N|,Lakewood|OH|US|-81.8|41.48|50|N|,Lakhimpur|uttar pradesh|IN|80.78|27.95|140|W|,Lal Bahadur Nagar|telangana|IN|78.56|17.35|261|W|,Lampang|lampang|TH|99.49|18.29|156|W|,Lancaster|CA|US|-118.14|34.7|161|NW|,Lancaster|PA|US|-76.31|40.04|59|N|,Lancaster|OH|US|-82.6|39.71|39|N|,Lancaster|TX|US|-96.76|32.59|38|N|,Land O' Lakes|FL|US|-82.46|28.22|31|N|,Lander|miranda|VE|-66.7|10.18|176|W|,Lang'ata|nairobi county|KE|36.73|-1.37|172|W|,Lang Son|lang son province|VN|106.76|21.85|200|W|,Langfang|hebei|CN|116.71|39.52|868|W|,Langford|BC|CA|-123.5|48.45|46|N|,Langley|BC|CA|-122.66|49.1|132|NW|ciudad de langley,Langsa|aceh|ID|97.97|4.47|184|W|,Lansing|MI|US|-84.56|42.73|112|N|,Lansing|IL|US|-87.54|41.56|28|N|,Lanus|buenos aires|AR|-58.39|-34.71|212|W|,Lanzhou|gansu|CN|103.84|36.06|3000|W|lan chau;lan cou,Lao Cai|lao cai|VN|103.97|22.49|130|W|laos,Laohekou|hubei|CN|111.67|32.39|253|W|,Laplace|LA|US|-90.48|30.07|29|N|,Lapu-Lapu City|central visayas|PH|123.95|10.31|497|W|lapu lapu,Larache|tanger tetouan al hoceima|MA|-6.16|35.19|136|W|al araisz;laraxe,Laramie|WY|US|-105.59|41.31|32|N|,Laredo|TX|US|-99.51|27.51|256|NW|,Largo|FL|US|-82.79|27.91|81|N|,Larisa|thessaly|GR|22.42|39.63|146|W|larissa;yenisehir,Larkana|sindh|PK|68.21|27.56|364|W|,Las Choapas|MX30|MX|-94.1|17.91|42|N|,Las Cruces|NM|US|-106.78|32.31|101|N|,Las Guacamayas|MX16|MX|-102.21|18.02|37|N|,Las Palmas de Gran Canaria|canary islands|ES|-15.42|28.1|383|W|las palmas;las palmas de g c;palmas de gran canaria,Las Pinas|national capital region|PH|120.98|14.45|615|W|,Las Pintitas|MX14|MX|-103.3|20.56|26|N|,Las Tunas|las tunas province|CU|-76.95|20.96|203|W|victoria de las tunas,Las Vegas|NV|US|-115.14|36.17|641|NW|,LaSalle|ON|CA|-83.06|42.24|32|N|,Lashio|shan state|MM|97.75|22.94|131|W|lasho;lasio,Lat Krabang|bangkok|TH|100.78|13.72|163|W|,Latacunga|cotopaxi|EC|-78.62|-0.93|205|W|,Latakia|latakia|SY|35.79|35.53|709|W|laodicea;lataquia;lattakia;lattaquie;lazkiye;lazikija,Latina|madrid|ES|-3.75|40.39|256|W|,Latkrabang|bangkok|TH|100.75|13.73|173|W|,Latur|maharashtra|IN|76.57|18.4|382|W|,Lauderdale Lakes|FL|US|-80.21|26.17|34|N|,Lauderhill|FL|US|-80.21|26.14|71|N|,Laurel|MD|US|-76.85|39.1|26|N|,Lauro de Freitas|bahia|BR|-38.33|-12.89|203|W|,Lausanne|vaud|CH|6.63|46.52|139|W|lausana;losanna;lozan;lozanna,Laval|QC|CA|-73.69|45.57|438|NW|,Laval-des-Rapides|QC|CA|-73.7|45.56|36|N|,Lawndale|CA|US|-118.35|33.89|33|N|,Lawrence|KS|US|-95.24|38.97|93|N|,Lawrence|MA|US|-71.16|42.71|80|N|,Lawrence|IN|US|-86.03|39.84|47|N|,Lawrenceville|GA|US|-83.99|33.96|30|N|,Lawson|SK|CA|-106.64|52.16|34|N|,Lawton|OK|US|-98.39|34.61|96|N|,Layton|UT|US|-111.97|41.06|74|N|,Layyah|punjab|PK|70.94|30.96|151|W|,Le Havre|normandy|FR|0.11|49.49|185|W|el havre;hawr;le port de grace,Le Mans|pays de la loire|FR|0.2|48|144|W|,Le Plateau-Mont-Royal|QC|CA|-73.58|45.53|105|N|,Le Sud-Ouest|QC|CA|-73.59|45.47|86|N|,Le Vieux-Longueuil|QC|CA|-73.51|45.54|135|NW|,League City|TX|US|-95.09|29.51|98|N|,Leamington|ON|CA|-82.6|42.05|35|N|,Leander|TX|US|-97.85|30.58|59|N|,Leavenworth|KS|US|-94.92|39.31|35|N|,Leawood|KS|US|-94.62|38.97|34|N|,Lebanon|TN|US|-86.29|36.21|30|N|,Lebanon|PA|US|-76.41|40.34|25|N|,Lee's Summit|MO|US|-94.38|38.91|95|N|,Leeds|england|GB|-1.55|53.8|536|W|,Leesburg|VA|US|-77.56|39.12|51|N|,Leganes|madrid|ES|-3.76|40.33|188|W|,Legaspi|bicol region|PH|123.74|13.14|179|W|legazpi;legaspi city;legazpi city,Lehi|UT|US|-111.85|40.39|58|N|,Lehigh Acres|FL|US|-81.62|26.63|86|N|,Leicester|england|GB|-1.13|52.64|368|W|,Leipzig|saxony|DE|12.37|51.34|504|W|lipsca;lipsia;lipsk;lipsko,Leisure City|FL|US|-80.43|25.5|26|N|,Lekki|lagos|NG|3.48|6.45|401|W|,Lembang|west java|ID|107.62|-6.81|183|W|,Lemon Grove|CA|US|-117.03|32.74|26|N|,Lemoore|CA|US|-119.78|36.3|25|N|,Lenexa|KS|US|-94.73|38.95|52|N|,Leogane|ouest|HT|-72.63|18.51|134|W|,Leominster|MA|US|-71.76|42.53|41|N|,Leon|leon department|NI|-86.88|12.44|144|W|,Leon de los Aldama|MX11|MX|-101.68|21.12|1579|NW|leon;leon guanajuato;leon de los aldamas,Lerdo|MX10|MX|-103.52|25.54|79|N|,Les Rivieres|QC|CA|-71.27|46.82|77|N|,Leshan|sichuan|CN|103.76|29.56|662|W|le san,Lethbridge|AB|CA|-112.82|49.7|103|N|,Leverkusen|north rhine westphalia|DE|6.98|51.03|162|W|,Levis|QC|CA|-71.18|46.8|143|NW|,Levittown|PA|US|-74.83|40.16|52|N|,Levittown|NY|US|-73.51|40.73|51|N|lewittown,Lewiston|ME|US|-70.21|44.1|36|N|,Lewiston|ID|US|-117.02|46.42|32|N|,Lewiston Orchards|ID|US|-116.98|46.38|31|N|,Lewisville|TX|US|-96.99|33.05|104|N|,Lexington|KY|US|-84.48|37.99|320|NW|,Lexington|MA|US|-71.22|42.45|31|N|lexington village;cambridge farms;lexington centre,Lexington-Fayette|KY|US|-84.46|38.05|314|NW|,Lhoka|tibet|CN|91.77|29.24|353|W|,Lhokseumawe|aceh|ID|97.15|5.18|200|W|kota lhokseumawe,Lianghu|zhejiang|CN|120.9|29.99|155|W|,Liangping|chongqing|CN|107.77|30.66|137|W|,Lianshan|liaoning|CN|120.85|40.76|313|W|,Lianyungang|jiangsu|CN|119.22|34.6|2001|W|,Liaocheng|shandong|CN|116|36.45|1229|W|liao ccheng;lieu thanh,Liaoyang|liaoning|CN|123.17|41.27|687|W|liao jang;lieu duong,Libertad|caraga|PH|125.5|8.94|250|W|,Liberty|MO|US|-94.42|39.25|30|N|,Libreville|estuaire|GA|9.45|0.39|846|W|,Licheng|guangdong|CN|113.82|23.3|172|W|,Lichinga|niassa province|MZ|35.24|-13.31|281|W|,Liege|wallonia|BE|5.57|50.63|195|W|luttich;liegi;lieja;luik;lutych,Lijiang|yunnan|CN|100.22|26.87|211|W|cidade antiga de lijiang;li tiang,Likasi|haut katanga|CD|26.74|-10.98|635|W|jadotstad;jadotsville,Lille|hauts de france|FR|3.06|50.63|238|W|rijsel;lila;lilla,Lilongwe|central region|MW|33.79|-13.97|1115|W|lilongue,Lima|lima province|PE|-77.03|-12.04|7737|W|,Lima|OH|US|-84.11|40.74|37|N|,Limassol|limassol|CY|33.04|34.68|154|W|lemesos;limasol;limisso,Limbe|south west|CM|9.21|4.02|131|W|,Limeira|sao paulo|BR|-47.4|-22.56|291|W|,Limoges|new aquitaine|FR|1.25|45.83|141|W|,Limuru|kiambu county|KE|36.64|-1.11|159|W|,Linares|MX19|MX|-99.57|24.86|70|N|,Lincang|yunnan|CN|100.09|23.88|323|W|,Lincoln|NE|US|-96.67|40.8|294|NW|,Lincoln|CA|US|-121.29|38.89|49|N|,Lincoln Park|IL|US|-87.65|41.92|66|N|,Lincoln Park|MI|US|-83.18|42.25|37|N|,Lincoln Square|IL|US|-87.69|41.98|40|N|,Linden|NJ|US|-74.24|40.62|42|N|,Lindenhurst|NY|US|-73.37|40.69|27|N|,Linfen|shanxi|CN|111.52|36.09|959|W|lin fen,Linhares|espirito santo|BR|-40.07|-19.39|183|W|,Linkoeping|ostergotland|SE|15.62|58.41|166|W|linkoping,Linqu|shandong|CN|118.54|36.52|299|W|,Linton Hall|VA|US|-77.57|38.76|35|N|,Linxia Chengguanzhen|gansu|CN|103.21|35.6|274|W|linxia,Linyi|shandong|CN|118.34|35.06|2743|W|lam nghi,Linz|upper austria|AT|14.29|48.31|204|W|linec,Lipa City|calabarzon|PH|121.16|13.94|212|W|,Lipetsk|lipetsk oblast|RU|39.55|52.59|509|W|lipezk;lipeck;lipetk;lipieck,Lisbon|lisbon|PT|-9.15|38.73|517|W|lisboa;lisabon;lisabona;lisbona;lisbonne;lissabon;lizbon;lizbona,Lishui|zhejiang|CN|119.91|28.46|451|W|li suej,Little Elm|TX|US|-96.94|33.16|38|N|,Little Havana|FL|US|-80.23|25.77|53|N|la pequena habana,Little Rock|AR|US|-92.29|34.75|202|NW|,Littleton|CO|US|-105.02|39.61|46|N|,Liupanshui|guizhou|CN|104.83|26.59|1320|W|liou pchan suej,Liuzhi|guizhou|CN|105.43|26.23|138|W|,Liuzhou|guangxi|CN|109.41|24.32|1436|W|liou cou;liuchow,Livermore|CA|US|-121.77|37.68|88|N|,Liverpool|england|GB|-2.98|53.41|496|W|,Livingston|NJ|US|-74.31|40.8|27|N|,Livingstone|southern province|ZM|25.85|-17.84|178|W|,Livonia|MI|US|-83.35|42.37|94|N|,Livorno|tuscany|IT|10.33|43.54|157|W|livourne,Lizhi|chongqing|CN|107.4|29.7|156|W|,Ljubljana|ljubljana|SI|14.51|46.05|272|W|liubliana;lubiana;lublana;lublan;laibach,Lleida|catalonia|ES|0.62|41.62|140|W|lerida,Lloydminster|AB|CA|-110.02|53.27|31|N|,Loa Janan|east kalimantan|ID|117.1|-0.58|212|W|,Lobito|benguela|AO|13.54|-12.36|393|W|,Lochearn|MD|US|-76.72|39.34|25|N|,Lockport|IL|US|-88.06|41.59|25|N|,Lodhran|punjab|PK|71.63|29.53|144|W|,Lodi|CA|US|-121.27|38.13|64|N|,Lodz|lodz voivodeship|PL|19.47|51.77|639|W|litzmannstadt,Logan|UT|US|-111.83|41.74|50|N|,Logan City|queensland|AU|153.11|-27.64|345|W|citta di logan;logan,Logan Square|IL|US|-87.7|41.92|73|N|,Logrono|la rioja|ES|-2.45|42.47|151|W|,Loja|loja|EC|-79.2|-3.99|274|W|,Loma Bonita|MX20|MX|-95.88|18.11|40|N|,Lombard|IL|US|-88.01|41.88|43|N|,Lome|maritime|TG|1.22|6.13|2188|W|,Lompoc|CA|US|-120.46|34.64|44|N|,London|england|GB|-0.13|51.51|8961|W|londres;londen;londra;londyn;lontoo;luan don,London|ON|CA|-81.23|42.98|422|NW|,Londrina|parana|BR|-51.16|-23.31|581|W|,Long Beach|CA|US|-118.19|33.77|474|NW|,Long Beach|NY|US|-73.66|40.59|33|N|,Long Bien|hanoi|VN|105.9|21.03|347|W|,Long Branch|NJ|US|-73.99|40.3|30|N|,Long Island City|NY|US|-73.95|40.74|25|N|lic,Long Khanh|dong nai|VN|107.25|10.93|171|W|,Long Xuyen|an giang|VN|105.44|10.39|286|W|,Longfellow Community|MN|US|-93.23|44.94|29|N|,Longfeng|heilongjiang|CN|125.1|46.53|152|W|,Longgang|guangdong|CN|114.26|22.72|215|W|district de longgang;long cuong;longgang district,Longling County|yunnan|CN|98.69|24.59|270|W|,Longmont|CO|US|-105.1|40.17|92|N|,Longshan|jilin|CN|125.14|42.89|465|W|liao juan;liaoyuan;lieu nguyen,Longueuil|QC|CA|-73.47|45.52|229|NW|,Longview|TX|US|-94.74|32.5|82|N|,Longview|WA|US|-122.94|46.14|36|N|,Longyan|fujian|CN|117.02|25.07|1025|W|long nham;lung jen,Loni|uttar pradesh|IN|77.29|28.75|516|W|,Lorain|OH|US|-82.18|41.45|63|N|,Los Altos|CA|US|-122.11|37.39|30|N|,Los Angeles|CA|US|-118.24|34.05|3820|NW|l a,Los Banos|CA|US|-120.85|37.06|37|N|,Los Gatos|CA|US|-121.97|37.23|30|N|,Los Mochis|MX25|MX|-109|25.79|256|NW|,Los Reyes Acaquilpan|MX15|MX|-98.98|19.36|85|N|los reyes la paz;reyes la paz,Los Reyes de Salgado|MX16|MX|-102.47|19.59|39|N|,Los Teques|miranda|VE|-67.04|10.35|252|W|,Loudi|hunan|CN|111.99|27.73|497|W|,Louisville|KY|US|-85.76|38.25|624|NW|,Loveland|CO|US|-105.07|40.4|75|N|,Lowell|MA|US|-71.32|42.63|110|N|,Lower Sackville|NS|CA|-63.68|44.78|51|N|,Lower West Side|IL|US|-87.67|41.85|34|N|,Lu'an|anhui|CN|116.52|31.74|1644|W|,Luancheng|hebei|CN|114.65|37.88|597|W|,Luanda|luanda|AO|13.23|-8.84|2776|W|loanda,Luanshya|copperbelt|ZM|28.42|-13.14|193|W|,Lubango|huila|AO|13.49|-14.92|600|W|sa da bandeira,Lubbock|TX|US|-101.86|33.58|249|NW|,Lublin|lublin|PL|22.57|51.25|336|W|lublino,Lubuklinggau|south sumatra|ID|102.86|-3.29|234|W|kota lubuklinggau,Lubumbashi|haut katanga|CD|27.48|-11.66|2221|W|elizabethstad;elisabethville,Lucena|calabarzon|PH|121.62|13.93|228|W|kota lucena;lucena city,Lucknow|uttar pradesh|IN|80.92|26.84|2472|W|lakhnau;laknau,Ludhiana|punjab|IN|75.85|30.91|1618|W|ludhijana,Ludwigshafen am Rhein|rheinland pfalz|DE|8.45|49.48|163|W|ludwigshafen;ludwigshafen sul reno,Luebeck|schleswig holstein|DE|10.69|53.87|212|W|lubeck;lubeca;lubecca;lubeka;lyypekki,Lueliang|shanxi|CN|111.14|37.52|3346|W|luliang,Luena|moxico|AO|19.92|-11.78|273|W|,Lufkin|TX|US|-94.73|31.34|36|N|,Luhansk|luhansk|UA|39.31|48.57|397|W|loehansk;louhansk;lugansk;luhans k;voroshilovgrad;woroschilowgrad,Luohe|henan|CN|114.03|33.57|1294|W|luo che;thap ha,Luohu District|guangdong|CN|114.13|22.55|1143|W|,Luojiang|sichuan|CN|104.5|31.3|212|W|,Luoyang|henan|CN|112.44|34.67|1390|W|luo jang,Lusail|al daayen|QA|51.51|25.42|198|W|,Lusaka|lusaka province|ZM|28.29|-15.41|2212|W|,Lushui|yunnan|CN|98.86|25.82|197|W|,Luton|england|GB|-0.42|51.88|225|W|,Lutsk|volyn|UA|25.35|50.76|215|W|loetsk;loutsk;luc k;luzk;luck;lucioria,Luxor|luxor|EG|32.64|25.7|422|W|el uksur;louxor;luksor,Luzhou|sichuan|CN|105.43|28.89|998|W|lu cou;lo chau,Luziania|goias|BR|-47.95|-16.25|221|W|,Lviv|lviv|UA|24.02|49.84|717|W|leopoli;lwow;leopolo;leopolis;liov;lvov;lwiw;lemberg,Lynchburg|VA|US|-79.14|37.41|79|N|,Lynn|MA|US|-70.95|42.47|92|N|,Lynnwood|WA|US|-122.32|47.82|36|N|,Lynwood|CA|US|-118.21|33.93|71|N|,Lyon|rhone alpes|FR|4.85|45.75|520|W|lione,Lyubertsy|moscow oblast|RU|37.89|55.68|154|W|lioubertsy;liubertsi;liuberti;liubertsy;ljoebertsy;ljubercy;ljubertsy;ljuberzy;lubiercy,Lyublino|moscow|RU|37.76|55.68|172|W|,M'Sila|m sila|DZ|4.54|35.71|132|W|,Ma'anshan|anhui|CN|118.51|31.69|741|W|,Ma On Shan|sha tin|HK|114.24|22.41|215|W|,Mabalacat City|central luzon|PH|120.57|15.22|188|W|mabalacat,Mableton|GA|US|-84.58|33.82|37|N|,Macae|rio de janeiro|BR|-41.78|-22.38|264|W|,Macapa|amapa|BR|-51.07|0.04|512|W|,Macau||MO|113.55|22.2|649|W|ma cao;macao;makao;makau,Maceio|alagoas|BR|-35.74|-9.67|1031|W|macelo,Machala|el oro|EC|-79.96|-3.26|289|W|,Machida|tokyo|JP|139.45|35.54|431|W|,Machilipatnam|andhra pradesh|IN|81.14|16.19|192|W|masulipatao,Machiques|zulia|VE|-72.55|10.06|132|W|,Macon|GA|US|-83.63|32.84|91|N|,Macuspana|MX27|MX|-92.6|17.76|32|N|,Madanapalle|andhra pradesh|IN|78.5|13.55|180|W|,Madera|CA|US|-120.06|36.96|64|N|,Madhurampur Dehri|bihar|IN|84.2|24.97|137|W|,Madhyamgram|west bengal|IN|88.45|22.69|161|W|,Madinah|medina region|SA|39.61|24.47|1300|W|medina;al madinah al munawwarah;medine;medyna,Madinat an Nasr|cairo|EG|31.3|30.07|668|W|,Madinat Hamad|northern|BH|50.51|26.12|133|W|hamad town,Madison|WI|US|-89.4|43.07|280|NW|,Madison|AL|US|-86.75|34.7|46|N|,Madison|MS|US|-90.12|32.46|25|N|,Madison Heights|MI|US|-83.11|42.49|30|N|madison hts,Madiun|east java|ID|111.52|-7.63|202|W|kota madiun,Madrid|madrid|ES|-3.7|40.42|3255|W|madryt,Madrid|cundinamarca|CO|-74.26|4.73|135|W|,Madrid Centro|madrid|ES|-3.7|40.42|149|W|madrid city center,Madurai|tamil nadu|IN|78.12|9.92|1465|W|maduraj,Maebashi|gunma|JP|139.08|36.4|332|W|maebasi,Magdalena Atlicpac|MX15|MX|-98.95|19.37|26|N|,Magdalena Contreras|MX09|MX|-99.21|19.33|238|NW|,Magdalena de Kino|MX26|MX|-110.96|30.63|26|N|,Magdeburg|saxony anhalt|DE|11.63|52.13|244|W|maagdenburg;magdebourg;magdeburgo;magdeburk,Mage|rio de janeiro|BR|-43.04|-22.65|244|W|,Magna|UT|US|-112.1|40.71|26|N|,Magnitogorsk|chelyabinsk|RU|59.01|53.4|413|W|,Magugpo Poblacion|davao region|PH|125.8|7.45|233|W|tagum;tagum city,Mahabad|west azerbaijan|IR|45.72|36.76|168|W|mehabad,Mahajanga|boeny|MG|46.32|-15.72|260|W|,Maharagama|western province|LK|79.93|6.85|195|W|,Mahbubnagar|telangana|IN|77.99|16.74|190|W|,Mahesana|gujarat|IN|72.38|23.6|190|W|,Maheshtala|west bengal|IN|88.25|22.51|448|W|,Mahilyow|mogilev|BY|30.34|53.91|352|W|mahiljou;mogilev;maguilov;mahiliou;mahiljow;mahileu;mogiljow;moguilev;mohylew,Maianga|luanda|AO|13.24|-8.85|727|W|,Maicao|la guajira department|CO|-72.24|11.38|166|W|,Maiduguri|borno state|NG|13.16|11.85|1110|W|,Maijdi|chittagong|BD|91.1|22.87|132|W|,Mainz|rheinland pfalz|DE|8.28|49.98|222|W|magonza;maguncia;mayence;moguncja;moguncia;mohuc;maienta;ments,Maipu|santiago metropolitan|CL|-70.77|-33.51|503|W|,Majie|yunnan|CN|102.64|25.03|131|W|,Makakilo / Kapolei / Honokai Hale|HI|US|-158.1|21.34|46|N|,Makassar|south sulawesi|ID|119.43|-5.15|1474|W|kota makassar;macassar;makasar,Makati City|national capital region|PH|121.03|14.55|510|W|makati,Makhachkala|dagestan|RU|47.5|42.98|596|W|machaczkala;machatjkala;machatschkala;machatsjkala;machackala;mahackala;mahatskala;mahckale;majachkala;makhatchkala;makhatsjkala,Makiki / Lower Punchbowl / Tantalus|HI|US|-157.83|21.32|31|N|,Makiyivka|donetsk|UA|37.93|48.05|338|W|makiejewka;makiivka,Makkah|mecca region|SA|39.83|21.43|1578|W|mecca;la meca;la mecca;la mecque;makkah al mukarramah;meca;mecka;mekka;mekkah;mekke,Makurdi|benue state|NG|8.52|7.73|390|W|,Malabo|bioko norte|GQ|8.78|3.76|155|W|ciudad de malabo;santa isabel,Malabon|national capital region|PH|120.94|14.67|365|W|,Malacca|melaka|MY|102.24|2.2|579|W|malakka;malaca;malaka;melaka,Malaga|andalusia|ES|-4.42|36.72|592|W|,Malakal|upper nile|SS|31.66|9.53|160|W|,Malang|east java|ID|112.63|-7.98|889|W|kabupaten malang;kota malang,Malanje|malanje|AO|16.34|-9.54|455|W|,Malatia-Sebastia|yerevan|AM|44.45|40.17|150|W|,Malatya|malatya|TR|38.32|38.35|750|W|,Malayer|hamadan province|IR|48.82|34.3|170|W|,Malda|west bengal|IN|88.15|25|170|W|english bazar,Malden|MA|US|-71.07|42.43|61|N|,Malegaon|maharashtra|IN|74.53|20.55|481|W|,Maler Kotla|punjab|IN|75.88|30.53|135|W|,Malingao|soccsksargen|PH|124.47|7.16|1121|W|,Malir Cantonment|sindh|PK|67.21|24.94|300|W|,Malkajgiri|telangana|IN|78.53|17.45|150|W|,Mallawi|minya|EG|30.84|27.73|212|W|,Malmoe|skane|SE|13|55.61|362|W|malmo,Malolos|central luzon|PH|120.81|14.84|269|W|malolos city,Maltepe|istanbul|TR|29.16|40.94|427|W|,Malvern|ON|CA|-79.22|43.81|43|N|,Man|montagnes|CI|-7.55|7.41|241|W|,Man'gyongdae-ri|pyongyang|KP|125.66|38.99|321|W|,Manado|north sulawesi|ID|124.85|1.48|458|W|kota manado,Managua|managua department|NI|-86.25|12.13|973|W|,Manama|manama|BH|50.59|26.23|147|W|al manamah;manamah,Manassas|VA|US|-77.48|38.75|41|N|,Manaus|amazonas|BR|-60.02|-3.1|2219|W|manaos,Manchester|england|GB|-2.24|53.48|568|W|,Manchester|NH|US|-71.45|43|110|N|,Manchester|CT|US|-72.52|41.78|30|N|,Mandalay|mandalay region|MM|96.08|21.97|1208|W|mandalaj,Mandaluyong|national capital region|PH|121.04|14.58|425|W|,Mandaluyong City|national capital region|PH|121.04|14.58|465|W|mandaluyong,Mandaue City|central visayas|PH|123.92|10.32|331|W|,Mandsaur|madhya pradesh|IN|75.07|24.07|141|W|,Mandya|karnataka|IN|76.9|12.52|137|W|mandja,Maneah|kindia|GN|-13.42|9.73|194|W|,Mangaluru|karnataka|IN|74.86|12.92|499|W|mangalore,Mango|jharkhand|IN|86.22|22.83|223|W|,Manhattan|NY|US|-73.97|40.78|1487|NW|,Manhattan|KS|US|-96.57|39.18|56|N|,Manhattan Beach|CA|US|-118.41|33.88|35|N|,Manhattan Valley|NY|US|-73.97|40.79|38|N|,Manila|national capital region|PH|120.98|14.6|1600|W|city of manila;manila city;manilla;manille,Manisa|manisa|TR|27.43|38.61|243|W|magnesia ad sipylum;magnesia am sipylos,Manitowoc|WI|US|-87.66|44.09|33|N|,Manizales|caldas department|CO|-75.51|5.07|434|W|,Manjhand|sindh|PK|68.24|25.91|140|W|,Mankato|MN|US|-94.01|44.16|41|N|,Mannheim|baden wurttemberg|DE|8.47|49.49|307|W|,Manokwari|west papua|ID|134.06|-0.86|132|W|,Mansa|luapula province|ZM|28.89|-11.2|170|W|,Mansfield|england|GB|-1.2|53.13|171|W|,Mansfield|TX|US|-97.14|32.56|64|N|,Mansfield|OH|US|-82.52|40.76|46|N|,Mansfield City|CT|US|-72.23|41.77|26|N|,Mansilingan|western visayas|PH|122.98|10.63|454|W|,Manta|manabi|EC|-80.73|-0.95|264|W|manta ecuador,Mantampay|northern mindanao|PH|124.22|8.17|265|W|,Manteca|CA|US|-121.22|37.8|75|N|,Mantilla|havana|CU|-82.34|23.07|206|W|,Manukau City|auckland|NZ|174.88|-36.99|362|W|manukau,Manzanillo|MX08|MX|-104.34|19.12|159|NW|,Maoming|guangdong|CN|110.91|21.67|1307|W|chaozhou;mao ming,Maple Grove|MN|US|-93.46|45.07|68|N|,Maple Ridge|BC|CA|-122.6|49.22|82|N|,Maple Valley|WA|US|-122.05|47.39|25|N|,Maplewood|MN|US|-93|44.95|40|N|,Maplewood|NJ|US|-74.27|40.73|25|N|,Maputo|maputo city|MZ|32.58|-25.97|1254|W|lourenco marques,Mar del Plata|buenos aires|AR|-57.56|-38|593|W|,Mar'ino|moscow|RU|37.72|55.65|243|W|,Maraba|para|BR|-49.13|-5.38|283|W|,Maracaibo|zulia|VE|-71.61|10.64|1752|W|,Maracanau|ceara|BR|-38.63|-3.88|251|W|,Maracay|aragua|VE|-67.59|10.25|464|W|,Maradi|maradi region|NE|7.1|13.5|361|W|,Maragheh|east azerbaijan|IR|46.24|37.39|262|W|,Maragheh|razavi khorasan|IR|59.63|35.83|262|W|,Marana|AZ|US|-111.23|32.44|41|N|,Maravatio de Ocampo|MX16|MX|-100.44|19.89|34|N|,Marawi City|autonomous region in muslim mindanao|PH|124.28|8|259|W|,Marbella|andalusia|ES|-4.89|36.52|156|W|,Marcory|abidjan autonomous district|CI|-3.99|5.31|214|W|,Mardan|khyber pakhtunkhwa|PK|72.05|34.2|300|W|,Marfil|MX11|MX|-101.29|21|29|N|,Marg'ilon|fergana|UZ|71.72|40.47|253|W|margilan,Margate|FL|US|-80.21|26.24|57|N|,Marianao|havana|CU|-82.43|23.07|134|W|,Marica|rio de janeiro|BR|-42.82|-22.92|211|W|,Maricopa|AZ|US|-112.05|33.06|48|N|,Marienthal|hamburg|DE|10.08|53.57|287|W|hamburg marienthal,Marietta|GA|US|-84.55|33.95|59|N|,Marikina City|national capital region|PH|121.11|14.65|471|W|,Marilia|sao paulo|BR|-49.95|-22.21|237|W|,Maringa|parana|BR|-51.94|-23.43|409|W|,Marion|IA|US|-91.6|42.03|37|N|,Marion|OH|US|-83.13|40.59|36|N|,Marion|IN|US|-85.66|40.56|29|N|,Mariupol|donetsk|UA|37.54|47.1|230|W|marioepol;marioupol,Marivan|kurdistan province|IR|46.18|35.52|136|W|,Mariveles|central luzon|PH|120.49|14.43|156|W|,Marka|lower shabeelle|SO|44.77|1.72|230|W|merca,Markham|ON|CA|-79.27|43.87|338|NW|,Marlboro|NJ|US|-74.25|40.32|40|N|,Marlborough|MA|US|-71.55|42.35|39|N|,Marne La Vallee|ile de france|FR|2.64|48.84|318|W|,Maroua|far north|CM|14.32|10.59|314|W|,Marpole|BC|CA|-123.13|49.21|27|N|,Marrakesh|marrakesh safi|MA|-8|31.63|995|W|marrakech;marakes;marrakesch;marrakesz;marraquexe;marrakes,Marrero|LA|US|-90.1|29.9|33|N|,Marsa Matruh|matruh|EG|27.24|31.35|176|W|mersa matruh,Marseille|provence alpes cote d azur|FR|5.38|43.3|877|W|marselha;marsella;marsiglia;marsilia;marsilya;marsylia,Marshalltown|IA|US|-92.91|42.05|27|N|,Martapura|south kalimantan|ID|114.86|-3.41|131|W|,Martinez|CA|US|-122.13|38.02|38|N|,Martinez|GA|US|-82.08|33.52|35|N|,Martinez de la Torre|MX30|MX|-97.06|20.07|60|N|,Marvdasht|fars|IR|52.8|29.87|148|W|,Mary|mary|TM|61.83|37.59|167|W|,Maryland Heights|MO|US|-90.43|38.71|27|N|,Marysville|WA|US|-122.18|48.05|66|N|,Maryvale|AZ|US|-112.18|33.5|208|NW|,Maryville|TN|US|-83.97|35.76|28|N|,Masai|johor|MY|103.88|1.49|141|W|,Masan|gwangju|KR|126.83|35.13|434|W|,Masaya|masaya department|NI|-86.1|11.97|130|W|,Mascouche|QC|CA|-73.6|45.75|34|N|,Maseru|maseru district|LS|27.48|-29.32|359|W|,Mashhad|razavi khorasan|IR|59.61|36.3|2307|W|maschhad;mashad;masyhad;meszhed;mexed;meshed;alexandria;sanaabad,Masina|kinshasa|CD|15.39|-4.38|485|W|,Mason|OH|US|-84.31|39.36|32|N|,Mason City|IA|US|-93.2|43.15|27|N|,Maspeth|NY|US|-73.91|40.72|48|N|,Massillon|OH|US|-81.52|40.8|32|N|,Matadi|bas congo|CD|13.46|-5.84|425|W|,Matamoros|MX07|MX|-103.23|25.53|52|N|,Matanzas|matanzas province|CU|-81.58|23.04|146|W|,Mataram|west nusa tenggara|ID|116.12|-8.58|441|W|kota mataram,Matehuala|MX24|MX|-100.64|23.65|77|N|,Mathura|uttar pradesh|IN|77.67|27.5|330|W|matura,Matola|maputo province|MZ|32.46|-25.96|1198|W|,Matsubara|osaka|JP|135.55|34.57|130|W|,Matsudo|chiba|JP|139.9|35.78|498|W|,Matsue|shimane|JP|133.05|35.48|203|W|macue,Matsumoto|nagano|JP|137.97|36.23|241|W|macumoto,Matsusaka|mie|JP|136.54|34.58|159|W|,Matsuyama|ehime|JP|132.77|33.84|511|W|macujama;matsuyama shi,Mattapan|MA|US|-71.09|42.27|36|N|,Matthews|NC|US|-80.72|35.12|30|N|,Matuga|kwale county|KE|39.57|-4.17|194|W|,Maturin|monagas|VE|-63.18|9.75|647|W|,Mau|uttar pradesh|IN|83.56|25.94|246|W|,Maua|sao paulo|BR|-46.46|-23.67|418|W|,Mauldin|SC|US|-82.31|34.78|25|N|,Mawlamyine|mon|MM|97.63|16.49|438|W|mawlamyaing;moulmein;mulmejn,Maykop|adygeya republic|RU|40.1|44.61|141|W|maikop;majkop,Maywood|CA|US|-118.19|33.99|27|N|,Mazar-e Sharif|balkh|AF|67.11|36.71|523|W|masar e scharif;mazar e charif;mazar i szarif;mazari sharif;mazar e sarif;mezirek i serif,Mazatlan|MX25|MX|-106.42|23.22|381|NW|ciudad mazatlan,Mbandaka|equateur|CD|18.26|0.05|455|W|,Mbanza Kongo|zaire|AO|14.24|-6.27|148|W|mbanza congo,Mbanza-Ngungu|bas congo|CD|14.86|-5.26|142|W|,Mbarara|western region|UG|30.65|-0.6|221|W|,Mbeya|mbeya|TZ|33.45|-8.9|541|W|,Mbour|thies|SN|-16.96|14.42|284|W|,Mbuji-Mayi|east kasai|CD|23.59|-6.14|2101|W|,McAllen|TX|US|-98.23|26.2|140|NW|,McCully - Moiliili|HI|US|-157.83|21.29|28|N|,McHenry|IL|US|-88.27|42.33|26|N|,McKinney|TX|US|-96.62|33.2|162|NW|,McLean|VA|US|-77.18|38.93|48|N|,McMinnville|OR|US|-123.2|45.21|33|N|,Mdantsane|eastern cape|ZA|27.78|-32.93|205|W|,Meadow Woods|FL|US|-81.37|28.39|25|N|,Meads|KY|US|-82.71|38.41|288|NW|,Mechanicsville|VA|US|-77.37|37.61|36|N|,Medan|north sumatra|ID|98.67|3.58|2486|W|kota medan,Medea|medea|DZ|2.75|36.26|145|W|al madijja,Medellin|antioquia|CO|-75.57|6.25|1999|W|medelim,Medford|OR|US|-122.88|42.33|79|N|,Medford|MA|US|-71.11|42.42|57|N|,Medicine Hat|AB|CA|-110.68|50.04|63|N|,Medina|OH|US|-81.86|41.14|26|N|,Medinipur|west bengal|IN|87.32|22.42|153|W|,Meerut|uttar pradesh|IN|77.71|28.98|1223|W|merath,Meguro|tokyo|JP|139.7|35.63|288|W|meguro city,Mehlville|MO|US|-90.32|38.51|28|N|,Meiktila|mandalay region|MM|95.86|20.88|177|W|miktila,Meishan|sichuan|CN|103.84|30.04|1107|W|mej san;mi son,Meizhou|guangdong|CN|116.12|24.29|992|W|mai chau;mej cou,Mejicanos|san salvador department|SV|-89.19|13.72|160|W|,Mek'ele|tigray|ET|39.48|13.5|457|W|macalle;mekelie,Meknes|fes meknes|MA|-5.55|33.89|568|W|,Melbourne|victoria|AU|144.96|-37.81|5435|W|greater melbourne;melbourne city,Melbourne|FL|US|-80.61|28.08|84|N|,Melchor Ocampo|MX15|MX|-99.14|19.7|38|N|,Melitopol|zaporizhzhia|UA|35.38|46.85|148|W|kyzyl yar;melitopoli;novoalexandrovka,Melrose|MA|US|-71.07|42.46|27|N|,Melrose Park|IL|US|-87.86|41.9|25|N|,Memphis|TN|US|-90.05|35.15|633|NW|menfis,Mengzi|yunnan|CN|103.38|23.37|595|W|,Menifee|CA|US|-117.15|33.73|87|N|,Menlo Park|CA|US|-122.18|37.45|33|N|,Menomonee Falls|WI|US|-88.12|43.18|36|N|,Menongue|cubango|AO|17.69|-14.66|251|W|,Mentor|OH|US|-81.34|41.67|46|N|,Mentougou|beijing|CN|116.09|39.94|197|W|,Merced|CA|US|-120.48|37.3|82|N|,Mercer Island|WA|US|-122.22|47.57|25|N|,Mercerville-Hamilton Square|NJ|US|-74.67|40.23|26|N|hamilton square,Mercier-Hochelaga-Maisonneuve|QC|CA|-73.55|45.57|142|NW|,Merida|MX31|MX|-89.62|20.97|1201|NW|,Merida|merida|VE|-71.17|8.58|300|W|,Meriden|CT|US|-72.81|41.54|59|N|,Meridian|ID|US|-116.39|43.61|90|N|,Meridian|MS|US|-88.7|32.36|39|N|,Merkezefendi|denizli|TR|29.04|37.81|280|W|,Merlo|buenos aires|AR|-58.73|-34.67|268|W|,Merrillville|IN|US|-87.33|41.48|35|N|,Merrimack|NH|US|-71.49|42.87|26|N|east merrimack,Merritt Island|FL|US|-80.69|28.36|34|N|,Mersin|mersin|TR|34.64|36.81|537|W|myrte;icel,Mesa|AZ|US|-111.82|33.42|471|NW|,Mesquite|TX|US|-96.6|32.77|144|NW|,Messina|sicily|IT|15.55|38.19|219|W|mesina;messine;mesyna,Mestre|veneto|IT|12.25|45.49|147|W|mestre bei venedig,Metairie|LA|US|-90.15|29.98|138|NW|,Metairie Terrace|LA|US|-90.16|29.98|142|NW|,Metepec|MX15|MX|-99.6|19.26|28|N|municipio metepec;municipio de metepec,Methuen|MA|US|-71.19|42.73|52|N|,Metro|lampung|ID|105.31|-5.11|182|W|kota metro,Metrotown|BC|CA|-123|49.23|52|N|,Mexicali|MX02|MX|-115.45|32.63|1032|NW|,Mexico City|MX09|MX|-99.13|19.43|12294|NW|ciudad de mexico;mexico by;cidade do mexico;citta del messico;ciudad de mejico;meksyk;mexico;mexico d f;mexico stad;mexiko stadt;mexico distrito federal;valle de mexico,Meycauayan|central luzon|PH|120.96|14.74|228|W|kota meycauayan;meycauayan city,Miami|FL|US|-80.19|25.77|487|NW|,Miami Beach|FL|US|-80.13|25.79|92|N|,Miami Gardens|FL|US|-80.25|25.94|113|N|,Miami Lakes|FL|US|-80.31|25.91|30|N|,Mian Channun|punjab|PK|72.36|30.44|140|W|mian channu,Miandoab|west azerbaijan|IR|46.11|36.97|134|W|,Mianyang|sichuan|CN|104.68|31.47|1550|W|mien jang;mien duong,Mianzhu Deyang Sichuan|sichuan|CN|104.22|31.34|510|W|,Miass|chelyabinsk|RU|60.11|55.05|167|W|,Michigan City|IN|US|-86.9|41.71|31|N|,Mid-City|CA|US|-118.36|34.04|83|N|,Middelburg|mpumalanga|ZA|29.46|-25.78|196|W|,Middle River|MD|US|-76.44|39.33|25|N|,Middle Village|NY|US|-73.88|40.72|29|N|,Middlesbrough|england|GB|-1.23|54.58|142|W|,Middletown|NJ|US|-74.12|40.39|65|N|middletown township;municipio de middletown,Middletown|OH|US|-84.4|39.52|48|N|,Middletown|CT|US|-72.65|41.56|46|N|,Middletown|NY|US|-74.42|41.45|27|N|,Midland|TX|US|-102.08|32|132|NW|,Midland|MI|US|-84.25|43.62|42|N|,Midvale|UT|US|-111.9|40.61|32|N|,Midwest City|OK|US|-97.4|35.45|57|N|,Miguel Aleman (La Doce)|MX26|MX|-111.48|28.84|30|N|,Miguel Hidalgo|MX09|MX|-99.2|19.43|372|NW|delegacion miguel hidalgo,Milagro|guayas|EC|-79.59|-2.13|133|W|,Milan|lombardy|IT|9.19|45.46|1371|W|milano;mailand;mediolan;milaan;milao,Milford|CT|US|-73.06|41.22|52|N|,Milford|MA|US|-71.52|42.14|25|N|,Milford Mill|MD|US|-76.77|39.35|29|N|,Mililani Town|HI|US|-158.02|21.45|27|N|,Millcreek|UT|US|-111.88|40.69|62|N|,Milliken|ON|CA|-79.3|43.82|26|N|,Millville|NJ|US|-75.04|39.4|28|N|,Milpitas|CA|US|-121.91|37.43|77|N|,Milton|ON|CA|-79.88|43.52|132|NW|,Milton|GA|US|-84.3|34.13|37|N|,Milton|MA|US|-71.07|42.25|27|N|,Milton Keynes|england|GB|-0.76|52.04|256|W|,Milwaukee|WI|US|-87.91|43.04|563|NW|,Mimico|ON|CA|-79.51|43.62|33|N|,Minamirinkan|kanagawa|JP|139.44|35.5|224|W|,Minatitlan|MX30|MX|-94.56|18|112|N|,Minato|wakayama|JP|135.15|34.22|375|W|,Minato City|tokyo|JP|139.75|35.66|260|W|minato,Mingala Tangnyunt|yangon|MM|96.17|16.79|132|W|,Mingaladon|yangon|MM|96.1|16.92|136|W|,Mingora|khyber pakhtunkhwa|PK|72.36|34.78|361|W|mingaora,Minhang|shanghai|CN|121.37|31.11|2716|W|,Minna|niger state|NG|6.55|9.62|425|W|,Minneapolis|MN|US|-93.26|44.98|410|NW|mineapolis,Minnetonka|MN|US|-93.5|44.91|51|N|,Minnetonka Mills|MN|US|-93.44|44.94|50|N|,Minoh|osaka|JP|135.47|34.83|136|W|,Minot|ND|US|-101.3|48.23|49|N|,Minsk|minsk city|BY|27.57|53.9|1742|W|,Mint Hill|NC|US|-80.65|35.18|25|N|,Minya|minya|EG|30.76|28.09|283|W|,Mira Mesa|CA|US|-117.14|32.92|70|N|,Mirabel|QC|CA|-74.08|45.65|34|N|,Miraflores|lima region|PE|-77.03|-12.11|187|W|san borja,Miramar|FL|US|-80.23|25.99|137|NW|,Miramar|MX28|MX|-97.9|22.36|118|N|,Miri|sarawak|MY|113.99|4.4|300|W|marabu,Mirpur Khas|sindh|PK|69.01|25.53|267|W|,Mirpur Model Thana|dhaka division|BD|90.36|23.81|546|W|,Mirzapur|uttar pradesh|IN|82.57|25.14|220|W|,Misantla|MX30|MX|-96.85|19.93|26|N|,Misato Saitama|saitama|JP|139.88|35.84|142|W|,Mishawaka|IN|US|-86.16|41.66|48|N|,Miskolc|borsod abauj zemplen|HU|20.78|48.1|154|W|miszkolc,Misratah|misratah|LY|15.09|32.38|355|W|al misratah;misrata,Mission|TX|US|-98.33|26.22|83|N|,Mission|BC|CA|-122.3|49.13|41|N|,Mission Bend|TX|US|-95.66|29.69|36|N|,Mission District|CA|US|-122.42|37.76|47|N|,Mission Viejo|CA|US|-117.67|33.6|97|N|,Mississauga|ON|CA|-79.66|43.58|717|NW|,Missoula|MT|US|-113.99|46.87|71|N|,Missouri City|TX|US|-95.54|29.62|74|N|,Mit Ghamr|dakahlia|EG|31.26|30.72|153|W|,Mito|ibaraki|JP|140.45|36.35|270|W|,Mixco|guatemala|GT|-90.61|14.63|465|W|,Mixquiahuala de Juarez|MX13|MX|-99.21|20.23|25|N|,Miyakonojo|miyazaki|JP|131.07|31.73|161|W|,Miyazaki|miyazaki|JP|131.42|31.92|401|W|miyazaki shi;miyazakishi,Mlolongo|machakos county|KE|36.94|-1.4|136|W|,Mobile|AL|US|-88.04|30.69|183|NW|,Mocuba|zambezia province|MZ|36.99|-16.84|196|W|,Modena|emilia romagna|IT|10.93|44.65|184|W|modene,Modesto|CA|US|-121|37.64|211|NW|,Modinagar|uttar pradesh|IN|77.57|28.83|475|W|,Moenchengladbach|north rhine westphalia|DE|6.44|51.19|261|W|monchengladbach,Moga|punjab|IN|75.17|30.81|163|W|,Mogadishu|banaadir|SO|45.34|2.04|2587|W|mogadischu;mogadiscio;mogadiszu;mogadisu;mogadiso,Mogi das Cruzes|sao paulo|BR|-46.19|-23.52|325|W|,Mogi Guacu|sao paulo|BR|-46.95|-22.37|160|W|,Mohali|punjab|IN|76.72|30.68|166|W|,Mohammadpur|rajshahi division|BD|88.53|24.9|527|W|,Mohammedia|casablanca settat|MA|-7.38|33.69|227|W|al muhammadijja;muhammediye;fedala,Mojokerto|east java|ID|112.43|-7.47|141|W|kota mojokerto,Mokotow|mazovia|PL|21.03|52.19|217|W|,Mokpo|jeollanam do|KR|126.39|34.81|268|W|mogpo,Moline|IL|US|-90.52|41.51|42|N|,Mombasa|mombasa county|KE|39.66|-4.05|1208|W|mombassa;mombaca,Monclova|MX07|MX|-101.42|26.91|215|NW|,Moncton|NB|CA|-64.8|46.09|86|N|,Monroe|LA|US|-92.12|32.51|49|N|,Monroe|NC|US|-80.55|34.99|34|N|,Monroeville|PA|US|-79.79|40.42|28|N|,Monrovia|montserrado county|LR|-10.8|6.3|1542|W|monrowia,Monrovia|CA|US|-118|34.15|37|N|,Montclair|NJ|US|-74.21|40.83|39|N|,Montclair|CA|US|-117.69|34.08|38|N|,Montebello|CA|US|-118.11|34.01|63|N|,Montemorelos|MX19|MX|-99.83|25.19|67|N|,Monterey|CA|US|-121.89|36.6|28|N|monterrey,Monterey Park|CA|US|-118.12|34.06|61|N|,Monteria|cordoba|CO|-75.88|8.75|490|W|,Monterrey|MX19|MX|-100.32|25.68|1135|NW|monterrei;monterrey city,Montes Claros|minas gerais|BR|-43.86|-16.73|437|W|,Montevideo|montevideo department|UY|-56.19|-34.9|1270|W|montevideu,Montgomery|AL|US|-86.3|32.37|195|NW|,Montgomery Village|MD|US|-77.2|39.18|32|N|,Montpellier|occitanie|FR|3.88|43.61|248|W|,Montreal|QC|CA|-73.59|45.51|1762|NW|montreal city,Montreal-Nord|QC|CA|-73.63|45.6|86|N|,Monywa|sagaing region|MM|95.14|22.11|182|W|munywa,Moore|OK|US|-97.49|35.34|60|N|,Mooresville|NC|US|-80.81|35.58|36|N|,Moorhead|MN|US|-96.77|46.87|42|N|,Moorpark|CA|US|-118.88|34.29|36|N|,Moose Jaw|SK|CA|-105.53|50.4|33|N|,Mopti|mopti|ML|-4.18|14.48|186|W|,Moradabad|uttar pradesh|IN|78.78|28.84|721|W|,Moratuwa|western province|LK|79.88|6.77|168|W|,Morelia|MX16|MX|-101.18|19.7|743|NW|,Morena|madhya pradesh|IN|78|26.5|200|W|,Moreno|buenos aires|AR|-58.79|-34.63|148|W|,Moreno Valley|CA|US|-117.23|33.94|204|NW|,Morgan Hill|CA|US|-121.65|37.13|42|N|,Morgantown|WV|US|-79.96|39.63|30|N|,Moriguchi|osaka|JP|135.57|34.73|143|W|,Morioka|iwate|JP|141.15|39.7|290|W|,Morningside Heights|NY|US|-73.96|40.81|55|N|,Moro|sindh|PK|68|26.66|142|W|,Morogoro|morogoro|TZ|37.66|-6.82|471|W|,Moroleon|MX11|MX|-101.19|20.13|43|N|,Morris Heights|NY|US|-73.92|40.85|40|N|,Morristown|TN|US|-83.29|36.21|29|N|,Morvi|gujarat|IN|70.84|22.82|210|W|,Moscow|moscow|RU|37.62|55.75|10381|W|moscou;moscova;moscovo;moscu;matxcova;mosca;moskau;moskou;moskova;moskva;moskwa;mat xco va,Moscow|ID|US|-117|46.73|25|N|,Moshi|kilimanjaro|TZ|37.33|-3.35|221|W|,Mossamedes|namibe|AO|12.15|-15.2|255|W|mocamedes;namibe,Mossoro|rio grande do norte|BR|-37.34|-5.19|264|W|,Mostaganem|mostaganem|DZ|0.09|35.93|162|W|mustaghanam,Mostoles|madrid|ES|-3.86|40.32|207|W|,Mosul|nineveh|IQ|43.12|36.34|1683|W|mosoel;mossoul;mossul;musul,Motijheel|dhaka division|BD|90.42|23.73|202|W|,Mott Haven|NY|US|-73.92|40.81|51|N|,Moundou|logone occidental|TD|16.08|8.57|196|W|,Mount Juliet|TN|US|-86.52|36.2|31|N|,Mount Laurel|NJ|US|-74.89|39.93|41|N|,Mount Lebanon|PA|US|-80.05|40.36|32|N|,Mount Olive-Silverstone-Jamestown|ON|CA|-79.59|43.75|32|N|,Mount Pleasant|SC|US|-79.86|32.79|81|N|mt pleasant,Mount Pleasant|DC|US|-77.04|38.93|35|N|ingleside;mount pleasant village;rosemont park;walbridge,Mount Pleasant|BC|CA|-123.1|49.27|33|N|,Mount Pleasant|WI|US|-87.86|42.7|26|N|,Mount Pleasant|MI|US|-84.77|43.6|26|N|mt pleasant,Mount Pleasant West|ON|CA|-79.39|43.7|29|N|,Mount Prospect|IL|US|-87.94|42.07|54|N|,Mount Vernon|NY|US|-73.84|40.91|68|N|,Mount Vernon|WA|US|-122.33|48.42|34|N|,Mountain View|CA|US|-122.08|37.39|80|N|,Moyotzingo|MX21|MX|-98.4|19.25|27|N|,Mpanda|katavi|TZ|31.07|-6.34|204|W|,Mpumalanga|kwazulu natal|ZA|30.64|-29.81|140|W|epumalanga;hammarsdale,Mt Pleasant|BC|CA|-123.1|49.26|32|N|,Mthatha|eastern cape|ZA|28.78|-31.59|164|W|umtata,Mtwara|mtwara|TZ|40.18|-10.27|140|W|,Mu-se|shan state|MM|97.9|24|165|W|,Muar|johor|MY|102.57|2.04|314|W|muar town,Mubi|adamawa|NG|13.27|10.27|225|W|,Mudanjiang|heilongjiang|CN|129.63|44.55|665|W|mu tan tiang,Mueang Nonthaburi|nonthaburi|TH|100.51|13.86|254|W|nonthaburi,Muelheim|north rhine westphalia|DE|6.88|51.43|173|W|mulheim;muelheim an der ruhr;mulheim an der ruhr,Muenster|north rhine westphalia|DE|7.63|51.96|308|W|munster,Mufulira|copperbelt|ZM|28.24|-12.55|169|W|,Mukalla|muhafazat hadramaout|YE|49.12|14.54|594|W|al mukalla;mukala,Mukim Pulai|johor|MY|103.67|1.53|505|W|,Mukono|central region|UG|32.76|0.35|191|W|,Mulenvos|luanda|AO|13.33|-8.87|882|W|,Multan|punjab|PK|71.48|30.2|2169|W|,Mulugu|telangana|IN|79.94|18.19|297|W|,Mumbai|maharashtra|IN|72.88|19.07|12691|W|mumbaj;mumbay;bombay;bombaim;bombaj,Muncie|IN|US|-85.39|40.19|70|N|,Mundelein|IL|US|-88|42.26|31|N|,Munger|bihar|IN|86.47|25.37|213|W|,Munich|bavaria|DE|11.58|48.14|1505|W|munchen;mnichov;monachium;monaco di baviera;muenchen;munique;munih,Muntinlupa|calabarzon|PH|121.05|14.39|552|W|city of muntinlupa,Muratpasa|antalya|TR|30.76|36.89|450|W|,Murcia|murcia|ES|-1.13|37.99|471|W|murcie;murcja,Murfreesboro|TN|US|-86.39|35.85|165|NW|,Muricay|zamboanga peninsula|PH|123.48|7.83|132|W|,Muridke|punjab|PK|74.26|31.8|254|W|muridike,Murmansk|murmansk|RU|33.1|68.97|295|W|moermansk;mourmansk;muurmanski;romanov;romanov on murman;semenova,Murray|UT|US|-111.89|40.67|49|N|,Murrieta|CA|US|-117.21|33.55|109|N|,Murwara|madhya pradesh|IN|80.39|23.84|221|W|,Musaffah|abu dhabi|AE|54.48|24.36|243|W|musaffah city,Musanze|northern province|RW|29.63|-1.5|153|W|ruhengeri,Musashino|tokyo|JP|139.56|35.71|150|W|,Muscat|muscat|OM|58.41|23.58|797|W|mascate;maskat;masqat;muskat,Mushin|lagos|NG|3.35|6.53|199|W|,Muskegon|MI|US|-86.25|43.23|38|N|,Muskogee|OK|US|-95.37|35.75|38|N|,Musoma|mara|TZ|33.8|-1.5|164|W|,Mutare|manicaland|ZW|32.67|-18.97|224|W|,Muzaffarabad|azad kashmir|PK|73.47|34.37|725|W|,Muzaffargarh|punjab|PK|71.19|30.07|235|W|,Muzaffarnagar|uttar pradesh|IN|77.7|29.47|349|W|,Muzaffarpur|bihar|IN|85.39|26.12|354|W|,Mwala|machakos county|KE|37.45|-1.35|181|W|,Mwanza|mwanza|TZ|32.9|-2.52|1104|W|,Mwene|lualaba|CD|22.87|-9.82|295|W|,Mwene-Ditu|lomami|CD|23.45|-7.01|189|W|,My Tho|dong thap|VN|106.36|10.36|270|W|,Myeik|tanintharyi region|MM|98.6|12.44|173|W|mergui,Myingyan|mandalay region|MM|95.39|21.46|141|W|,Mykolayiv|mykolaiv|UA|31.99|46.98|470|W|mikolajow;mykolaiv;nicolopoli;vernoleninsk,Mymensingh|mymensingh division|BD|90.41|24.76|225|W|,Myrtle Beach|SC|US|-78.89|33.69|31|N|,Mysuru|karnataka|IN|76.64|12.3|920|W|maisur;mysore,Mytishchi|moscow oblast|RU|37.73|55.91|160|W|mitischi;mytichtchi;mytischtschi;mytisjtji;mytisjtsji;mytiszczi;mytistsi;mytisci;mitisci;miytisci,Mzuzu|northern region|MW|34.02|-11.47|249|W|,N'dalatando|cuanza norte|AO|14.91|-9.3|161|W|ndalatando,N'Djamena|n djamena|TD|15.04|12.11|1359|W|yamena;indschamina;ndjamena;ndzamena,Naberezhnyye Chelny|tatarstan republic|RU|52.42|55.74|509|W|naberezhnye chelny;naberejnye chelny;nabereschnyje tschelny;naberezjnye tsjelny;nabereznyje tselny;nabereznyje celny;brezhnev,Nablus|west bank|PS|35.25|32.22|130|W|naplouse;shechem;sichem;siquem;sychem,Nacala|nampula|MZ|40.69|-14.56|239|W|cidade de nacala;nacala porto,Nacogdoches|TX|US|-94.66|31.6|33|N|,Nada|hainan|CN|109.58|19.52|256|W|danzhou,Nadiad|gujarat|IN|72.86|22.69|225|W|,Nador|oriental|MA|-2.93|35.17|176|W|,Naga|bicol region|PH|123.18|13.62|174|W|kota naga,Naga|central visayas|PH|123.76|10.21|138|W|city of naga;kota naga;naga city,Nagano|nagano|JP|138.18|36.65|372|W|,Nagaoka|niigata|JP|138.85|37.45|266|W|,Nagar Naluakot|dhaka division|BD|90.77|24.16|273|W|nogor noluakot,Nagareyama|chiba|JP|139.9|35.86|200|W|,Nagarpur|dhaka division|BD|89.88|24.06|238|W|,Nagasaki|nagasaki|JP|129.88|32.75|409|W|nagasaki shi;nagasakishi;nangasaque,Nagercoil|tamil nadu|IN|77.43|8.18|224|W|nagarkoil;nagarkovil,Nagoya|aichi|JP|136.91|35.18|2332|W|nagoia;nagoja;nagoya city;nagoya shi,Nagpur|maharashtra|IN|79.08|21.15|2405|W|,Naha|okinawa|JP|127.68|26.21|317|W|,Naihati|west bengal|IN|88.42|22.89|253|W|,Nairobi|nairobi county|KE|36.82|-1.28|4397|W|,Naivasha|nakuru county|KE|36.43|-0.71|198|W|,Najaf|najaf|IQ|44.35|32.03|482|W|an nadzaf;an najaf;nadjaf;nadschaf;nadzaf;nayaf;necef,Najafabad|isfahan|IR|51.37|32.63|235|W|,Najafgarh|delhi|IN|76.98|28.61|1365|W|,Najran|najran region|SA|44.13|17.49|505|W|necran,Nakano|tokyo|JP|139.67|35.7|344|W|nakano city,Nakhodka|primorye|RU|132.92|42.84|146|W|nachodka;nahodka;najodka;langouwai,Nakuru|nakuru county|KE|36.07|-0.31|570|W|,Nalchik|kabardino balkariya republic|RU|43.62|43.5|239|W|nal chik;naltschik;naltsik;nalcik,Nalgonda|telangana|IN|79.27|17.05|154|W|,Nam GJinh|ninh binh|VN|106.18|20.43|448|W|nam dinh,Namangan|namangan|UZ|71.67|41|713|W|namanga;nemengan,Namp'o|nampo|KP|125.41|38.74|455|W|nampo,Nampa|ID|US|-116.56|43.54|89|N|,Nampula|nampula|MZ|39.27|-15.12|770|W|,Nanaimo|BC|CA|-123.94|49.17|90|N|,Nanchang|jiangxi|CN|115.85|28.68|2357|W|nam xuong;nan cchang,Nanchital de Lazaro Cardenas del Rio|MX30|MX|-94.41|18.07|25|N|villa nanchital,Nanchong|sichuan|CN|106.08|30.8|1858|W|nam sung;nan cchung,Nanchuan|chongqing|CN|107.1|29.15|204|W|,Nanded|maharashtra|IN|77.31|19.16|550|W|,Nandyal|andhra pradesh|IN|78.48|15.48|211|W|,Nangloi Jat|delhi|IN|77.07|28.68|205|W|,Nanjin|chongqing|CN|106.27|29.98|143|W|,Nanjing|jiangsu|CN|118.78|32.06|9314|W|nankin;nam kinh;nanchino;nanquim;nankijn,Nankana Sahib|punjab|PK|73.71|31.45|130|W|,Nanning|guangxi|CN|108.32|22.82|3839|W|nam ninh;nan ning,Nanpiao|liaoning|CN|120.75|41.1|157|W|,Nanping|fujian|CN|118.17|26.64|467|W|nam binh;nan pching,Nanqiao|shanghai|CN|121.45|30.92|361|W|,Nansana|central region|UG|32.53|0.36|532|W|,Nantes|pays de la loire|FR|-1.55|47.22|325|W|,Nantong|jiangsu|CN|120.87|32.03|2273|W|nam thong;nan tchung,Nantou|guangdong|CN|113.29|22.72|130|W|,Nanyang|henan|CN|112.55|33.01|1811|W|nam duong;nan jang,Napa|CA|US|-122.29|38.3|80|N|,Naperville|IL|US|-88.15|41.79|147|NW|,Naples|campania|IT|14.27|40.85|909|W|neapel;napels;napoli;neapol;neapole;napoles,Nara-shi|nara|JP|135.8|34.69|367|W|nara,Narashino|chiba|JP|140.04|35.68|176|W|,Narayanganj|dhaka division|BD|90.5|23.61|223|W|,Narela|delhi|IN|77.09|28.85|800|W|,Narita|chiba|JP|140.32|35.78|132|W|,Narowal|punjab|PK|74.87|32.1|130|W|,Narsingdi|dhaka division|BD|90.72|23.92|281|W|,Nashik|maharashtra|IN|73.79|20|1486|W|,Nashua|NH|US|-71.47|42.77|87|N|,Nashville|TN|US|-86.78|36.17|689|NW|,Nasim Shahr|tehran|IR|51.16|35.57|200|W|,Nasimshahr|tehran|IR|51.16|35.57|200|W|,Nasiriyah|dhi qar|IQ|46.26|31.06|558|W|an nasiriya;nasirijja;nasiriya,Nassau|new providence|BS|-77.34|25.06|227|W|nasau,Natal|rio grande do norte|BR|-35.21|-5.79|896|W|,Natick|MA|US|-71.35|42.28|32|N|,National City|CA|US|-117.1|32.68|61|N|,Natore|rajshahi division|BD|88.99|24.41|369|W|,Naucalpan de Juarez|MX15|MX|-99.24|19.48|834|NW|naucalpan,Naugatuck|CT|US|-73.05|41.49|31|N|,Navarre|FL|US|-86.86|30.4|31|N|,Navegantes|benguela|AO|13.39|-12.59|240|W|,Navi Mumbai|maharashtra|IN|73.02|19.04|2600|W|nova bombaim;new bombay,Navoiy|navoiy region|UZ|65.38|40.08|144|W|navoi;nawoi;nevai,Navojoa|MX26|MX|-109.44|27.07|113|N|,Navolato|MX25|MX|-107.7|24.77|29|N|,Navotas|national capital region|PH|120.95|14.67|249|W|,Navsari|gujarat|IN|72.92|20.94|171|W|,Nawabganj|rajshahi division|BD|88.27|24.59|142|W|,Nawabshah|sindh|PK|68.4|26.24|363|W|,Nay Pyi Taw|nay pyi taw|MM|96.13|19.75|925|W|naipidau;naypyidaw;naypyitaw,Nazarabad|alborz province|IR|50.61|35.95|213|W|,Nazran|ingushetiya republic|RU|44.77|43.23|164|W|nasran,Nazret|oromiya|ET|39.27|8.55|456|W|,Ndola|copperbelt|ZM|28.64|-12.96|627|W|,Near North Side|IL|US|-87.63|41.9|85|N|,Needham|MA|US|-71.23|42.28|28|N|,Neenah|WI|US|-88.46|44.19|25|N|,Negombo|western province|LK|79.84|7.21|137|W|negumbo,Neihu|taiwan|TW|121.59|25.08|274|W|distretto di neihu;district de neihu;distrik neihu;neihu district,Neijiang|sichuan|CN|105.06|29.58|1251|W|nej tiang,Neiva|huila department|CO|-75.28|2.93|357|W|,Nek'emte|oromiya|ET|36.55|9.08|156|W|,Nellore|andhra pradesh|IN|79.99|14.45|547|W|nellur,Nepalgunj|lumbini province|NP|81.62|28.05|166|W|,Nepean|ON|CA|-75.72|45.34|180|NW|,Netanya|central district|IL|34.86|32.33|228|W|netania;netanja,Neue Neustadt|saxony anhalt|DE|11.63|52.15|226|W|,Neufchatel-Est-Lebourgneuf|QC|CA|-71.34|46.85|37|N|,Neukoelln|state of berlin|DE|13.43|52.48|164|W|neukolln;berlin neukolln,Neuquen|neuquen|AR|-68.06|-38.95|231|W|ciudad de neuquen,Neuss|north rhine westphalia|DE|6.69|51.2|152|W|,Nevinnomyssk|stavropol kray|RU|41.94|44.63|134|W|nevinnomissk;newinnomyssk;niewinnomyssk,New Albany|IN|US|-85.82|38.29|36|N|,New Bedford|MA|US|-70.93|41.64|101|N|,New Berlin|WI|US|-88.11|42.98|39|N|,New Bern|NC|US|-77.04|35.11|30|N|,New Braunfels|TX|US|-98.12|29.7|70|N|,New Britain|CT|US|-72.78|41.66|72|N|,New Brunswick|NJ|US|-74.45|40.49|57|N|nuevo brunswick,New Cairo|cairo|EG|31.47|30.03|313|W|,New City|IL|US|-87.66|41.81|40|N|,New City|NY|US|-73.99|41.15|33|N|,New Delhi|delhi|IN|77.21|28.62|317|W|neu delhi;nova deli;nove dilli;nueva delhi;nuova delhi;yeni delhi,New Haven|CT|US|-72.93|41.31|130|NW|,New Iberia|LA|US|-91.82|30|30|N|la nouvelle iberie;nueva iberia,New Kingston|saint andrew parish|JM|-76.78|18.01|583|W|,New Lenox|IL|US|-87.97|41.51|25|N|,New London|CT|US|-72.1|41.36|27|N|,New Orleans|LA|US|-90.08|29.95|362|NW|nova orleaes;nowy orlean;nueva orleans;new orleans louisiana;la nouvelle orleans,New Rochelle|NY|US|-73.78|40.91|79|N|nouvelle rochelle;nueva rochelle,New South Memphis|TN|US|-90.06|35.09|641|NW|,New Taipei City|taipei|TW|121.46|25.06|4004|W|new taipei;neu taipeh;nieuw taipei;nouveau taipei;nova taipe;nova tchaj pej;nowe tajpej;nueva taipei;nuova taipei;xinbei city;yeni taipei,New Territories||HK|114.11|22.42|3984|W|new territory hong kong,New Westminster|BC|CA|-122.91|49.21|78|N|new westminister,New York City|NY|US|-74.01|40.71|8804|NW|new york;nueva york;kota new york;new york kenti;nova iorque;nowy jork;nuova york,Newark|NJ|US|-74.17|40.74|281|NW|,Newark|OH|US|-82.4|40.06|47|N|,Newark|CA|US|-122.04|37.53|45|N|,Newark|DE|US|-75.75|39.68|33|N|,Newburgh|NY|US|-74.01|41.5|28|N|,Newcastle|new south wales|AU|151.78|-32.93|508|W|,Newcastle|kwazulu natal|ZA|29.93|-27.76|404|W|,Newcastle upon Tyne|england|GB|-1.61|54.97|300|W|newcastle;newcastle tren song tyne;newcastle on tyne,Newington|CT|US|-72.72|41.7|30|N|,Newmarket|ON|CA|-79.47|44.05|91|N|,Newnan|GA|US|-84.8|33.38|37|N|,Newport|wales|GB|-3|51.59|161|W|,Newport Beach|CA|US|-117.93|33.62|87|N|,Newport News|VA|US|-76.43|36.98|186|NW|,Newton|BC|CA|-122.85|49.13|159|NW|surrey newton,Newton|MA|US|-71.21|42.34|88|N|,Neyagawa|osaka|JP|135.63|34.77|238|W|,Neyshabur|razavi khorasan|IR|58.8|36.21|220|W|nichapur;nischapur;nishapur,Neyveli|tamil nadu|IN|79.5|11.61|179|W|,Ngaoundere|adamaoua|CM|13.58|7.33|238|W|ngaundere,Nghi Son|thanh hoa province|VN|105.82|19.33|302|W|,Nha Trang|khanh hoa|VN|109.19|12.25|579|W|,NIA Valencia|northern mindanao|PH|125.09|7.91|223|W|kota valencia;valencia city,Niagara|ON|CA|-79.41|43.64|31|N|,Niagara Falls|ON|CA|-79.07|43.1|99|N|cataratas del niagara;chutes niagara,Niagara Falls|NY|US|-79.06|43.09|48|N|,Niamey|niamey|NE|2.11|13.51|1323|W|,Nianbo|qinghai|CN|102.42|36.48|260|W|haidong,Nice|provence alpes cote d azur|FR|7.27|43.7|342|W|niza;nicea;nisa;nizza,Nicholasville|KY|US|-84.57|37.88|29|N|,Nicolas Romero|MX15|MX|-99.31|19.64|281|NW|ciudad nicolas romero,Nicosia|nicosia|CY|33.35|35.17|200|W|lefkosa;nikosia;lefkosia;nicosie;nikozja;nikosie,Nigel|gauteng|ZA|28.48|-26.43|140|W|,Niigata|niigata|JP|139.04|37.92|797|W|,Niiza|saitama|JP|139.56|35.82|166|W|,Nijmegen|gelderland|NL|5.85|51.84|177|W|nimwegen;nimega;nimegue,Niles|IL|US|-87.8|42.02|29|N|,Nilopolis|rio de janeiro|BR|-43.41|-22.81|155|W|,Niluefer|bursa province|TR|28.92|40.21|536|W|nilufer,Nimes|occitanie|FR|4.36|43.84|148|W|,Ning'er|yunnan|CN|101.04|23.04|162|W|,Ningbo|zhejiang|CN|121.55|29.88|3731|W|ninh ba,Ningde|fujian|CN|119.52|26.66|429|W|ningteh,Ninh Hoa|khanh hoa|VN|109.12|12.49|230|W|,Nis|central serbia|RS|21.9|43.32|250|W|nisz,Nishi-Tokyo-shi|tokyo|JP|139.54|35.73|207|W|,Nishinomiya|hyogo|JP|135.33|34.72|485|W|,Nishio|aichi|JP|137.05|34.87|169|W|,Niteroi|rio de janeiro|BR|-43.1|-22.88|515|W|,Nizamabad|telangana|IN|78.1|18.67|311|W|,Nizhnekamsk|tatarstan republic|RU|51.82|55.64|234|W|nijnekamsk;nischnekamsk;nizjnekamsk;nizniekamsk;niznekamsk;tubenkama;tuban kama,Nizhnevartovsk|khanty mansia|RU|76.55|60.93|244|W|nijnevartovsk;nischnewartowsk;nizjnevartovsk;nizniewartowsk;niznevartovsk,Nizhniy Novgorod|nizhny novgorod oblast|RU|44|56.33|1259|W|nijni novgorod;nischni nowgorod;nizhny novgorod;nizhni novgorod;nizjnij novgorod;nizni novgorod;gorkij,Nizhny Tagil|sverdlovsk oblast|RU|59.97|57.92|381|W|nizjnij tagil,Njeru|central region|UG|33.18|0.44|178|W|,Nkongsamba|littoral|CM|9.94|4.95|162|W|,Nnewi|anambra|NG|6.92|6.02|193|W|,Noblesville|IN|US|-86.01|40.05|59|N|,Noda|chiba|JP|139.87|35.95|154|W|noda shi,Nogales|MX26|MX|-110.94|31.31|264|NW|heroica nogales;los nogales,Noida|uttar pradesh|IN|77.33|28.58|293|W|,Nong Chok|bangkok|TH|100.86|13.86|157|W|,Nong Khaem|bangkok|TH|100.35|13.71|150|W|,Nor Nork|yerevan|AM|44.57|40.2|137|W|,Norco|CA|US|-117.55|33.93|26|N|,Norfolk|VA|US|-76.29|36.85|238|NW|,Norfolk County|ON|CA|-80.38|42.83|60|N|,Norilsk|krasnoyarsk krai|RU|88.2|69.35|140|W|noril sk;norylsk,Normal|IL|US|-88.99|40.51|54|N|,Norman|OK|US|-97.44|35.22|128|N|,Norristown|PA|US|-75.34|40.12|34|N|,North Andover|MA|US|-71.14|42.7|28|N|,North Bay|ON|CA|-79.47|46.32|50|N|,North Bel Air|MD|US|-76.35|39.54|33|N|,North Bergen|NJ|US|-74.01|40.8|63|N|,North Bethesda|MD|US|-77.12|39.04|43|N|,North Brunswick|NJ|US|-74.48|40.45|43|N|,North Center|IL|US|-87.68|41.95|34|N|,North Charleston|SC|US|-79.97|32.85|108|N|,North Chicago|IL|US|-87.84|42.33|29|N|,North Chicopee|MA|US|-72.6|42.18|55|N|,North Cowichan|BC|CA|-123.69|48.84|29|N|,North Creek|WA|US|-122.18|47.82|26|N|,North Delta|BC|CA|-122.92|49.17|60|N|nord delta,North Fort Myers|FL|US|-81.88|26.67|39|N|n ft myers,North Highlands|CA|US|-121.37|38.69|42|N|,North Hills|CA|US|-118.48|34.24|56|N|,North Hollywood|CA|US|-118.38|34.17|64|N|lankershim;toluca,North Kingstown|RI|US|-71.47|41.55|28|N|n kingstown,North La Crosse|WI|US|-91.25|43.85|50|N|,North Las Vegas|NV|US|-115.12|36.2|234|NW|,North Lauderdale|FL|US|-80.23|26.22|43|N|n lauderdale,North Lawndale|IL|US|-87.72|41.86|35|N|,North Little Rock|AR|US|-92.27|34.77|66|N|,North Miami|FL|US|-80.19|25.89|62|N|,North Miami Beach|FL|US|-80.16|25.93|43|N|,North Olmsted|OH|US|-81.92|41.42|32|N|,North Peoria|IL|US|-89.58|40.72|113|N|,North Port|FL|US|-82.24|27.04|62|N|,North Providence|RI|US|-71.47|41.85|33|N|,North Richland Hills|TX|US|-97.23|32.83|69|N|,North Ridgeville|OH|US|-82.02|41.39|32|N|,North Royalton|OH|US|-81.72|41.31|30|N|n royalton,North Shore|auckland|NZ|174.75|-36.8|258|W|,North Stamford|CT|US|-73.54|41.14|121|N|,North Tonawanda|NY|US|-78.86|43.04|30|N|,North Vancouver|BC|CA|-123.07|49.32|88|N|vancouver utara,Northampton|england|GB|-0.88|52.25|245|W|,Northampton|MA|US|-72.64|42.33|28|N|,Northbrook|IL|US|-87.83|42.13|33|N|,Northglenn|CO|US|-104.99|39.89|39|N|,Northridge|CA|US|-118.54|34.23|68|N|,Norwalk|CA|US|-118.08|33.9|107|N|,Norwalk|CT|US|-73.41|41.12|88|N|,Norwich|england|GB|1.3|52.63|143|W|,Norwich|CT|US|-72.08|41.52|39|N|,Norwood|MA|US|-71.2|42.19|28|N|,Norzagaray|central luzon|PH|121.05|14.91|140|W|,Nossa Senhora do Socorro|sergipe|BR|-37.13|-10.86|204|W|,Notre-Dame-de-Grace|QC|CA|-73.61|45.48|68|N|,Nottingham|england|GB|-1.15|52.95|323|W|,Nou Barris|catalonia|ES|2.18|41.44|166|W|distrito nou barris;distrito de nou barris,Nouadhibou|dakhlet nouadhibou|MR|-17.04|20.94|146|W|nawazibu;nouadibou;nuadibu;port etienne,Nouakchott||MR|-15.98|18.09|1184|W|nawakszut;nuakchot;nuaksot;nuaksott,Nova Friburgo|rio de janeiro|BR|-42.53|-22.28|189|W|nueva friburgo,Nova Iguacu|rio de janeiro|BR|-43.45|-22.76|843|W|,Nova Vida|luanda|AO|13.22|-8.91|464|W|,Novato|CA|US|-122.57|38.11|55|N|,Novi|MI|US|-83.48|42.48|58|N|,Novi Sad|vojvodina|RS|19.84|45.25|215|W|nowy sad;neusatz,Novo Hamburgo|rio grande do sul|BR|-51.13|-29.68|253|W|,Novocherkassk|rostov|RU|40.09|47.42|166|W|novotcherkassk;novotjerkassk;novotsjerkassk;novotserkassk;novocerkassk;nowoczerkask;nowotscherkassk,Novokuznetsk|kuzbass|RU|87.14|53.76|539|W|novokoeznetsk;novokouznetsk;novokusnetsk;novokuzneck;novokuznetk;nowokusnezk;nowokuznieck,Novomoskovsk|tula oblast|RU|38.29|54.01|130|W|nowomoskowsk,Novorossiysk|krasnodar krai|RU|37.76|44.73|241|W|novorossijsk;novorossiejsk;noworossijsk;noworosyjsk,Novosibirsk|novosibirsk oblast|RU|82.93|55.02|1612|W|novossibirsk;nowosibirsk;nowosybirsk;novo nikolaevsk;novonikolayevsk,Novozavodskyi|chernihiv oblast|UA|31.26|51.49|179|W|novozavodskyi raion;novozavodskyi rayon,Novyye Kuz'minki|moscow|RU|37.75|55.7|143|W|,Nowrangapur|odisha|IN|82.55|19.23|1220|W|,Nueva Italia de Ruiz|MX16|MX|-102.09|19.02|32|N|,Nueva Rosita|MX07|MX|-101.22|27.94|38|N|,Nuevo Casas Grandes|MX06|MX|-107.91|30.42|55|N|,Nuevo Laredo|MX28|MX|-99.52|27.48|416|NW|novo laredo,Nuevo Mexico|MX14|MX|-103.44|20.76|28|N|,Nukus|karakalpakstan|UZ|59.61|42.46|332|W|noukous,Numazu|shizuoka|JP|138.87|35.1|189|W|,Nunoa|santiago metropolitan|CL|-70.58|-33.45|255|W|,Nuremberg|bavaria|DE|11.08|49.45|515|W|nurnberg;neurenberg;norimberga;norimberk;norymberga;nuremberga,Nusantara|east kalimantan|ID|116.71|-0.97|147|W|ikn nusantara;ibu kota negara nusantara;nusantara capital city,Nutana Sector|SK|CA|-106.64|52.1|72|N|,Nutley|NJ|US|-74.16|40.82|27|N|,Nyala|southern darfur|SD|24.88|12.05|565|W|niala;nijala,Nyingchi|tibet|CN|94.36|29.65|200|W|,Nyzhnodniprovsk|dnipropetrovsk|UA|35.12|48.48|160|W|nyzhnodniprovsk vuzol,Nzerekore|nzerekore region|GN|-8.82|7.76|226|W|,O'Fallon|MO|US|-90.7|38.81|85|N|,O'Fallon|IL|US|-89.91|38.59|29|N|,Oak Creek|WI|US|-87.86|42.89|35|N|,Oak Forest|IL|US|-87.74|41.6|28|N|,Oak Hill|VA|US|-77.4|38.93|33|N|,Oak Lawn|IL|US|-87.76|41.71|56|N|oaklawn,Oak Park|IL|US|-87.78|41.89|52|N|,Oak Park|MI|US|-83.18|42.46|29|N|,Oak Ridge|TN|US|-84.27|36.01|29|N|,Oakdale|MN|US|-92.96|44.96|28|N|,Oakland|CA|US|-122.27|37.8|419|NW|,Oakland Park|FL|US|-80.13|26.17|44|N|,Oakley|CA|US|-121.71|38|39|N|,Oakton|VA|US|-77.3|38.88|34|N|,Oakville|ON|CA|-79.68|43.45|213|NW|,Oakville|MO|US|-90.3|38.47|36|N|,Oaxaca|MX20|MX|-96.73|17.06|255|NW|oaxaca city;oaxaca by;oaxaca de juarez,Obalende|lagos|NG|3.42|6.45|342|W|,Oberhausen|north rhine westphalia|DE|6.86|51.48|219|W|,Obihiro|hokkaido|JP|143.2|42.92|166|W|,Obolon|kyiv city|UA|30.51|50.51|239|W|obolonskyi raion;obolonskyi rayon;obolonskyy raion;obolonskyy rayon,Obuase|ashanti|GH|-1.67|6.2|179|W|obuasi,Ocala|FL|US|-82.14|29.19|58|N|,Oceanside|CA|US|-117.38|33.2|175|NW|,Oceanside|NY|US|-73.64|40.64|32|N|,Ocoee|FL|US|-81.54|28.57|43|N|,Ocosingo|MX05|MX|-92.09|16.91|41|N|,Ocotlan|MX14|MX|-102.77|20.35|83|N|,Ocoyoacac|MX15|MX|-99.46|19.27|26|N|,Ocozocoautla de Espinosa|MX05|MX|-93.37|16.76|39|N|la ventosa,Ocumare del Tuy|miranda|VE|-66.78|10.12|166|W|ocumare,Odawara|kanagawa|JP|139.16|35.26|188|W|,Odense|south denmark|DK|10.39|55.4|180|W|ottensee,Odenton|MD|US|-76.7|39.08|37|N|,Odesa|odesa|UA|30.74|46.49|1010|W|odessa;khadjibey,Odessa|TX|US|-102.37|31.85|114|N|,Odintsovo|moscow oblast|RU|37.28|55.67|137|W|odincovo;odincowo;odinzowo;odintovo,OErebro|orebro|SE|15.21|59.27|155|W|orebro,Ogaki|gifu|JP|136.62|35.35|161|W|,Ogbomoso|oyo state|NG|4.24|8.13|433|W|,Ogden|UT|US|-111.97|41.22|85|N|,Oildale|CA|US|-119.02|35.42|32|N|,Oita|oita|JP|131.6|33.23|477|W|oita shi;oitashi,Ojinaga|MX06|MX|-104.54|29.57|28|N|,Ojo de Agua|MX15|MX|-99.01|19.68|386|NW|,Okanagan Mission|BC|CA|-119.48|49.82|38|N|,Okara|punjab|PK|73.45|30.81|533|W|,Okayama|okayama|JP|133.93|34.65|724|W|okajama,Okazaki|aichi|JP|137.17|34.95|384|W|,Okene|kogi state|NG|6.24|7.55|479|W|,Okinawa|okinawa|JP|127.8|26.34|142|W|,Oklahoma City|OK|US|-97.52|35.47|681|NW|kota oklahoma;okla city,Okotoks|AB|CA|-113.98|50.73|30|N|,Okrika|rivers state|NG|7.08|4.74|133|W|,Olathe|KS|US|-94.82|38.88|134|NW|,Oldenburg|lower saxony|DE|8.21|53.14|159|W|oldemburgo;oldenbourg;oldenburgo,Oldham|england|GB|-2.12|53.54|237|W|,Olinda|pernambuco|BR|-34.86|-8.01|364|W|,Olive Branch|MS|US|-89.83|34.96|36|N|,Olmaliq|tashkent region|UZ|69.6|40.84|133|W|almalyk;almalik,Olney|PA|US|-75.12|40.04|39|N|mccartersville,Olney|MD|US|-77.07|39.15|33|N|,Olongapo|central luzon|PH|120.28|14.83|221|W|kota olongapo;olongapo city,Olsztyn|warmia masuria|PL|20.49|53.78|169|W|olstyn;allenstein,Olympia|WA|US|-122.9|47.04|55|N|,Omaha|NE|US|-95.94|41.26|486|NW|,Omdurman|khartoum|SD|32.48|15.64|1849|W|omdourman;umm durman,Ome|tokyo|JP|139.24|35.78|133|W|oume,Omsk|omsk oblast|RU|73.37|54.99|1172|W|omsc,Omuta|fukuoka|JP|130.45|33.03|131|W|,Ondo|ondo state|NG|4.84|7.09|375|W|,Ongata Rongai|kajiado county|KE|36.76|-1.4|172|W|,Ongole|andhra pradesh|IN|80.04|15.5|208|W|,Onitsha|anambra|NG|6.79|6.15|1553|W|,Onomichi|hiroshima|JP|133.2|34.42|131|W|onomici,Ontario|CA|US|-117.65|34.06|171|NW|,Ooty|tamil nadu|IN|76.7|11.41|233|W|ootacamund;udagamandalam;udhagamandalam;utakamand,Opelika|AL|US|-85.38|32.65|29|N|,Opportunity|WA|US|-117.24|47.65|25|N|,Oradea|bihor county|RO|21.92|47.05|183|W|grosswardein;gran varadino;oradea mare;oradia;velky varadin,Orai|uttar pradesh|IN|79.45|25.99|158|W|,Oral|west kazakhstan|KZ|51.43|51.25|330|W|oural;uralsk;ural sk,Oran|oran|DZ|-0.64|35.7|803|W|orano;ora,Orange|CA|US|-117.85|33.79|140|NW|,Orange|NJ|US|-74.23|40.77|34|N|,Orangevale|CA|US|-121.23|38.68|33|N|,Orangeville|ON|CA|-80.1|43.92|30|N|,Orcutt|CA|US|-120.44|34.87|28|N|,Ordos|inner mongolia|CN|109.78|39.61|1940|W|,Ordu|ordu|TR|37.89|40.98|229|W|cotyora,Oregon City|OR|US|-122.61|45.36|35|N|,Orekhovo-Borisovo|moscow|RU|37.73|55.61|144|W|,Orel|oryol oblast|RU|36.08|52.97|303|W|orjol;oryol;orzel,Orem|UT|US|-111.69|40.3|94|N|,Orenburg|orenburg oblast|RU|55.1|51.77|564|W|orenbourg;oremburgo,Orillia|ON|CA|-79.42|44.61|31|N|,Orizaba|MX30|MX|-97.1|18.85|123|N|,Orland Park|IL|US|-87.85|41.63|58|N|,Orlando|FL|US|-81.38|28.54|334|NW|,Orleans|ON|CA|-75.5|45.46|125|N|,Ormoc|eastern visayas|PH|124.61|11.01|238|W|kota ormoc;ormoc city,Ormond Beach|FL|US|-81.06|29.29|40|N|,Oro Valley|AZ|US|-110.97|32.39|45|N|,Orsk|orenburg oblast|RU|58.49|51.23|246|W|,Orumiyeh|west azerbaijan|IR|45.08|37.55|577|W|ourmia;urmia;urmiye,Oruro|oruro|BO|-67.09|-17.97|208|W|,Osaka|osaka|JP|135.5|34.69|2753|W|osaka shi;osaacke,Osan|gyeonggi do|KR|127.07|37.15|238|W|,Osasco|sao paulo|BR|-46.79|-23.53|728|W|,Osh|osh region|KG|72.8|40.53|322|W|och;osch;osj;osz,Oshawa|ON|CA|-78.85|43.9|175|NW|,Oshkosh|WI|US|-88.54|44.02|66|N|,Oshodi|lagos|NG|3.34|6.56|170|W|,Oslo|oslo|NO|10.75|59.91|1082|W|,Osmaniye|osmaniye|TR|36.25|37.07|202|W|,Osnabrueck|lower saxony|DE|8.05|52.27|166|W|osnabruck,Osogbo|osun state|NG|4.56|7.77|645|W|oshogbo,Osorno|los lagos region|CL|-73.13|-40.57|135|W|,Ossining|NY|US|-73.86|41.16|25|N|,Ostrava|moravian silesian region|CZ|18.28|49.83|279|W|mahrisch ostrau;ostrawa,Oswego|IL|US|-88.35|41.68|33|N|,Ota|tokyo|JP|139.72|35.56|748|W|ota ku,Ota|ogun state|NG|3.23|6.69|251|W|,Ota|gunma|JP|139.37|36.3|224|W|,Otsu|shiga|JP|135.87|35|345|W|ocu,Ottawa|ON|CA|-75.7|45.41|1017|NW|otava;aa,Ottawa South|ON|CA|-75.69|45.39|125|N|,Ouagadougou|centre|BF|-1.53|12.37|2415|W|uagadugu;wagadugu,Ouargla|ouargla|DZ|5.33|31.95|169|W|uargla;warkala,Oujda|oriental|MA|-1.91|34.68|539|W|ucda;ujda;wadzda,Oulu|north ostrobothnia|FI|25.47|65.01|216|W|uleaborg,Overbrook|PA|US|-75.24|39.99|32|N|,Overland Park|KS|US|-94.67|38.98|186|NW|,Oviedo|asturias|ES|-5.84|43.36|220|W|,Oviedo|FL|US|-81.21|28.67|38|N|,Owasso|OK|US|-95.85|36.27|34|N|,Owatonna|MN|US|-93.23|44.08|25|N|,Owensboro|KY|US|-87.11|37.77|59|N|,Owerri|imo state|NG|7.03|5.48|545|W|,Owings Mills|MD|US|-76.78|39.42|30|N|,Owo|ondo state|NG|5.59|7.2|276|W|,Oxford|england|GB|-1.26|51.75|162|W|oksford;oxonia;oxnaford,Oxford Circle|PA|US|-75.07|40.05|48|N|,Oxnard|CA|US|-119.18|34.2|207|NW|,Oxon Hill-Glassmanor|MD|US|-76.97|38.8|35|N|,Oyama|tochigi|JP|139.8|36.3|167|W|,Oyo|oyo state|NG|3.93|7.85|736|W|oio,Ozone Park|NY|US|-73.84|40.68|53|N|,Paarl|western cape|ZA|18.98|-33.73|236|W|,Pabellon de Arteaga|MX01|MX|-102.28|22.15|28|N|,Pabna|rajshahi division|BD|89.24|24.01|186|W|,Pachuca de Soto|MX13|MX|-98.73|20.12|256|NW|pachuca,Pacifica|CA|US|-122.49|37.61|39|N|,Paco do Lumiar|maranhao|BR|-44.11|-2.53|155|W|,Padalarang|west java|ID|107.47|-6.84|193|W|,Padang|west sumatra|ID|100.35|-0.95|942|W|kota padang,Padangsidempuan|north sumatra|ID|99.27|1.38|243|W|,Paderborn|north rhine westphalia|DE|8.75|51.72|142|W|,Padua|veneto|IT|11.89|45.41|203|W|padova;padoa;padoue;padwa,Paech'on-up|south hwanghae|KP|126.3|37.99|159|W|,Pagadian|zamboanga peninsula|PH|123.44|7.83|206|W|,Pahrump|NV|US|-115.98|36.21|36|N|,Pak Kret|nonthaburi|TH|100.5|13.91|190|W|,Pakdasht|tehran|IR|51.68|35.48|236|W|,Palakkad|kerala|IN|76.65|10.77|132|W|palakkat,Palangkaraya|central kalimantan|ID|113.92|-2.21|318|W|kota palangka raya;palangka raya,Palanpur|gujarat|IN|72.44|24.17|141|W|,Palatine|IL|US|-88.03|42.11|69|N|,Palembang|south sumatra|ID|104.75|-2.92|1801|W|kota palembang;palimbao,Palenque|MX05|MX|-91.98|17.51|42|N|ruinas de palenque,Palermo|sicily|IT|13.36|38.12|648|W|palerme;palermu,Palhoca|santa catarina|BR|-48.67|-27.65|222|W|,Pali|rajasthan|IN|73.32|25.77|230|W|,Pallabi|dhaka division|BD|90.37|23.82|597|W|,Pallavaram|tamil nadu|IN|80.15|12.97|233|W|,Palm Bay|FL|US|-80.59|28.03|119|N|,Palm Beach Gardens|FL|US|-80.14|26.82|52|N|,Palm Coast|FL|US|-81.21|29.58|82|N|,Palm Desert|CA|US|-116.38|33.72|51|N|,Palm Harbor|FL|US|-82.76|28.08|57|N|,Palm Springs|CA|US|-116.55|33.83|47|N|,Palma|balearic islands|ES|2.65|39.57|438|W|palma de mallorca;palma de maiorca;palma di maiorca,Palmas|tocantins|BR|-48.33|-10.17|306|W|,Palmdale|CA|US|-118.12|34.58|158|NW|,Palmira|valle del cauca department|CO|-76.3|3.54|312|W|,Palo Alto|CA|US|-122.14|37.44|66|N|,Palopo|south sulawesi|ID|120.2|-2.99|184|W|,Paltan|dhaka division|BD|90.41|23.74|184|W|,Palu|central sulawesi|ID|119.87|-0.91|389|W|kabupaten poso;kota palu,Palwal|haryana|IN|77.33|28.14|131|W|,Pamplona|navarre|ES|-1.64|42.82|208|W|pampeluna;pampelune,Pamulang|west java|ID|106.74|-6.34|174|W|,Panabo|davao region|PH|125.68|7.31|211|W|panabo city,Panalanoy|eastern visayas|PH|125.01|11.25|189|W|,Panama City|panama|PA|-79.52|8.99|408|W|panama;ciudad de panama;panama by;panama stadt;panama stad,Panama City|FL|US|-85.66|30.16|38|N|,Panchkula|haryana|IN|76.85|30.69|211|W|panchkula urban estate,Pandi|central luzon|PH|120.96|14.87|162|W|,Pangkalpinang|bangka belitung islands|ID|106.11|-2.13|226|W|,Panguila|bengo|AO|13.45|-8.69|158|W|,Panihati|west bengal|IN|88.37|22.69|378|W|,Panipat|haryana|IN|76.97|29.39|295|W|,Panjin|liaoning|CN|122.07|41.12|1166|W|,Panorama Hills|AB|CA|-114.08|51.15|25|N|,Panshan|liaoning|CN|122.05|41.19|625|W|,Panuco|MX30|MX|-98.18|22.05|40|N|,Panvel|maharashtra|IN|73.11|18.99|195|W|,Panzhihua|sichuan|CN|101.71|26.59|787|W|,Papantla de Olarte|MX30|MX|-97.32|20.45|53|N|,Par Naogaon|rajshahi division|BD|88.95|24.8|192|W|naogaon,Paracho de Verduzco|MX16|MX|-102.05|19.65|37|N|,Paradise|NV|US|-115.15|36.1|223|NW|,Paradise|CA|US|-121.62|39.76|26|N|,Paragould|AR|US|-90.5|36.06|27|N|,Paraiso|MX27|MX|-93.21|18.4|86|N|,Parakou|borgou|BJ|2.63|9.34|255|W|,Paramaribo|paramaribo district|SR|-55.17|5.87|223|W|,Paramount|CA|US|-118.16|33.89|55|N|,Paramus|NJ|US|-74.08|40.94|26|N|,Parana|entre rios|AR|-60.53|-31.73|247|W|,Paranagua|parana|BR|-48.53|-25.52|150|W|,Paranaque City|national capital region|PH|121.02|14.48|703|W|,Parauapebas|para|BR|-49.9|-6.07|305|W|,Parbhani|maharashtra|IN|76.77|19.27|307|W|,Parc-Extension|QC|CA|-73.63|45.53|33|N|,Parelheiros|sao paulo|BR|-46.73|-23.83|153|W|,Parepare|south sulawesi|ID|119.63|-4.01|160|W|,Paris|ile de france|FR|2.35|48.85|2138|W|parijs;pa ri;parigi;pariisi;paryz;pariz,Paris 11 Popincourt|ile de france|FR|2.38|48.86|138|W|,Paris 11e Arrondissement|ile de france|FR|2.38|48.86|144|W|,Paris 12 Reuilly|ile de france|FR|2.39|48.84|138|W|,Paris 12e Arrondissement|ile de france|FR|2.44|48.84|140|W|,Paris 13 Gobelins|ile de france|FR|2.36|48.83|181|W|,Paris 13e Arrondissement|ile de france|FR|2.36|48.83|177|W|,Paris 14 Observatoire|ile de france|FR|2.33|48.83|136|W|,Paris 15 Vaugirard|ile de france|FR|2.3|48.84|229|W|,Paris 16 Passy|ile de france|FR|2.28|48.86|159|W|,Paris 17 Batignolles-Monceau|ile de france|FR|2.32|48.88|159|W|,Paris 18 Buttes-Montmartre|ile de france|FR|2.34|48.89|183|W|,Paris 19 Buttes-Chaumont|ile de france|FR|2.38|48.88|178|W|,Paris 20 Menilmontant|ile de france|FR|2.4|48.86|185|W|,Park Ridge|IL|US|-87.84|42.01|37|N|,Park Slope|NY|US|-73.99|40.67|65|N|,Parkchester|NY|US|-73.86|40.84|65|N|,Parker|CO|US|-104.76|39.52|49|N|,Parkersburg|WV|US|-81.56|39.27|30|N|,Parkland|WA|US|-122.43|47.16|35|N|,Parkland|FL|US|-80.24|26.31|30|N|,Parkville|MD|US|-76.54|39.38|30|N|,Parkwoods-Donalda|ON|CA|-79.33|43.76|34|N|,Parma|emilia romagna|IT|10.33|44.8|198|W|parme,Parma|OH|US|-81.72|41.4|79|N|,Parnaiba|piaui|BR|-41.78|-2.9|170|W|,Parnamirim|rio grande do norte|BR|-35.26|-5.92|271|W|,Parras de la Fuente|MX07|MX|-102.18|25.44|33|N|,Parsippany|NJ|US|-74.43|40.86|51|N|,Pasadena|TX|US|-95.21|29.69|153|NW|,Pasadena|CA|US|-118.14|34.15|142|NW|,Pasarkemis|west java|ID|106.53|-6.17|263|W|,Pasay|national capital region|PH|121|14.54|416|W|,Pasco|WA|US|-119.1|46.24|69|N|,Pasig City|national capital region|PH|121.06|14.59|853|W|pasig,Pasir Gudang|johor|MY|103.91|1.46|534|W|,Pasir Mas|kelantan|MY|102.14|6.05|230|W|,Pasir Puteh|kelantan|MY|102.4|5.83|137|W|,Paso Robles|CA|US|-120.69|35.63|27|N|el paso de robles,Passaic|NJ|US|-74.13|40.86|71|N|,Passo Fundo|rio grande do sul|BR|-52.41|-28.26|214|W|,Pasto|narino|CO|-77.28|1.21|392|W|,Pasuruan|east java|ID|112.91|-7.65|213|W|kota pasuruan;pasoeroean,Patan|bagmati province|NP|85.31|27.68|299|W|lalitpur,Patan|gujarat|IN|72.13|23.85|133|W|,Paterson|NJ|US|-74.17|40.92|147|NW|,Pathankot|punjab|IN|75.65|32.27|174|W|,Pathein|ayeyarwady|MM|94.73|16.78|237|W|basejn,Patiala|punjab|IN|76.39|30.34|446|W|,Patna|bihar|IN|85.14|25.59|1684|W|,Patos de Minas|minas gerais|BR|-46.52|-18.58|159|W|,Patra|west greece|GR|21.74|38.25|168|W|patrai;patras;patrasso,Patzcuaro|MX16|MX|-101.61|19.51|55|N|,Paulista|pernambuco|BR|-34.87|-7.94|342|W|,Pavlodar|pavlodar region|KZ|76.97|52.28|329|W|pawlodar,Pawtucket|RI|US|-71.38|41.88|71|N|,Paya Terubong|penang|MY|100.28|5.37|226|W|,Payakumbuh|west sumatra|ID|100.63|-0.22|139|W|kota payakumbuh,Peabody|MA|US|-70.93|42.53|52|N|,Peachtree City|GA|US|-84.6|33.4|35|N|,Peachtree Corners|GA|US|-84.22|33.97|40|N|,Pearl|MS|US|-90.13|32.27|26|N|,Pearl City|HI|US|-157.98|21.4|47|N|,Pearland|TX|US|-95.29|29.56|108|N|,Pecs|baranya|HU|18.23|46.08|145|W|cinquechiese;funfkirchen;pecz,Pedreira|sao paulo|BR|-46.65|-23.71|163|W|,Peicheng|jiangsu|CN|116.92|34.74|195|W|,Pekalongan|central java|ID|109.68|-6.89|324|W|kota pekalongan,Pekanbaru|riau|ID|101.44|0.52|1167|W|kota pekanbaru;pakanbaru,Pekin|IL|US|-89.64|40.57|33|N|,Pelentong|johor|MY|103.82|1.52|583|W|,Pelotas|rio grande do sul|BR|-52.34|-31.77|336|W|,Pemalang|central java|ID|109.38|-6.89|184|W|,Pematangsiantar|north sumatra|ID|99.07|2.96|279|W|,Pemba|cabo delgado province|MZ|40.52|-12.97|232|W|,Pembroke Pines|FL|US|-80.22|26|166|NW|,Penalolen|santiago metropolitan|CL|-70.53|-33.47|241|W|,Pengpu|shanghai|CN|121.44|31.29|152|W|,Pengze|jiangxi|CN|116.55|29.9|350|W|,Penjamo|MX11|MX|-101.72|20.43|40|N|,Penn Hills|PA|US|-79.84|40.5|44|N|,Pennsauken|NJ|US|-75.06|39.96|36|N|,Pennsport|PA|US|-75.15|39.93|26|N|,Pensacola|FL|US|-87.22|30.42|53|N|pensacola i florida,Penticton|BC|CA|-119.59|49.48|33|N|,Penza|penza oblast|RU|45.01|53.2|523|W|pensa,Peoria|AZ|US|-112.24|33.58|190|NW|,Peoria|IL|US|-89.59|40.69|115|N|,Perbaungan|north sumatra|ID|98.96|3.57|157|W|,Percut|north sumatra|ID|98.86|3.63|311|W|,Pereira|risaralda department|CO|-75.69|4.81|467|W|,Peristeri|attica|GR|23.69|38.02|139|W|peristerion,Perm|perm krai|RU|56.25|58.01|982|W|molotov,Perote|MX30|MX|-97.24|19.56|37|N|,Perris|CA|US|-117.23|33.78|74|N|,Perry Hall|MD|US|-76.46|39.41|28|N|,Perth|western australia|AU|115.86|-31.95|2384|W|,Perth Amboy|NJ|US|-74.27|40.51|52|N|,Pervouralsk|sverdlovsk oblast|RU|59.94|56.91|133|W|perwouralsk,Peshawar|khyber pakhtunkhwa|PK|71.58|34.01|4758|W|peschawar;pesjawar;peszawar;pexauar;pesaver;pesavar,Pest|budapest|HU|19.08|47.5|1001|W|pesta;peste;peszt,Petah Tiqva|central district|IL|34.89|32.09|253|W|petah tikva;mulebbis;petach tikva;petach tikwa;petah tikwah;petah tiqwa;petaj tikva;pethah tiqva,Petaling Jaya|selangor|MY|101.61|3.11|807|W|,Petaluma|CA|US|-122.64|38.23|60|N|,Petapa|guatemala|GT|-90.56|14.5|135|W|,Petare|miranda|VE|-66.81|10.48|364|W|,Peterborough|england|GB|-0.25|52.57|163|W|,Peterborough|ON|CA|-78.32|44.3|85|N|,Petersburg|VA|US|-77.4|37.23|32|N|,Petionville|ouest|HT|-72.29|18.51|376|W|,Petrogradka|st petersburg|RU|30.31|59.97|130|W|,Petrolina|pernambuco|BR|-40.5|-9.4|418|W|,Petropavl|north kazakhstan|KZ|69.15|54.87|200|W|kizilyar;petropawl;pietropawlowsk,Petropavlovsk-Kamchatsky|kamchatka|RU|158.63|53.06|181|W|petropavlovsk kamchatskiy;petropavlovsk kamciatki;petropavlovsk kamchatski;petropavlovsk kamtchatski;petropavlovsk kamtjatskij;petropavlovsk kamtsjatski;petropavlovsk kamtsatski;petropavlovsk kamcatski;petropavlovsk kamcatskij;pietropawlowsk kamczacki,Petropolis|rio de janeiro|BR|-43.18|-22.5|294|W|,Petrozavodsk|karelia|RU|34.35|61.78|279|W|petroskoi;petrosavodsk;petrosawodsk;petroskoj;petrozawodzk;pietrozawodsk;aanislinna,Pflugerville|TX|US|-97.62|30.44|57|N|,Phan Rang-Thap Cham|khanh hoa|VN|108.99|11.56|207|W|phan rang,Phan Thiet|lam dong|VN|108.1|10.93|228|W|,Pharr|TX|US|-98.18|26.19|76|N|,Phenix City|AL|US|-85|32.47|37|N|,Philadelphia|PA|US|-75.16|39.95|1573|NW|filadelfia;filadelfie;philadelphie,Phnom Penh|phnom penh|KH|104.92|11.56|1573|W|nom pen;phnompenh;phon phen;pnom pene;pnom penh,Pho Yen|thai nguyen|VN|105.89|21.42|231|W|,Phoenix|AZ|US|-112.07|33.45|1650|NW|,Phra Pradaeng|samut prakan|TH|100.53|13.66|196|W|amphoe phra pradaeng,Phu Ly|ninh binh|VN|105.91|20.55|136|W|,Phu My|ho chi minh city hcmc|VN|107.07|10.63|287|W|,Phu Quoc|an giang|VN|103.97|10.22|294|W|koh trol,Phuc Yen|phu tho|VN|105.7|21.24|180|W|,Phusro|jharkhand|IN|86.01|23.76|185|W|,Pickering|ON|CA|-79.13|43.9|91|N|,Pico Rivera|CA|US|-118.1|33.98|64|N|,Piedecuesta|santander department|CO|-73.05|6.99|163|W|,Piedras Negras|MX07|MX|-100.52|28.7|150|NW|piedrasnegras,Pierrefonds|QC|CA|-73.89|45.46|59|N|,Pierrefonds-Roxboro|QC|CA|-73.84|45.5|73|N|,Pietermaritzburg|kwazulu natal|ZA|30.39|-29.62|839|W|,Pijijiapan|MX05|MX|-93.21|15.69|50|N|,Pikesville|MD|US|-76.72|39.37|30|N|,Pikine|dakar|SN|-17.39|14.76|1170|W|,Pilibhit|uttar pradesh|IN|79.8|28.63|131|W|,Pilsen|plzen region|CZ|13.38|49.75|168|W|plzen;pilzno,Pimpri|maharashtra|IN|73.81|18.62|1284|W|,Pimpri-Chinchwad|maharashtra|IN|73.8|18.62|1727|W|pimpri cincvad,Pinar del Rio|pinar del rio|CU|-83.7|22.42|186|W|,Pindamonhangaba|sao paulo|BR|-45.46|-22.92|172|W|,Pindi Bhattian|punjab|PK|73.27|31.9|493|W|,Pine Bluff|AR|US|-92|34.23|44|N|,Pine Hills|FL|US|-81.45|28.56|60|N|,Pinellas Park|FL|US|-82.7|27.84|51|N|,Pinetown|kwazulu natal|ZA|30.89|-29.82|144|W|,Pingdingshan|henan|CN|113.32|33.73|979|W|pching ting san,Pingdu|shandong|CN|119.95|36.78|542|W|,Pingliang|gansu|CN|106.69|35.54|504|W|binh luong;pching liang,Pingwu County|sichuan|CN|104.53|32.41|180|W|,Pingxiang|jiangxi|CN|113.85|27.62|893|W|binh huong;pching siang,Pinotepa Nacional|MX20|MX|-98.05|16.34|29|N|pinotepa,Piracicaba|sao paulo|BR|-47.65|-22.73|440|W|,Piraeus|attica|GR|23.65|37.94|163|W|el pireo;il pireo;le piree;peiraias;peiraiefs;pire;pireo;pireu;pireus;piraus,Piranshahr|west azerbaijan|IR|45.14|36.7|168|W|khaneh;piranschahr;piranszahr;piransehr,Pirituba|sao paulo|BR|-46.73|-23.49|179|W|,Piscataway|NJ|US|-74.4|40.5|56|N|,Pitalito|huila department|CO|-76.05|1.85|135|W|,Pitesti|arges|RO|24.87|44.85|141|W|piteszt;pitest;pitesk,Pittsburg|CA|US|-121.88|38.03|69|N|,Pittsburgh|PA|US|-80|40.44|304|NW|pitsburgo,Pittsfield|MA|US|-73.25|42.45|43|N|,Piura|piura|PE|-80.66|-5.18|630|W|,Pizhou|jiangsu|CN|117.95|34.31|343|W|,Placentia|CA|US|-117.87|33.87|52|N|,Plainfield|NJ|US|-74.41|40.63|51|N|,Plainfield|IL|US|-88.2|41.63|42|N|,Plainfield|IN|US|-86.4|39.7|30|N|,Plainview|NY|US|-73.47|40.78|26|N|,Planaltina|federal district|BR|-47.65|-15.62|189|W|,Plano|TX|US|-96.7|33.02|283|NW|,Plano Piloto|federal district|BR|-47.88|-15.79|198|W|,Plant City|FL|US|-82.11|28.02|37|N|,Plantation|FL|US|-80.23|26.13|92|N|,Playa del Carmen|MX23|MX|-87.08|20.63|149|NW|,Plaza de la Revolucion|havana|CU|-82.39|23.12|139|W|,Pleasant Grove|UT|US|-111.74|40.36|38|N|pleasant grv,Pleasant Hill|CA|US|-122.06|37.95|34|N|,Pleasanton|CA|US|-121.87|37.66|79|N|,Pleasure Ridge Park|KY|US|-85.86|38.15|25|N|,Ploiesti|prahova|RO|26.02|44.95|180|W|ploeszti,Plovdiv|plovdiv|BG|24.75|42.15|329|W|filibe;filippopoli;plowdiw,Plum|PA|US|-79.75|40.5|27|N|,Plumbon|west java|ID|108.47|-6.71|167|W|,Plymouth|england|GB|-4.14|50.37|260|W|,Plymouth|MN|US|-93.46|45.01|75|N|,Pocatello|ID|US|-112.45|42.87|54|N|,Pocos de Caldas|minas gerais|BR|-46.56|-21.79|172|W|,Podgorica|podgorica|ME|19.26|42.44|236|W|,Podolsk|moscow oblast|RU|37.55|55.42|179|W|,Pohang|gyeongsangbuk do|KR|129.36|36.03|492|W|,Poinciana|FL|US|-81.46|28.14|53|N|,Pointe-Claire|QC|CA|-73.82|45.45|30|N|,Pointe-Noire|pointe noire|CG|11.86|-4.78|1032|W|,Pokhara|gandaki pradesh|NP|83.97|28.27|600|W|,Polanco|MX09|MX|-99.2|19.43|50|N|col polanco;colonia polanco,Polokwane|limpopo|ZA|29.47|-23.9|272|W|pietersburg,Poltava|poltava|UA|34.55|49.59|279|W|poltawa;pultava;baltavar;ltava,Pomona|CA|US|-117.75|34.06|153|NW|,Pompano Beach|FL|US|-80.12|26.24|107|N|,Ponce|ponce|PR|-66.62|18.01|137|W|,Ponta Grossa|parana|BR|-50.16|-25.09|292|W|,Ponte Vedra Beach|FL|US|-81.39|30.24|35|N|,Pontiac|MI|US|-83.29|42.64|59|N|,Pontianak|west kalimantan|ID|109.33|-0.03|686|W|kota pontianak,Poole|england|GB|-1.98|50.71|151|W|,Popayan|cauca department|CO|-76.61|2.44|318|W|,Porbandar|gujarat|IN|69.61|21.64|152|W|,Porlamar|nueva esparta|VE|-63.87|10.96|216|W|,Port Arthur|TX|US|-93.94|29.89|55|N|,Port-au-Prince|ouest|HT|-72.34|18.54|1234|W|porto principe;puerto principe,Port Charlotte|FL|US|-82.09|26.98|54|N|,Port Chester|NY|US|-73.67|41|29|N|,Port Coquitlam|BC|CA|-122.77|49.27|58|N|,Port-de-Paix|nord ouest|HT|-72.83|19.94|306|W|porto da paz,Port-Gentil|ogooue maritime|GA|8.78|-0.72|164|W|mandji,Port Harcourt|rivers state|NG|7.01|4.78|2120|W|,Port Huron|MI|US|-82.42|42.97|29|N|,Port Louis|port louis|MU|57.5|-20.16|155|W|puerto louis,Port Moody|BC|CA|-122.82|49.28|27|N|,Port Moresby|national capital|PG|147.15|-9.48|283|W|puerto moresby,Port Orange|FL|US|-81|29.14|59|N|,Port Richmond|PA|US|-75.1|39.99|27|N|richmond,Port Said|port said|EG|32.3|31.27|780|W|bursaid;porto said;puerto said,Port Saint Lucie|FL|US|-80.35|27.29|164|NW|,Port Sudan|red sea|SD|37.22|19.62|489|W|bur sudan;port soudan;porto sudan;porto sudao;puerto sudan,Portage|MI|US|-85.58|42.2|48|N|,Portage|IN|US|-87.18|41.58|36|N|,Portage Park|IL|US|-87.77|41.96|64|N|,Porterville|CA|US|-119.02|36.07|56|N|,Porticos de San Antonio|MX02|MX|-117.03|32.44|34|N|,Portland|OR|US|-122.68|45.52|652|NW|,Portland|ME|US|-70.26|43.66|66|N|,Porto|porto|PT|-8.61|41.15|252|W|oporto,Porto Alegre|rio grande do sul|BR|-51.23|-30.03|1488|W|puerto alegre,Porto-Novo|oueme|BJ|2.6|6.5|264|W|,Porto Seguro|bahia|BR|-39.06|-16.45|182|W|,Porto Velho|rondonia|BR|-63.9|-8.76|548|W|,Portoviejo|manabi|EC|-80.45|-1.06|321|W|,Portsmouth|england|GB|-1.09|50.8|208|W|,Portsmouth|VA|US|-76.3|36.84|96|N|,Portsmouth Heights|VA|US|-76.37|36.82|99|N|,Posadas|misiones|AR|-55.92|-27.39|305|W|,Post Falls|ID|US|-116.95|47.72|30|N|,Potchefstroom|north west|ZA|27.1|-26.72|178|W|,Potomac|MD|US|-77.21|39.02|44|N|,Potosi|potosi department|BO|-65.75|-19.58|141|W|,Potsdam|brandenburg|DE|13.07|52.4|184|W|poczdam;postupim,Poughkeepsie|NY|US|-73.92|41.7|30|N|,Pouso Alegre|minas gerais|BR|-45.94|-22.23|162|W|,Poway|CA|US|-117.04|32.96|50|N|,Poza Rica de Hidalgo|MX30|MX|-97.46|20.53|185|NW|poza rica,Poznan|greater poland|PL|16.93|52.41|536|W|posen;posnania;possen,Praga Poludnie|mazovia|PL|21.09|52.24|179|W|,Prague|prague|CZ|14.42|50.09|1165|W|praag;prag;praga;praha,Praia|praia|CV|-23.51|14.93|137|W|cidade da praia;municipio da praia,Praia Grande|sao paulo|BR|-46.4|-24.01|367|W|,Prairieville|LA|US|-90.97|30.3|26|N|,Prato|tuscany|IT|11.1|43.88|195|W|,Prattville|AL|US|-86.46|32.46|35|N|,Pravyi Bereh|donetsk|UA|37.59|47.11|352|W|pravyy bereh,Prayagraj|uttar pradesh|IN|81.84|25.44|1073|W|allahabad,Prenzlauer Berg Bezirk|state of berlin|DE|13.42|52.54|148|W|prenzlauer berg,Prescott|AZ|US|-112.47|34.54|41|N|,Prescott Valley|AZ|US|-112.32|34.61|42|N|,Presidente Prudente|sao paulo|BR|-51.39|-22.13|234|W|,Preston|england|GB|-2.7|53.76|313|W|,Pretoria|gauteng|ZA|28.19|-25.74|2112|W|pretorie,Prince Albert|SK|CA|-105.77|53.2|35|N|,Prince Edward|ON|CA|-77.25|44|25|N|prince edward county,Prince George|BC|CA|-122.75|53.92|78|N|,Princeton|FL|US|-80.41|25.54|39|N|,Princeton|NJ|US|-74.66|40.35|29|N|stony brook,Prior Lake|MN|US|-93.42|44.71|25|N|,Probolinggo|east java|ID|113.22|-7.75|243|W|kota probolinggo,Proddatur|andhra pradesh|IN|78.55|14.75|177|W|,Progreso|MX31|MX|-89.66|21.28|37|N|progreso de castro,Prokop'yevsk|kuzbass|RU|86.72|53.92|219|W|prokopjevsk;prokopyevsk;prokopjewsk,Providence|RI|US|-71.41|41.82|190|NW|,Provo|UT|US|-111.66|40.23|115|N|,Pskov|pskov oblast|RU|28.33|57.82|210|W|pihkova;pleskau;pskow,Pu'er|yunnan|CN|100.97|22.79|296|W|,Pucallpa|ucayali|PE|-74.55|-8.38|326|W|,Puchong|selangor|MY|101.62|3|375|W|,Pudong|shanghai|CN|121.5|31.24|5681|W|,Puducherry|puducherry|IN|79.83|11.93|657|W|pondichery;pondicherry;territoire de pondichery;pondicherri,Puebla|MX21|MX|-98.21|19.05|1692|NW|puebla city;puebla de zaragoza;puebla de los angeles,Pueblo|CO|US|-104.61|38.25|109|N|,Pueblo West|CO|US|-104.72|38.35|29|N|,Puente Alto|santiago metropolitan|CL|-70.58|-33.61|568|W|,Puente de Vallecas|madrid|ES|-3.66|40.39|244|W|,Puerto Cabello|carabobo|VE|-68.01|10.47|174|W|,Puerto Cortez|cortes department|HN|-87.93|15.83|142|W|puerto cortes,Puerto Escondido|MX20|MX|-97.07|15.86|29|N|,Puerto La Cruz|anzoategui|VE|-64.63|10.21|370|W|puerto cruz;puerto de la cruz,Puerto Montt|los lagos region|CL|-72.94|-41.47|245|W|port montt,Puerto Penasco|MX26|MX|-113.54|31.32|62|N|,Puerto Plata|puerto plata|DO|-70.69|19.79|146|W|,Puerto Princesa|mimaropa|PH|118.74|9.74|222|W|kota puerto princesa;puerto princesa city,Puerto Vallarta|MX14|MX|-105.23|20.62|224|NW|pto vallarta,Pullman|WA|US|-117.18|46.73|32|N|,Punasa|madhya pradesh|IN|76.39|22.24|350|W|,Pune|maharashtra|IN|73.86|18.52|3124|W|poona,Punggol||SG|103.91|1.41|204|W|,Puning|guangdong|CN|116.17|23.31|874|W|,Punto Fijo|falcon|VE|-70.2|11.69|141|W|,Puqi|hubei|CN|113.88|29.72|132|W|,Puri|odisha|IN|85.82|19.8|200|W|,Purisima de Bustos|MX11|MX|-101.88|21.03|43|N|,Purnia|bihar|IN|87.47|25.78|282|W|,Puruandiro|MX16|MX|-101.52|20.09|30|N|,Purwakarta|west java|ID|107.44|-6.56|179|W|kota purwakarta,Purwodadi|central java|ID|110.92|-7.09|139|W|purwodadi grobogan,Purwokerto|central java|ID|109.23|-7.42|230|W|kota purwokerto,Puthia|rajshahi division|BD|88.83|24.37|159|W|,Putian|fujian|CN|119.01|25.44|1539|W|pchu tchien,Putuo|shanghai|CN|121.39|31.25|1239|W|,Puxi|shanghai|CN|121.47|31.24|6683|W|,Puyallup|WA|US|-122.29|47.19|39|N|,Puyang|zhejiang|CN|119.89|29.46|3590|W|pujiang,Puyang|henan|CN|115.04|35.76|655|W|pchu jang,Pyatigorsk|stavropol kray|RU|43.05|44.05|142|W|piatigorsk;pjatigorsk,Pyay|bago region|MM|95.22|18.82|135|W|prome;pyain,Pyeongtaek|gyeonggi do|KR|127.09|36.99|364|W|pyeongtaek si,Pyongyang|pyongyang|KP|125.75|39.03|3222|W|p yongyang;p yongyang si;pchjongjang;phenian;pionguiangue;pionyang;pjongjang;pyongyang si,Qa'em Shahr|mazandaran|IR|52.87|36.47|204|W|,Qadirpur Ran|punjab|PK|71.67|30.29|200|W|,Qalyub|qalyubia|EG|31.21|30.18|156|W|,Qarchak|tehran|IR|51.58|35.43|251|W|,Qarshi|qashqadaryo|UZ|65.79|38.86|278|W|karchi;karsji;karszy;karsi;qarsi,Qazvin|qazvin province|IR|50|36.27|333|W|kazvin;kazwin,Qeladize|sulaymaniyah|IQ|45.13|36.18|140|W|,Qianjiang|hubei|CN|112.89|30.42|179|W|,Qianjiang|chongqing|CN|108.77|29.53|143|W|,Qibao|shanghai|CN|121.36|31.15|283|W|,Qina|qena|EG|32.73|26.16|252|W|,Qingdao|shandong|CN|120.38|36.06|7172|W|cching tao;tsingtau,Qingpu|shanghai|CN|121.11|31.15|1271|W|,Qingyang|gansu|CN|107.64|35.71|2125|W|,Qingyuan|guangdong|CN|113.03|23.7|1738|W|cching juan,Qingzhou|shandong|CN|118.48|36.7|236|W|,Qinhuangdao|hebei|CN|119.59|39.94|759|W|cchin chuang tao,Qinzhou|guangxi|CN|108.65|21.98|1296|W|kham chau;cchin cou,Qionghai|hainan|CN|110.46|19.24|528|W|,Qiqihar|heilongjiang|CN|123.96|47.34|882|W|cicikar,Qitaihe|heilongjiang|CN|131|45.77|345|W|,Qo'qon|fergana|UZ|70.94|40.53|259|W|kokand,Qods|tehran|IR|51.11|35.72|309|W|,Qom|qom province|IR|50.88|34.64|900|W|kom;kum,Quan Ba|ho chi minh city hcmc|VN|106.69|10.77|220|W|,Quan Bon|ho chi minh city hcmc|VN|106.71|10.77|199|W|,Quan GJuc Thinh||VN|105.74|10.31|132|W|,Quan Muoi|ho chi minh city hcmc|VN|106.67|10.77|399|W|,Quan Muoi Mot|ho chi minh city hcmc|VN|106.64|10.76|332|W|,Quan Nam|ho chi minh city hcmc|VN|106.67|10.76|187|W|,Quan Sau|ho chi minh city hcmc|VN|106.65|10.75|271|W|,Quang Ngai|quang ngai|VN|108.79|15.12|278|W|,Quanzhou|fujian|CN|118.59|24.91|1469|W|cchuan cou;chinchew;chinchu;zayton,Quarto Oggiaro|lombardy|IT|9.14|45.51|182|W|,Quebec|QC|CA|-71.21|46.81|531|NW|kota quebec;quebec city,Queen Creek|AZ|US|-111.63|33.25|34|N|,Queens|NY|US|-73.84|40.68|2316|NW|borough of queens;comte de queens;condado de queens;queens county,Queens Village|NY|US|-73.74|40.73|51|N|,Queensbury|NY|US|-73.61|43.38|27|N|,Queimados|rio de janeiro|BR|-43.56|-22.72|149|W|,Quelimane|zambezia province|MZ|36.89|-17.88|349|W|,Quetta|balochistan|PK|67|30.18|1565|W|ketta;kveta;kweta,Quetzaltenango|quetzaltenango|GT|-91.52|14.84|180|W|,Quevedo|los rios|EC|-79.46|-1.03|213|W|,Quezon City|national capital region|PH|121.05|14.65|3084|W|ciudad quezon;quezon stadt,Qui Nhon|gia lai|VN|109.22|13.78|519|W|quy nhon,Quilicura|santiago metropolitan|CL|-70.71|-33.37|210|W|,Quillacollo|cochabamba|BO|-66.28|-17.39|172|W|,Quilmes|buenos aires|AR|-58.25|-34.72|262|W|,Quilpue|valparaiso|CL|-71.44|-33.05|130|W|,Quincy|MA|US|-71|42.25|93|N|,Quincy|IL|US|-91.41|39.94|40|N|,Quinte West|ON|CA|-77.57|44.18|43|N|,Quito|pichincha|EC|-78.52|-0.23|2781|W|san francisco de quito,Qujing|yunnan|CN|103.78|25.48|1408|W|khuc tinh;cchu ting,Quthbullapur|telangana|IN|78.46|17.5|225|W|,Quzhou|zhejiang|CN|118.87|28.96|902|W|cu chau;cchu cou,Ra's Bayrut|beirut|LB|35.48|33.9|1251|W|,Rabak|white nile|SD|32.74|13.18|135|W|,Rabat|rabat sale kenitra|MA|-6.83|34.01|1655|W|,Rach Gia|an giang|VN|105.08|10.01|459|W|,Racine|WI|US|-87.78|42.73|77|N|,Radnor|PA|US|-75.36|40.05|30|N|,Radom|mazovia|PL|21.15|51.4|226|W|,Raebareli|uttar pradesh|IN|81.23|26.23|186|W|rae bareli,Rafsanjan|kerman|IR|55.99|30.41|147|W|,Rahim Yar Khan|punjab|PK|70.3|28.42|517|W|rahimjar khan;rahimyar khan,Rahway|NJ|US|-74.28|40.61|29|N|,Raichur|karnataka|IN|77.36|16.21|234|W|,Raiganj|west bengal|IN|88.12|25.61|170|W|,Raigarh|chhattisgarh|IN|83.4|21.9|150|W|rajgarh,Raipur|chhattisgarh|IN|81.63|21.23|1027|W|,Raj-Nandgaon|chhattisgarh|IN|81.03|21.1|163|W|,Rajamahendravaram|andhra pradesh|IN|81.78|17.01|376|W|rajahmundry,Rajapalayam|tamil nadu|IN|77.55|9.45|130|W|,Rajkot|gujarat|IN|70.79|22.29|1390|W|radzkot,Rajpur Sonarpur|west bengal|IN|88.43|22.44|424|W|rajpur;sonarpur;sonarpur rajpur,Rajshahi|rajshahi division|BD|88.6|24.37|763|W|,Raleigh|NC|US|-78.64|35.77|482|NW|,Ramadi|anbar|IQ|43.31|33.42|223|W|al ramadi;al rumadi;ar ramadi,Ramagundam|telangana|IN|79.47|18.75|242|W|,Ramat Gan|tel aviv|IL|34.81|32.08|170|W|,Ramenki|moscow|RU|37.5|55.7|130|W|,Ramgundam|telangana|IN|79.45|18.8|452|W|,Ramiros|luanda|AO|13.05|-9.06|323|W|,Ramna Maidan|dhaka division|BD|90.4|23.73|143|W|,Ramos Arizpe|MX07|MX|-100.95|25.54|66|N|,Rampur|uttar pradesh|IN|79.03|28.81|296|W|,Ramsey|MN|US|-93.45|45.26|25|N|,Rancagua|o higgins region|CL|-70.74|-34.17|212|W|,Ranchi|jharkhand|IN|85.31|23.34|1120|W|ranci,Rancho Cordova|CA|US|-121.3|38.59|71|N|,Rancho Cucamonga|CA|US|-117.59|34.11|175|NW|,Rancho Palos Verdes|CA|US|-118.39|33.74|42|N|,Rancho Penasquitos|CA|US|-117.12|32.96|60|N|,Rancho Santa Margarita|CA|US|-117.6|33.64|49|N|,Randallstown|MD|US|-76.8|39.37|32|N|,Randburg|gauteng|ZA|28|-26.09|337|W|rendburg,Randfontein|gauteng|ZA|27.7|-26.18|133|W|,Randolph|MA|US|-71.04|42.16|32|N|,Randolph|NJ|US|-74.58|40.85|25|N|randolph township,Rangel|luanda|AO|13.26|-8.83|190|W|,Rangkasbitung|banten|ID|106.25|-6.36|137|W|,Rangpur|rangpur division|BD|89.25|25.75|1031|W|rangpur city;rongpur,Raniganj|telangana|IN|78.49|17.43|217|W|,Raniganj|west bengal|IN|87.13|23.62|131|W|,Ranipet|tamil nadu|IN|79.33|12.92|264|W|,Rapid City|SD|US|-103.23|44.08|73|N|,Ras Al Khaimah|ras al khaimah|AE|55.94|25.79|351|W|ras el khaimah;ra s al chaima;ras al khaimah city;ras al chajma;ras el kheima;resu l hayme,Rasapudipalem|andhra pradesh|IN|83.32|17.73|1728|W|,Rasht|gilan province|IR|49.59|37.28|594|W|rascht;rasjt;raszt;rast;rest,Ratlam|madhya pradesh|IN|75.04|23.33|264|W|,Raurkela Industrial Township|odisha|IN|84.86|22.2|216|W|,Rawalpindi|punjab|PK|73.05|33.6|3357|W|ravalpindi,Rawang|selangor|MY|101.58|3.32|199|W|,Rawson|san juan|AR|-68.54|-31.58|130|W|,Rayon KTZ|kharkiv|UA|36.37|49.94|200|W|khtz district;khtz settlement;novyy kharkiv;rayon khtz;new kharkiv;novyi kharkiv,Raytown|MO|US|-94.46|39.01|29|N|,Reading|england|GB|-0.97|51.46|318|W|,Reading|PA|US|-75.93|40.34|87|N|,Recife|pernambuco|BR|-34.88|-8.05|1653|W|,Red Deer|AB|CA|-113.8|52.27|100|N|,Redan|GA|US|-84.13|33.75|33|N|,Redding|CA|US|-122.39|40.59|91|N|,Redford|MI|US|-83.3|42.38|49|N|,Redlands|CA|US|-117.18|34.06|71|N|,Redmond|WA|US|-122.12|47.67|60|N|,Redmond|OR|US|-121.17|44.27|28|N|,Redondo Beach|CA|US|-118.39|33.85|68|N|,Redwood City|CA|US|-122.24|37.49|85|N|,Reedley|CA|US|-119.45|36.6|25|N|,Reforma|MX05|MX|-93.15|17.86|26|N|,Regensburg|bavaria|DE|12.1|49.02|151|W|ratisbona;ratisbonne;ratyzbona;regensburgo;rezno,Reggio Calabria|calabria|IT|15.66|38.11|182|W|reggio de calabre;reggio di calabria;regio de calabria,Reggio nell'Emilia|emilia romagna|IT|10.63|44.7|171|W|reggio emilia;reggio d emilie,Regina|SK|CA|-104.62|50.45|226|NW|,Rego Park|NY|US|-73.85|40.73|43|N|,Rehovot|central district|IL|34.81|31.89|149|W|rechovot;rechowot;rejovot,Reims|grand est|FR|4.03|49.27|196|W|remes,Reisterstown|MD|US|-76.83|39.47|25|N|,Renca|santiago metropolitan|CL|-70.71|-33.4|147|W|,Renfrew-Collingwood|BC|CA|-123.04|49.24|51|N|,Rengasdengklok|west java|ID|107.3|-6.16|201|W|,Rennes|brittany|FR|-1.67|48.11|227|W|,Reno|NV|US|-119.81|39.53|264|NW|,Renton|WA|US|-122.22|47.48|100|N|,Repentigny|QC|CA|-73.45|45.74|84|N|,Reseda|CA|US|-118.54|34.2|65|N|,Resende|rio de janeiro|BR|-44.45|-22.47|137|W|,Resistencia|chaco|AR|-58.99|-27.46|290|W|ciudad de resistencia,Reston|VA|US|-77.34|38.97|58|N|,Revere|MA|US|-71.01|42.41|53|N|,Rewa|madhya pradesh|IN|81.29|24.53|235|W|,Rewari|haryana|IN|76.62|28.2|143|W|,Rexburg|ID|US|-111.79|43.83|27|N|,Reynoldsburg|OH|US|-82.81|39.95|37|N|,Reynosa|MX28|MX|-98.28|26.08|589|NW|,Rhawnhurst|PA|US|-75.06|40.06|25|N|,Rialto|CA|US|-117.37|34.11|103|N|,Ribeirao das Neves|minas gerais|BR|-44.09|-19.77|346|W|,Ribeirao Preto|sao paulo|BR|-47.81|-21.18|698|W|ribeirao,Richards Bay|kwazulu natal|ZA|32.04|-28.78|252|W|,Richardson|TX|US|-96.73|32.95|110|N|,Richfield|MN|US|-93.28|44.88|36|N|,Richland|WA|US|-119.28|46.29|54|N|,Richmond|VA|US|-77.46|37.55|226|NW|,Richmond|BC|CA|-123.14|49.17|209|NW|,Richmond|CA|US|-122.35|37.94|109|N|,Richmond|IN|US|-84.89|39.83|35|N|,Richmond|KY|US|-84.29|37.75|33|N|,Richmond Hill|ON|CA|-79.44|43.87|202|NW|,Richmond Hill|NY|US|-73.83|40.7|98|N|,Richmond West|FL|US|-80.43|25.61|35|N|,Ridgecrest|CA|US|-117.67|35.62|28|N|,Ridgewood|NY|US|-73.91|40.7|69|N|,Ridgewood|NJ|US|-74.12|40.98|25|N|,Riga|riga|LV|24.11|56.95|742|W|riika;ryga,Rimini|emilia romagna|IT|12.57|44.06|148|W|,Rimouski|QC|CA|-68.52|48.45|42|N|,Rincon de Romos|MX01|MX|-102.32|22.23|27|N|,Rio Blanco|MX30|MX|-97.16|18.83|40|N|,Rio Branco|acre|BR|-67.81|-9.97|419|W|,Rio Claro|sao paulo|BR|-47.56|-22.41|201|W|,Rio Cuarto|cordoba|AR|-64.35|-33.13|157|W|ciudad de rio cuarto,Rio das Ostras|rio de janeiro|BR|-41.95|-22.53|168|W|,Rio de Janeiro|rio de janeiro|BR|-43.18|-22.91|6747|W|,Rio de Teapa|MX27|MX|-92.9|17.77|26|N|,Rio Grande|rio grande do sul|BR|-52.1|-32.03|198|W|,Rio Grande|MX32|MX|-103.03|23.83|32|N|,Rio Pequeno|sao paulo|BR|-46.76|-23.57|131|W|,Rio Rancho|NM|US|-106.66|35.23|87|N|,Rio Verde|goias|BR|-50.93|-17.8|241|W|,Riobamba|chimborazo province|EC|-78.66|-1.67|264|W|,Riohacha|la guajira department|CO|-72.91|11.54|188|W|rio de la hacha,Rioverde|MX24|MX|-99.99|21.93|53|N|,Rishon LeTsiyyon|central district|IL|34.79|31.97|258|W|rishon leziyyon;rischon lezion;rishon le zion;rishon lezion;rishon letsiyon;rishon lsiyon;rishon le siyon;rishon le ziyon;risjon letsion;riszon le cijjon,Riverside|CA|US|-117.4|33.95|317|NW|,Riverton|UT|US|-111.94|40.52|41|N|,Riverview|FL|US|-82.33|27.87|71|N|,Riviera Beach|FL|US|-80.06|26.78|34|N|,Riviere-des-Prairies-Pointe-aux-Trembles|QC|CA|-73.58|45.64|113|N|,Rivne|rivne oblast|UA|26.24|50.62|243|W|riwne;rowne,Riyadh|riyadh region|SA|46.72|24.69|4205|W|riad;riade;rijad;riyad,Rizhao|shandong|CN|119.53|35.41|661|W|z cao,Roanoke|VA|US|-79.94|37.27|100|N|,Robertsonpet|karnataka|IN|78.28|12.96|162|W|robertson pet,Rochester|NY|US|-77.62|43.15|209|NW|,Rochester|MN|US|-92.47|44.02|112|N|,Rochester|NH|US|-70.98|43.3|30|N|,Rochester Hills|MI|US|-83.15|42.66|73|N|,Rock Forest|QC|CA|-72|45.36|35|N|,Rock Hill|SC|US|-81.03|34.92|71|N|,Rock Island|IL|US|-90.58|41.51|38|N|,Rockford|IL|US|-89.09|42.27|148|NW|,Rocklin|CA|US|-121.24|38.79|61|N|,Rockville|MD|US|-77.15|39.08|66|N|hungerford s tavern;hungerfords;hungerfords tavern;montgomery court house;montgomery courthouse;owen s ordinary;williamsburg;williamsburgh,Rockwall|TX|US|-96.46|32.93|42|N|,Rocky Mount|NC|US|-77.79|35.94|55|N|,Rodriguez|calabarzon|PH|121.2|14.76|134|W|,Rogers|AR|US|-94.12|36.33|63|N|,Rogers Park|IL|US|-87.67|42.01|54|N|,Rohini|delhi|IN|77.07|28.74|860|W|,Rohnert Park|CA|US|-122.7|38.34|42|N|,Rohtak|haryana|IN|76.59|28.89|374|W|,Rome|lazio|IT|12.51|41.89|2318|W|rom;roma;rooma;rzym;rim,Rome|GA|US|-85.16|34.26|36|N|,Rome|NY|US|-75.46|43.21|32|N|roma,Romeoville|IL|US|-88.09|41.65|39|N|,Rondonopolis|mato grosso|BR|-54.64|-16.47|263|W|,Roodepoort|gauteng|ZA|27.87|-26.16|326|W|,Rosario|santa fe|AR|-60.64|-32.95|948|W|,Rosarito|MX02|MX|-117.05|32.36|100|N|rosario;rosarito beach baja,Rosedale|NY|US|-73.74|40.66|25|N|,Rosemead|CA|US|-118.07|34.08|54|N|,Rosemont-La Petite-Patrie|QC|CA|-73.61|45.54|146|NW|,Rosenberg|TX|US|-95.81|29.56|35|N|,Rosetta|beheira|EG|30.42|31.4|301|W|rasyid;resid;roseta;rosette,Roseville|CA|US|-121.29|38.75|130|NW|,Roseville|MI|US|-82.94|42.5|47|N|,Roseville|MN|US|-93.16|45.01|35|N|,Roslindale|MA|US|-71.12|42.29|27|N|,Rostock|mecklenburg vorpommern|DE|12.14|54.09|198|W|,Rostov-on-Don|rostov|RU|39.71|47.22|1130|W|rostov na donu;rostow am don;rostov aan de don;rostov del don;rostov do don;rostov sul don;rostov tren song dong;rostov ved don;rostov pe don;rostov sur le don;rostow nad donem,Roswell|GA|US|-84.36|34.02|94|N|,Roswell|NM|US|-104.52|33.39|48|N|,Rotterdam|south holland|NL|4.48|51.92|868|W|roterdao;roterdam,Rouge|ON|CA|-79.17|43.8|46|N|,Round Lake Beach|IL|US|-88.09|42.37|27|N|,Round Rock|TX|US|-97.68|30.51|115|N|,Rourkela|odisha|IN|84.86|22.22|273|W|,Rowland Heights|CA|US|-117.91|33.98|48|N|,Rowlett|TX|US|-96.56|32.9|60|N|,Roxas City|western visayas|PH|122.75|11.59|185|W|,Roy|UT|US|-112.03|41.16|37|N|,Royal Oak|MI|US|-83.14|42.49|59|N|,Royal Palm Beach|FL|US|-80.23|26.71|37|N|,Rubidoux|CA|US|-117.41|34|34|N|,Rubtsovsk|altai krai|RU|81.21|51.51|161|W|roebtsovsk;roubtsovsk;rubcovsk;rubcowsk;rubzowsk;rubtovsk,Ruda Slaska|silesia|PL|18.86|50.26|146|W|ruda o s,Rudrapur|uttarakhand|IN|79.4|28.98|154|W|,Rufisque|dakar|SN|-17.27|14.72|295|W|,Rufisque est|dakar|SN|-17.27|14.72|221|W|,Rugao|jiangsu|CN|120.58|32.37|257|W|,Rui'an|zhejiang|CN|120.66|27.78|927|W|,Ruiru|kiambu county|KE|36.96|-1.15|490|W|,Ruqi|awdal|SO|43.43|9.97|148|W|,Russeifa|zarqa|JO|36.05|32.02|268|W|ar rusajfa;rusajfa;ruseyfa,Russellville|AR|US|-93.13|35.28|29|N|,Rustenburg|north west|ZA|27.24|-25.67|373|W|rustemburgo,Rutchenkivskyi|donetsk|UA|37.7|47.98|168|W|rutchenkivskyi district;rutchenkivskyi rayon;rutchenkove;kirovskyi;kirovskyi rayon,Rutland|BC|CA|-119.39|49.9|34|N|,Ryazan'|ryazan oblast|RU|39.7|54.63|538|W|rjazan;riazan;rjasan,Rybinsk|yaroslavl oblast|RU|38.84|58.05|216|W|ribinsk,Rybnik|silesia|PL|18.54|50.1|142|W|,Rzeszow|subcarpathia|PL|22|50.04|198|W|resov,'s-Hertogenbosch|north brabant|NL|5.3|51.7|160|W|den bosch;bois le duc;bolduque;boscoducale;hertogenbosch;herzogenbusch,Sa Dec|dong thap|VN|105.76|10.29|214|W|,Saaba|centre|BF|-1.41|12.37|136|W|,Saanich|BC|CA|-123.37|48.55|117|N|,Saarbruecken|saarland|DE|7.01|49.23|182|W|saarbrucken;sarrebruck,Sabadell|catalonia|ES|2.11|41.54|211|W|,Sabah as Salim|mubarak al kabir|KW|48.06|29.26|139|W|sabah al salem,Sabha|sabha district|LY|14.43|27.04|149|W|sebha,Sabinas|MX07|MX|-101.12|27.86|54|N|ciudad sabinas,Sabya|jazan region|SA|42.63|17.15|228|W|,Sabzevar|razavi khorasan|IR|57.68|36.21|243|W|sabzawar;sabzewar;sebzevar,Sacaba|cochabamba|BO|-66.04|-17.4|180|W|,Sacoma|sao paulo|BR|-46.6|-23.63|261|W|,Sacramento|CA|US|-121.49|38.58|524|NW|,Saddiqabad|punjab|PK|70.13|28.31|274|W|,Sadr City|baghdad|IQ|44.46|33.39|1211|W|,Safi|marrakesh safi|MA|-9.24|32.3|336|W|asfi;safim;asafi,Saga|saga|JP|130.3|33.23|233|W|saga shi,Sagamihara|kanagawa|JP|139.24|35.57|720|W|,Saginaw|MI|US|-83.95|43.42|49|N|,Saguenay|QC|CA|-71.07|48.42|148|NW|,Saham|al batinah north|OM|56.89|24.17|140|W|,Saharanpur|uttar pradesh|IN|77.55|29.97|484|W|,Saharsa|bihar|IN|86.6|25.87|156|W|,Sahiwal|punjab|PK|72.33|31.97|538|W|,Sahuarita|AZ|US|-110.96|31.96|25|N|,Sahuayo de Morelos|MX16|MX|-102.72|20.06|64|N|,Sai Mai|bangkok|TH|100.65|13.92|188|W|,Saida|saida|DZ|0.15|34.83|142|W|sa ida,Saidpur|rangpur division|BD|88.89|25.78|199|W|,Saint Charles|MO|US|-90.48|38.78|65|N|st charles,Saint Charles|MD|US|-76.94|38.6|36|N|st charles,Saint Clair Shores|MI|US|-82.89|42.5|59|N|st clair shores;saint clr shores,Saint Cloud|MN|US|-94.16|45.56|65|N|st cloud,Saint Cloud|FL|US|-81.28|28.25|35|N|st cloud,Saint-Constant|QC|CA|-73.57|45.37|27|N|,Saint-Denis|reunion|RE|55.45|-20.88|154|W|saint denis de la reunion;st denis,Saint-Etienne|rhone alpes|FR|4.39|45.43|176|W|st etienne,Saint-Eustache|QC|CA|-73.91|45.56|42|N|,Saint George|UT|US|-113.58|37.1|72|N|st george,Saint-Georges|QC|CA|-70.67|46.11|31|N|,Saint-Hubert|QC|CA|-73.42|45.5|82|N|,Saint-Hyacinthe|QC|CA|-72.96|45.63|50|N|st hyacinthe,Saint-Jean-sur-Richelieu|QC|CA|-73.26|45.31|98|N|,Saint-Jerome|QC|CA|-74|45.78|54|N|,Saint John|NB|CA|-66.06|45.27|71|N|saint jean,Saint Joseph|MO|US|-94.85|39.77|76|N|st joseph,Saint-Laurent|QC|CA|-73.67|45.5|98|N|st laurent,Saint-Leonard|QC|CA|-73.6|45.59|79|N|,Saint-Louis|saint louis|SN|-16.49|16.02|254|W|,Saint-Louis-de-Terrebonne|QC|CA|-73.79|45.7|119|N|,Saint Louis Park|MN|US|-93.35|44.95|45|N|st louis park,Saint-Marc|artibonite|HT|-72.7|19.11|266|W|,Saint-Michel|QC|CA|-73.62|45.57|56|N|,Saint Paul|MN|US|-93.09|44.94|303|NW|st paul,Saint Peters|MO|US|-90.63|38.8|52|N|city of saint peters,Saint Petersburg|st petersburg|RU|30.31|59.94|5351|W|pietari;san petersburgo;st petersburg;petrohrad;saint petersbourg;san pietroburgo;sankt peterburg;sankt petersborg;sankt petersburg;sint petersburg;sao petersburgo;leningrad;leningrado;petrograd;petrogrado,Saint-Quentin-en-Yvelines|ile de france|FR|2.02|48.77|146|W|,Sainte-Foy|QC|CA|-71.29|46.78|111|N|,Sainte-Julie|QC|CA|-73.33|45.58|29|N|,Sainte-Therese|QC|CA|-73.83|45.64|25|N|,Saitama|saitama|JP|139.66|35.91|1324|W|,Sakai|osaka|JP|135.47|34.58|826|W|,Saki|oyo state|NG|3.39|8.67|178|W|,Sakura|chiba|JP|140.23|35.72|173|W|,Salaberry-de-Valleyfield|QC|CA|-74.13|45.25|42|N|,Salalah|dhofar|OM|54.09|17.02|163|W|salala,Salamanca|MX11|MX|-101.2|20.57|160|NW|,Salamanca|madrid|ES|-3.68|40.43|147|W|,Salamanca|castille and leon|ES|-5.66|40.97|144|W|salamanka;salamanque,Salatiga|central java|ID|110.49|-7.33|198|W|,Salavat|bashkortostan republic|RU|55.91|53.38|159|W|salauat;salawat,Sale|rabat sale kenitra|MA|-6.8|34.05|972|W|sala,Sale Al Jadida|rabat sale kenitra|MA|-6.74|34|200|W|,Salem|tamil nadu|IN|78.16|11.65|917|W|selam,Salem|OR|US|-123.04|44.94|175|NW|,Salem|MA|US|-70.9|42.52|42|N|,Salem|NH|US|-71.2|42.79|29|N|,Salem|VA|US|-80.05|37.29|25|N|,Salina|KS|US|-97.61|38.84|47|N|,Salina Cruz|MX20|MX|-95.19|16.18|84|N|,Salinas|CA|US|-121.66|36.68|157|NW|,Salisbury|NC|US|-80.47|35.67|34|N|,Salisbury|MD|US|-75.6|38.36|32|N|,Salt Lake City|UT|US|-111.89|40.76|215|NW|kota salt lake,Salta|salta|AR|-65.42|-24.81|520|W|ciudad de salta,Saltillo|MX07|MX|-100.98|25.43|709|NW|,Saltivka|kharkiv|UA|36.35|50.02|409|W|saltivskyi masyv,Salto|sao paulo|BR|-47.29|-23.2|141|W|,Salvador|bahia|BR|-38.49|-12.98|2711|W|salvador de bahia,Salvatierra|MX11|MX|-100.88|20.22|37|N|,Salzburg|state of salzburg|AT|13.04|47.8|157|W|salcburk;salisburgo;salzbourg;salzburgo,Samalut|minya|EG|30.71|28.31|142|W|,Samambaia|federal district|BR|-48.1|-15.88|218|W|,Samara|samara oblast|RU|50.14|53.21|1163|W|kuibyschew;kuibyshev;kuybyshev,Samarinda|east kalimantan|ID|117.15|-0.49|865|W|kota samarinda,Samarkand|samarqand region|UZ|66.96|39.65|595|W|samarcanda;samarcande;samarkanda;samarqand;semerkant,Samarra'|salah ad din|IQ|43.89|34.2|158|W|,Samba|luanda|AO|13.2|-8.88|364|W|,Sambalpur|odisha|IN|83.98|21.47|189|W|,Sambhal|uttar pradesh|IN|78.57|28.58|196|W|,Sambizanga|luanda|AO|13.28|-8.79|177|W|sambizanha,Sammamish|WA|US|-122.08|47.64|52|N|,Sampit|central kalimantan|ID|112.95|-2.53|166|W|,Samsun|samsun|TR|36.34|41.28|394|W|,Samut Prakan|samut prakan|TH|100.6|13.6|388|W|mueang samut prakan;paknam,San Agustin|MX14|MX|-103.47|20.55|30|N|colonia san agustin,San Andres Cholula|MX21|MX|-98.3|19.05|39|N|,San Andres Tuxtla|MX30|MX|-95.21|18.45|61|N|,San Angelo|TX|US|-100.44|31.46|99|N|,San Antonio|TX|US|-98.49|29.42|1526|NW|,San Bernardino|CA|US|-117.29|34.11|216|NW|,San Bernardino Tlaxcalancingo|MX21|MX|-98.28|19.03|54|N|,San Bernardo|santiago metropolitan|CL|-70.7|-33.59|249|W|,San Blas-Canillejas|madrid|ES|-3.62|40.44|157|W|,San Bruno|CA|US|-122.41|37.63|43|N|,San Buenaventura|MX15|MX|-98.86|19.3|44|N|,San Carlos|CA|US|-122.26|37.51|29|N|,San Clemente|CA|US|-117.61|33.43|65|N|,San Cristobal|tachira|VE|-72.24|7.77|289|W|,San Cristobal|san cristobal|DO|-70.11|18.42|154|W|,San Cristobal de las Casas|MX05|MX|-92.64|16.73|215|NW|san cristobal,San Diego|CA|US|-117.16|32.72|1404|NW|,San Dimas|CA|US|-117.81|34.11|34|N|,San Felipe|yaracuy|VE|-68.74|10.34|206|W|,San Felipe|MX11|MX|-101.22|21.48|28|N|,San Fernando|central luzon|PH|120.68|15.03|251|W|kota san fernando;san fernando city,San Fernando|MX28|MX|-98.15|24.85|29|N|,San Fernando de Apure|apure|VE|-67.47|7.89|229|W|san fernando,San Francisco|CA|US|-122.42|37.77|827|NW|sao francisco,San Francisco Acuautla|MX15|MX|-98.86|19.35|27|N|acuautla,San Francisco del Rincon|MX11|MX|-101.86|21.02|71|N|,San Francisco Tesistan|MX14|MX|-103.48|20.8|62|N|,San Gabriel|CA|US|-118.11|34.1|40|N|sao gabriel,San Isidro|MX15|MX|-98.95|19.34|33|N|,San Jacinto|CA|US|-116.96|33.78|46|N|,San Jeronimo|MX15|MX|-99.59|19.28|26|N|,San Jeronimo Cuatro Vientos|MX15|MX|-98.84|19.29|36|N|,San Jose|CA|US|-121.89|37.34|997|NW|,San Jose|san jose|CR|-84.08|9.93|335|W|,San Jose|mimaropa|PH|121.07|12.35|143|W|,San Jose del Cabo|MX03|MX|-109.7|23.05|136|NW|,San Jose del Castillo|MX14|MX|-103.24|20.51|39|N|,San Jose del Monte|central luzon|PH|121.05|14.81|357|W|kota san jose del monte;san jose del monte city,San Jose Guadalupe Otzacatipan|MX15|MX|-99.59|19.34|31|N|,San Juan|san juan|PR|-66.11|18.47|418|W|,San Juan|national capital region|PH|121.03|14.6|134|W|san juan city,San Juan|TX|US|-98.16|26.19|36|N|,San Juan Capistrano|CA|US|-117.66|33.5|36|N|,San Juan de los Lagos|MX14|MX|-102.33|21.25|48|N|,San Juan de los Morros|guarico|VE|-67.35|9.91|160|W|,San Juan del Rio|MX22|MX|-100|20.39|138|NW|,San Juan Sacatepequez|guatemala|GT|-90.64|14.72|136|W|,San Leandro|CA|US|-122.16|37.72|90|N|,San Lorenzo|central department|PY|-57.51|-25.34|227|W|,San Luis|san luis|AR|-66.32|-33.29|169|W|ciudad de san luis,San Luis|AZ|US|-114.78|32.49|31|N|,San Luis de la Paz|MX11|MX|-100.51|21.3|49|N|,San Luis Obispo|CA|US|-120.66|35.28|47|N|,San Luis Potosi|MX24|MX|-100.97|22.15|722|NW|san luis potosi city,San Luis Rio Colorado|MX26|MX|-114.77|32.46|176|NW|,San Marcos|CA|US|-117.17|33.14|92|N|,San Marcos|TX|US|-97.94|29.88|60|N|,San Martin|piura|PE|-80.67|-5.19|130|W|,San Martin Azcatepec|MX15|MX|-98.97|19.69|35|N|,San Martin Texmelucan de Labastida|MX21|MX|-98.44|19.28|155|NW|san martin texmelucan,San Mateo|calabarzon|PH|121.12|14.7|134|W|,San Mateo|CA|US|-122.33|37.56|103|N|,San Mateo Atenco|MX15|MX|-99.53|19.27|67|N|,San Miguel|san miguel department|SV|-88.18|13.48|247|W|,San Miguel|buenos aires|AR|-58.71|-34.54|168|W|,San Miguel Ajusco|MX09|MX|-99.2|19.22|29|N|,San Miguel de Allende|MX11|MX|-100.74|20.92|174|NW|,San Miguel de Tucuman|tucuman|AR|-65.21|-26.82|548|W|tucuman,San Miguel del Padron|havana|CU|-82.33|23.1|159|W|,San Miguel Topilejo|MX09|MX|-99.14|19.2|34|N|,San Miguelito|panama|PA|-79.47|9.05|321|W|,San Nicolas de los Arroyos|buenos aires|AR|-60.21|-33.33|134|W|san nicolas,San Nicolas de los Garza|MX19|MX|-100.3|25.74|412|NW|san nicolas de los garzas,San Pablo|calabarzon|PH|121.33|14.07|300|W|san pablo city,San Pablo|CA|US|-122.35|37.96|30|N|,San Pablo Autopan|MX15|MX|-99.66|19.36|35|N|,San Pablo de las Salinas|MX15|MX|-99.09|19.67|156|NW|san pablo,San-Pedro|bas sassandra district|CI|-6.64|4.75|390|W|,San Pedro|calabarzon|PH|121.05|14.36|348|W|,San Pedro|CA|US|-118.29|33.74|83|N|san pedro y san pablo,San Pedro|MX07|MX|-102.98|25.76|48|N|san pedro de las colonias,San Pedro de Macoris|san pedro de macoris|DO|-69.31|18.45|217|W|,San Pedro Garza Garcia|MX19|MX|-100.4|25.66|132|NW|garza garcia;san pedro,San Pedro Sula|cortes department|HN|-88.03|15.51|801|W|,San Rafael|CA|US|-122.53|37.97|59|N|sao rafael,San Ramon|CA|US|-121.98|37.78|76|N|,San Salvador|san salvador department|SV|-89.19|13.69|525|W|salvador;san salwador,San Salvador de Jujuy|jujuy|AR|-65.29|-24.19|257|W|,San Salvador Tizatlalli|MX15|MX|-99.59|19.26|61|N|,San Sebastian|basque country|ES|-1.97|43.31|185|W|donostia;la bella easo;saint sebastien;sanse;sao sebastiao,San Sebastian el Grande|MX14|MX|-103.43|20.53|28|N|,San Tan Valley|AZ|US|-111.53|33.19|81|N|,Sanaa|amanat alasimah|YE|44.21|15.35|1937|W|san a;sana;sana a,Sanandaj|kurdistan province|IR|47|35.31|349|W|sanandadsch;sanandadz;sanandij;senendec,Sancaktepe|istanbul|TR|29.23|41|489|W|,Sanctorum|MX21|MX|-98.25|19.1|27|N|,Sandacho|hyogo|JP|135.23|34.88|132|W|,Sandakan|sabah|MY|118.12|5.84|439|W|,Sandusky|OH|US|-82.71|41.45|25|N|,Sandy|UT|US|-111.88|40.59|87|N|sandy city,Sandy Hills|UT|US|-111.85|40.58|89|N|,Sandy Springs|GA|US|-84.38|33.92|105|N|,Sanford|FL|US|-81.27|28.8|58|N|,Sanford|NC|US|-79.18|35.48|29|N|,Sangli|maharashtra|IN|74.56|16.85|601|W|turmeric city,Sanhe|hebei|CN|117.07|39.98|965|W|,Sanhe|chongqing|CN|107.73|29.87|140|W|fengdu xian;fengtuhein,Sanliurfa|sanliurfa|TR|38.79|37.17|449|W|sanli urfa;edesse;edesa;edessa,Sanmenxia|henan|CN|111.19|34.78|669|W|san men sia,Sanming|fujian|CN|117.62|26.25|602|W|san ming;tam minh,Sanshui|guangdong|CN|112.89|23.15|153|W|,Sant Andreu|catalonia|ES|2.19|41.44|142|W|distrito sant andreu,Sant Marti|catalonia|ES|2.2|41.42|235|W|distrito de sant marti,Santa Ana|CA|US|-117.87|33.75|310|NW|,Santa Ana|santa ana department|SV|-89.56|13.99|176|W|,Santa Ana Chiautempan|MX29|MX|-98.19|19.31|48|N|,Santa Anita - Los Ficus|lima region|PE|-76.97|-12.05|184|W|,Santa Barbara|CA|US|-119.7|34.42|91|N|,Santa Barbara d'Oeste|sao paulo|BR|-47.41|-22.75|189|W|,Santa Catarina|MX19|MX|-100.46|25.67|304|NW|ciudad santa catarina,Santa Clara|villa clara province|CU|-79.97|22.41|250|W|,Santa Clara|CA|US|-121.96|37.35|126|N|,Santa Clarita|CA|US|-118.54|34.39|182|NW|,Santa Cruz|CA|US|-122.03|36.97|64|N|,Santa Cruz de la Sierra|santa cruz department|BO|-63.18|-17.79|1831|W|santa cruz;santa cruz da serra,Santa Cruz de Tenerife|canary islands|ES|-16.25|28.47|211|W|tenerife;teneriffa,Santa Cruz do Sul|rio grande do sul|BR|-52.43|-29.72|138|W|,Santa Cruz Xoxocotlan|MX20|MX|-96.74|17.03|67|N|santa cruz;xoxocotlan,Santa Fe|santa fe|AR|-60.71|-31.65|391|W|ciudad de santa fe,Santa Fe|NM|US|-105.94|35.69|87|N|,Santa Isabel|MX02|MX|-115.57|32.63|29|N|,Santa Luzia|minas gerais|BR|-43.85|-19.77|219|W|,Santa Maria|rio grande do sul|BR|-53.81|-29.68|271|W|,Santa Maria|CA|US|-120.44|34.95|105|N|,Santa Maria Chimalhuacan|MX15|MX|-98.95|19.42|70|N|,Santa Marta|magdalena department|CO|-74.19|11.24|499|W|,Santa Monica|CA|US|-118.49|34.02|93|N|,Santa Paula|CA|US|-119.06|34.35|30|N|,Santa Rita|paraiba|BR|-34.98|-7.11|149|W|,Santa Rosa|calabarzon|PH|121.11|14.31|216|W|kota santa rosa;santa rosa city,Santa Rosa|CA|US|-122.71|38.44|178|NW|,Santa Rosa Beach|FL|US|-86.23|30.4|32|N|,Santa Rosalia de Camargo|MX06|MX|-105.17|27.68|40|N|,Santa Teresa|MX15|MX|-99.23|19.84|36|N|,Santa Teresa del Tuy|miranda|VE|-66.66|10.23|278|W|,Santana de Parnaiba|sao paulo|BR|-46.92|-23.44|163|W|,Santander|cantabria|ES|-3.8|43.47|173|W|,Santarem|para|BR|-54.71|-2.44|360|W|,Santee|CA|US|-116.97|32.84|57|N|,Santiago|santiago metropolitan|CL|-70.65|-33.46|4837|W|santiago de chile;santiago del cile;santiago do chile;santiago du chili,Santiago|MX19|MX|-100.15|25.43|36|N|villa de santiago,Santiago de Cuba|santiago de cuba province|CU|-75.82|20.02|555|W|santiago di cuba,Santiago de los Caballeros|santiago province|DO|-70.69|19.45|1200|W|santiago,Santiago de Queretaro|MX22|MX|-100.39|20.59|1594|NW|queretaro city,Santiago de Surco|lima region|PE|-77.01|-12.14|251|W|,Santiago del Estero|santiago del estero|AR|-64.26|-27.8|252|W|,Santiago Papasquiaro|MX10|MX|-105.42|25.04|26|N|,Santiago Teyahualco|MX15|MX|-99.12|19.66|53|N|teyahualco,Santo Andre|sao paulo|BR|-46.54|-23.66|662|W|,Santo Domingo|nacional|DO|-69.89|18.47|2201|W|saint domingue;santo domingo city;ciudad trujillo,Santo Domingo de los Colorados|santo domingo de los tsachilas|EC|-79.18|-0.25|458|W|santo domingo,Santo Domingo Este|santo domingo province|DO|-69.85|18.49|700|W|,Santo Domingo Oeste|santo domingo province|DO|-70|18.5|701|W|,Santo Domingo Tehuantepec|MX20|MX|-95.24|16.32|67|N|,Santol|central luzon|PH|120.57|15.16|298|W|,Santos|sao paulo|BR|-46.33|-23.96|418|W|baixada santista,Sants-Montjuic|catalonia|ES|2.15|41.37|183|W|,Sanya|hainan|CN|109.51|18.25|1031|W|san ja;tam a,Sao Bernardo do Campo|sao paulo|BR|-46.56|-23.69|840|W|,Sao Caetano do Sul|sao paulo|BR|-46.55|-23.62|172|W|,Sao Carlos|sao paulo|BR|-47.89|-22.02|266|W|,Sao Felix do Xingu|para|BR|-51.99|-6.64|132|W|,Sao Joao de Meriti|rio de janeiro|BR|-43.37|-22.8|466|W|,Sao Jose|santa catarina|BR|-48.63|-27.62|295|W|,Sao Jose de Ribamar|maranhao|BR|-44.06|-2.56|259|W|,Sao Jose do Rio Preto|sao paulo|BR|-49.38|-20.82|480|W|rio preto,Sao Jose dos Campos|sao paulo|BR|-45.89|-23.18|727|W|sjcampos;vale paraiba;vale do paraiba,Sao Jose dos Pinhais|parana|BR|-49.21|-25.53|349|W|,Sao Leopoldo|rio grande do sul|BR|-51.15|-29.76|209|W|,Sao Lucas|sao paulo|BR|-46.54|-23.59|138|W|,Sao Luis|maranhao|BR|-44.3|-2.53|917|W|maranham,Sao Mateus|sao paulo|BR|-46.48|-23.61|155|W|,Sao Mateus|espirito santo|BR|-39.86|-18.72|134|W|,Sao Paulo|sao paulo|BR|-46.64|-23.55|12400|W|san paolo;sao paulo capital,Sao Rafael|sao paulo|BR|-46.45|-23.63|148|W|,Sao Vicente|sao paulo|BR|-46.39|-23.96|338|W|,Sapele|delta|NG|5.68|5.89|305|W|,Sapopemba|sao paulo|BR|-46.52|-23.6|266|W|,Sapporo|hokkaido|JP|141.35|43.07|1973|W|sapporo shi;sapporoshi,Sapucaia do Sul|rio grande do sul|BR|-51.15|-29.82|132|W|,Saqqez|kurdistan province|IR|46.27|36.25|165|W|saggiz;saghghez,Sarajevo|federation of b h|BA|18.36|43.85|696|W|sarajewo;saraybosna,Saransk|mordoviya republic|RU|45.17|54.18|318|W|,Sarasota|FL|US|-82.53|27.34|55|N|,Saratoga|CA|US|-122.02|37.26|30|N|,Saratoga Springs|NY|US|-73.78|43.08|27|N|saratoga spgs,Saratoga Springs|UT|US|-111.9|40.35|25|N|,Saratov|saratov oblast|RU|45.99|51.54|844|W|saratow,Sargodha|punjab|PK|72.67|32.09|975|W|,Sarh|moyen chari|TD|18.38|9.15|138|W|,Sari|mazandaran|IR|53.06|36.56|255|W|,Sariwon-si|north hwanghae|KP|125.76|38.51|310|W|sariwon,Sarnia|ON|CA|-82.4|42.98|72|N|,Sarria-Sant Gervasi|catalonia|ES|2.14|41.4|147|W|,Sasaram|bihar|IN|84.02|24.95|147|W|,Sasebo|nagasaki|JP|129.73|33.17|243|W|,Saskatoon|SK|CA|-106.67|52.13|266|NW|,Sasolburg|free state|ZA|27.82|-26.81|135|W|,Satna|madhya pradesh|IN|80.83|24.58|282|W|,Saugor|madhya pradesh|IN|78.74|23.84|274|W|,Saugus|MA|US|-71.01|42.46|26|N|,Sault Ste. Marie|ON|CA|-84.33|46.52|72|N|sault sainte marie,Saurimo|lunda sul|AO|20.39|-9.66|393|W|,Savage|MN|US|-93.34|44.78|30|N|,Savannah|GA|US|-81.1|32.08|147|NW|,Savar|dhaka division|BD|90.25|23.85|286|W|sabhar;savar upazila,Saveh|markazi|IR|50.36|35.02|220|W|,Sawangan|west java|ID|106.77|-6.4|197|W|,Sawtelle|CA|US|-118.45|34.04|39|N|,Sayama|saitama|JP|139.41|35.85|160|W|,Sayreville|NJ|US|-74.36|40.46|44|N|,Sayreville Junction|NJ|US|-74.33|40.47|42|N|,Sayula|MX14|MX|-103.6|19.88|26|N|,Schaerbeek|brussels capital|BE|4.38|50.87|132|W|schaarbeek;schaerbeek schaarbeek,Schaumburg|IL|US|-88.08|42.03|74|N|,Schenectady|NY|US|-73.94|42.81|65|N|,Schererville|IN|US|-87.45|41.48|28|N|,Schertz|TX|US|-98.27|29.55|43|N|,Scottsdale|AZ|US|-111.9|33.51|236|NW|,Scranton|PA|US|-75.66|41.41|77|N|,Seaside|CA|US|-121.85|36.61|33|N|,SeaTac|WA|US|-122.29|47.45|28|N|,Seattle|WA|US|-122.33|47.61|780|NW|,Sector 1|bucharest|RO|26.05|44.49|225|W|,Sector 2|bucharest|RO|26.13|44.45|290|W|,Sector 3|bucharest|RO|26.17|44.42|385|W|,Sector 4|bucharest|RO|26.12|44.38|287|W|,Sector 5|bucharest|RO|26.07|44.39|271|W|,Sector 6|bucharest|RO|26.02|44.44|367|W|,Secunderabad|telangana|IN|78.54|17.5|204|W|,Security-Widefield|CO|US|-104.71|38.75|32|N|,Seeb|muscat|OM|58.19|23.67|470|W|as sib;sib,Segou|segou|ML|-6.26|13.44|205|W|segu,Seguin|TX|US|-97.96|29.57|27|N|,Sejong|sejong si|KR|127.29|36.59|394|W|sedzong;yeongi,Sekondi|western|GH|-1.71|4.93|285|W|,Sekondi-Takoradi|western|GH|-1.76|4.93|138|W|sekondi,Selayang Baru Utara|selangor|MY|101.67|3.25|542|W|,Semarang|central java|ID|110.42|-6.99|1694|W|kota semarang,Semey|abai region|KZ|80.25|50.42|292|W|semei;semej;alash kala;semipalatinsk,Senador Canedo|goias|BR|-49.09|-16.71|175|W|,Sendai|miyagi|JP|140.87|38.27|1096|W|,Sengkang New Town||SG|103.89|1.39|267|W|sengkang,Sennar|sennar|SD|33.57|13.57|130|W|sannar;sinnar,Seogwipo|jeju do|KR|126.56|33.25|178|W|,Seongnam-si|gyeonggi do|KR|127.14|37.44|914|W|seongnam,Seoul|seoul|KR|126.98|37.57|10349|W|seoel;seoul si;seul;soul;hanyang,Sepang|selangor|MY|101.75|2.69|212|W|,Sept-Iles|QC|CA|-66.38|50.2|28|N|,Serang|banten|ID|106.15|-6.12|735|W|kabupaten serang,Serekunda|banjul|GM|-16.68|13.44|340|W|serrekunda,Seremban|negeri sembilan|MY|101.94|2.73|372|W|,Seri Kembangan|selangor|MY|101.72|3.03|130|W|,Serilingampalle|telangana|IN|78.3|17.49|150|W|,Serra|espirito santo|BR|-40.31|-20.13|520|W|,Setagaya|tokyo|JP|139.65|35.64|940|W|setagaya city,Setapak|selangor|MY|101.73|3.21|353|W|,Sete Lagoas|minas gerais|BR|-44.25|-19.47|238|W|,Setia Alam|selangor|MY|101.46|3.1|150|W|,Setif|setif|DZ|5.41|36.19|252|W|sathif;satif,Settat|casablanca settat|MA|-7.62|33|155|W|sattat,Sevastopol|sevastopol city|UA|33.52|44.61|547|W|akyar;sebastopol;sebastopoli;sewastopol;sivastopol,Severn|MD|US|-76.7|39.14|44|N|,Severna Park|MD|US|-76.55|39.07|37|N|,Severnyy|moscow|RU|37.55|55.94|200|W|,Severodvinsk|arkhangelskaya|RU|39.83|64.56|194|W|sewerodwinsk;siewierodwinsk,Sevilla|andalusia|ES|-5.97|37.38|686|W|seville;sevilha;sevilia;sewilla;siviglia,Sewell|NJ|US|-75.14|39.77|37|N|,Sfax|sfax governorate|TN|10.76|34.74|280|W|safakes;safakis,Sha Tin|sha tin|HK|114.18|22.38|495|W|shatin,Shagamu|ogun state|NG|3.65|6.85|214|W|sagamu,Shah Alam|selangor|MY|101.53|3.09|740|W|,Shahin Shahr|isfahan|IR|51.55|32.86|173|W|,Shahjanpur|uttar pradesh|IN|79.91|27.88|320|W|shahjahanpur,Shahkot|punjab|PK|73.49|31.57|244|W|,Shahreza|isfahan|IR|51.86|32.01|134|W|,Shahriar|tehran|IR|51.06|35.66|309|W|,Shahrisabz|qashqadaryo|UZ|66.83|39.06|142|W|chakhrisabz;sachrisabz;sjachrisabz;sehr i sebz;sachrizabz,Shahrud|semnan|IR|54.98|36.42|165|W|emamshahr,Shahuwadi|maharashtra|IN|73.95|16.91|180|W|,Shaker Heights|OH|US|-81.54|41.47|27|N|,Shakhty|rostov|RU|40.22|47.72|221|W|chakhty;schachty;shajty;sjachty;sjakhty;szachty;sahti;sachty;sahty,Shakopee|MN|US|-93.53|44.8|39|N|,Sham Shui Po|sham shui po district|HK|114.16|22.33|431|W|,Shanghai|shanghai|CN|121.46|31.22|24874|W|schanghai;shangai;sjanghai;szanghaj;xangai;sangay;sanghay;sanghaj,Shangluo|shaanxi|CN|109.93|33.87|531|W|,Shangqiu|henan|CN|115.66|34.41|1859|W|,Shangrao|jiangxi|CN|117.94|28.45|1116|W|sang zao,Shangri-La|yunnan|CN|99.71|27.83|186|W|,Shangyu|zhejiang|CN|120.87|30.02|770|W|,Shangzhi|heilongjiang|CN|128|45.21|131|W|,Shanhaiguan|hebei|CN|119.75|40|140|W|,Shantipur|west bengal|IN|88.43|23.25|149|W|,Shantou|guangdong|CN|116.68|23.35|3838|W|san tchou,Shanwei|guangdong|CN|115.35|22.78|491|W|san vi;san wej,Shaoguan|guangdong|CN|113.58|24.8|1028|W|sao kuan,Shaoxing|zhejiang|CN|120.58|30|2300|W|sao sing,Shaoyang|hunan|CN|111.46|27.24|753|W|sao jang,Sharjah|sharjah|AE|55.41|25.33|1800|W|sharjah city;charjah;sarja;schardscha;sharja;szardza;sarika;sardza,Shashamane|oromiya|ET|38.6|7.2|208|W|shashemene,Shawinigan|QC|CA|-72.75|46.57|38|N|,Shawnee|KS|US|-94.72|39.04|65|N|,Shawnee|OK|US|-96.93|35.33|31|N|,Sheboygan|WI|US|-87.71|43.75|48|N|,Sheepshead Bay|NY|US|-73.94|40.59|122|N|,Sheffield|england|GB|-1.47|53.38|556|W|,Shekhupura|punjab|PK|73.99|31.71|591|W|sekhupura,Shelby|MI|US|-83.03|42.67|74|N|,Shelton|CT|US|-73.09|41.32|41|N|,Shengavit|yerevan|AM|44.48|40.16|140|W|,Shenglilu|chongqing|CN|105.88|29.35|134|W|,Shenyang|liaoning|CN|123.43|41.79|7050|W|sen jang,Shenzhen|guangdong|CN|114.07|22.55|17494|W|sen cen,Sherbrooke|QC|CA|-71.9|45.4|129|N|,Sherman|TX|US|-96.61|33.64|40|N|,Sherman Oaks|CA|US|-118.45|34.15|52|N|,Sherwood|AR|US|-92.22|34.82|30|N|,Sherwood Park|AB|CA|-113.32|53.52|70|N|,Shevchenkivskyi|kyiv city|UA|30.47|50.46|220|W|,Shevchenko|poltava|UA|34.54|49.56|147|W|shevchenkivskyi rayon,Shibganj|rajshahi division|BD|89.32|25|378|W|,Shibin al Kawm|monufia|EG|31.01|30.55|267|W|,Shibuya|tokyo|JP|139.71|35.66|230|W|shibuya city,Shihezi|xinjiang|CN|86.04|44.3|572|W|,Shijiazhuang|hebei|CN|114.48|38.04|3938|W|s tia cuang,Shijie|guangdong|CN|113.79|23.1|246|W|,Shikarpur|sindh|PK|68.64|27.96|204|W|,Shillong|meghalaya|IN|91.88|25.57|143|W|,Shimla|himachal pradesh|IN|77.17|31.1|173|W|simla,Shimonoseki|yamaguchi|JP|130.94|33.96|265|W|simonoseki,Shimotoda|saitama|JP|139.69|35.81|140|W|,Shinagawa|ehime|JP|133.01|33.64|422|W|shinagawa city,Shinjuku|tokyo|JP|139.71|35.69|349|W|,Shinyanga|shinyanga|TZ|33.42|-3.66|139|W|,Shiqi|guangdong|CN|113.39|22.52|342|W|,Shiqiao|guangdong|CN|113.36|22.95|135|W|,Shiraz|fars|IR|52.53|29.61|1249|W|schiras;chiraz;sziraz;xiraz;siraz,Shirley|NY|US|-72.87|40.8|27|N|,Shivaji Nagar|maharashtra|IN|73.85|18.53|1000|W|,Shivamogga|karnataka|IN|75.57|13.93|322|W|shimoga,Shivpuri|madhya pradesh|IN|77.66|25.42|179|W|,Shiyan|hubei|CN|110.78|32.65|3460|W|s jen,Shizuishan|ningxia|CN|106.39|38.98|739|W|,Shizuoka|shizuoka|JP|138.38|34.98|693|W|sizuoka,Sholapur|maharashtra|IN|75.91|17.67|997|W|solapur,Shomolu|lagos|NG|3.37|6.54|154|W|,Shoreline|WA|US|-122.34|47.76|55|N|,Shoreview|MN|US|-93.15|45.08|26|N|,Shouguang|shandong|CN|118.74|36.88|473|W|,Shreveport|LA|US|-93.75|32.53|187|NW|,Shrewsbury|MA|US|-71.71|42.3|33|N|,Shrirampur|west bengal|IN|88.34|22.75|226|W|serampore,Shuangcheng|heilongjiang|CN|126.31|45.38|130|W|,Shuangyashan|heilongjiang|CN|131.13|46.68|600|W|song ap son;suang ja san,Shubra al Khaymah|qalyubia|EG|31.25|30.13|1240|W|,Shuizhai|guangdong|CN|115.76|23.93|140|W|,Shujaabad|punjab|PK|71.29|29.88|151|W|,Shulin|taipei|TW|121.42|24.99|180|W|shulin district;sulin,Shunan|yamaguchi|JP|131.83|34.08|149|W|,Shuozhou|shanxi|CN|112.42|39.32|433|W|,Shyamnagar|west bengal|IN|88.37|22.83|441|W|,Shymkent|shymkent|KZ|69.6|42.31|1200|W|chymkent;schymkent;sjymkent;szymkent;tsjimkent;cimkent;simkent;symkent,Si Racha|chon buri|TH|100.93|13.17|178|W|,Sialkot|punjab|PK|74.53|32.49|911|W|sijalkot,Sibiu|sibiu county|RO|24.15|45.8|134|W|hermannstadt;sybin;sibin,Sibu|sarawak|MY|111.82|2.3|198|W|,Sicklerville|NJ|US|-74.97|39.72|42|N|,Sidi Bel Abbes|sidi bel abbes|DZ|-0.63|35.19|210|W|sidi belabbas;sidi bilabbas;sidi bu l abbas,Sidoarjo|east java|ID|112.72|-7.45|139|W|,Sidon|south governorate|LB|35.37|33.56|163|W|saida;sayda;sidone;sydon,Siem Reap|siem reap|KH|103.86|13.36|139|W|ciudad de siem riep;khett siem reab;siem reab,Sierra Vista|AZ|US|-110.3|31.55|43|N|,Siguiri|kankan region|GN|-9.17|11.42|148|W|,Sikar|rajasthan|IN|75.14|27.61|244|W|,Sikasso|sikasso|ML|-5.67|11.32|349|W|,Silao de la Victoria|MX11|MX|-101.43|20.94|74|N|silao,Silchar|assam|IN|92.8|24.83|178|W|,Silifke|mersin|TR|33.93|36.38|132|W|,Siliguri|west bengal|IN|88.43|26.71|515|W|shiliguri,Silver Lake|CA|US|-118.27|34.09|32|N|,Silver Spring|MD|US|-77.03|38.99|71|N|,Simele|duhok|IQ|42.85|36.86|152|W|,Simferopol|crimea|UA|34.11|44.96|336|W|simferopoli;akmescit;sinferopoli;symferopol,Simi Valley|CA|US|-118.78|34.27|126|N|,Sincelejo|sucre department|CO|-75.39|9.3|277|W|,Sinch'on-up|south hwanghae|KP|125.48|38.35|141|W|,Sinfra|zanzan district|CI|-5.91|6.62|245|W|,Singa|sennar|SD|33.93|13.15|250|W|sindscha;sindza,Singapore||SG|103.85|1.29|5638|W|singapour;singapur;singapura;danmaxi;temasek,Singaraja|bali|ID|115.09|-8.11|133|W|,Singida|singida|TZ|34.74|-4.82|232|W|,Singkawang|west kalimantan|ID|108.98|0.91|253|W|,Singosari|east java|ID|112.67|-7.89|182|W|,Singrauli|madhya pradesh|IN|82.68|24.2|220|W|,Sinjhoro|sindh|PK|68.81|26.03|354|W|,Sinnuris|faiyum|EG|30.87|29.41|133|W|,Sinop|mato grosso|BR|-55.5|-11.86|223|W|,Sinp'o|south hamgyong|KP|128.19|40.04|152|W|,Sinuiju|p yongan bukto|KP|124.4|40.1|288|W|,Sioux City|IA|US|-96.4|42.5|82|N|kota sioux,Sioux Falls|SD|US|-96.73|43.54|171|NW|,Siping|jilin|CN|124.38|43.16|555|W|s pching;ssupingkai,Sirjan|kerman|IR|55.68|29.45|199|W|sircan;sirdschan;sirdzan,Sirsa|haryana|IN|75.03|29.53|182|W|,Sisli|istanbul|TR|28.99|41.06|314|W|,Sitapur|uttar pradesh|IN|80.68|27.56|164|W|,Sitiawan|perak|MY|100.7|4.22|156|W|,Sittwe|rakhine|MM|92.9|20.15|177|W|akyab,Situbondo|east java|ID|114.01|-7.71|685|W|,Sivakasi|tamil nadu|IN|77.8|9.45|234|W|,Sivas|sivas|TR|37.02|39.75|264|W|,Siverek|sanliurfa|TR|39.32|37.76|175|W|,Siwan|bihar|IN|84.36|26.22|135|W|,Skardu|gilgit baltistan|PK|75.63|35.3|260|W|,Skikda|skikda|DZ|6.91|36.88|182|W|sukaikida;sukajkida,Skokie|IL|US|-87.73|42.03|64|N|,Skopje|grad skopje|MK|21.43|42|474|W|escopia;uskup,Skudai|johor|MY|103.66|1.54|159|W|,Slidell|LA|US|-89.78|30.28|27|N|,Slough|england|GB|-0.6|51.51|164|W|,Smithtown|NY|US|-73.2|40.86|26|N|,Smolensk|smolensk oblast|RU|32.05|54.78|330|W|,Smyrna|GA|US|-84.51|33.88|56|N|,Smyrna|TN|US|-86.52|35.98|46|N|,Snowdon|QC|CA|-73.63|45.49|32|N|,Soacha|cundinamarca|CO|-74.22|4.58|655|W|,Sobral|ceara|BR|-40.35|-3.69|216|W|,Soc Trang|can tho city|VN|105.97|9.6|221|W|,Sochi|krasnodar krai|RU|39.72|43.6|327|W|sotsji;soci;soczi;sotchi;sotji;sotschi;sotsi,Socorro|TX|US|-106.3|31.65|33|N|,Socorro Mission Number 1 Colonia|TX|US|-106.29|31.64|28|N|,Sodo|south ethiopia regional state|ET|37.76|6.86|204|W|,Sofia|sofia capital|BG|23.32|42.7|1152|W|sofie;sofya,Sohag|sohag|EG|31.69|26.56|266|W|sauhadz;sevhac,Soka|saitama|JP|139.8|35.84|249|W|,Sokoto|sokoto|NG|5.24|13.06|1040|W|,Soledad|atlantico|CO|-74.76|10.92|342|W|,Soledad|CA|US|-121.33|36.42|25|N|solebad,Soledad de Graciano Sanchez|MX24|MX|-100.94|22.19|332|NW|,Solingen|north rhine westphalia|DE|7.08|51.17|164|W|,Sollentuna|stockholm|SE|17.95|59.43|139|W|,Solwezi|north western|ZM|26.39|-12.17|301|W|solwesi,Somerset West|western cape|ZA|18.82|-34.08|225|W|somerset wes,Somerton|PA|US|-75.01|40.12|33|N|,Somerville|MA|US|-71.1|42.39|80|N|,Son Tay|hanoi|VN|105.51|21.14|230|W|,Sonargaon|dhaka division|BD|90.62|23.65|130|W|,Songcheng|fujian|CN|120|26.88|165|W|,Songea|ruvuma|TZ|35.65|-10.68|286|W|,Songjiang|shanghai|CN|121.22|31.03|1973|W|,Songnim-ni|north hwanghae|KP|125.64|38.76|152|W|,Sonipat|haryana|IN|77.02|28.99|289|W|,Sorel-Tracy|QC|CA|-73.11|46.04|41|N|sorel,Sorocaba|sao paulo|BR|-47.46|-23.5|762|W|,Sorong|southwest papua|ID|131.26|-0.88|219|W|kota sorong,Sorsogon|bicol region|PH|123.99|12.97|187|W|,Soshanguve|gauteng|ZA|28.1|-25.47|872|W|,Sosnowiec|silesia|PL|19.1|50.29|227|W|sosnovec,Soubre|bas sassandra district|CI|-6.59|5.78|131|W|,Souk Ahras|souk ahras|DZ|7.95|36.29|153|W|souq ahras;suk aharas;suk ahras,Sousse|sousse governorate|TN|10.64|35.83|221|W|susa,South Bel Air|MD|US|-76.34|39.53|48|N|,South Bend|IN|US|-86.25|41.68|101|N|,South Boston|MA|US|-71.05|42.33|571|NW|,South Chicago|IL|US|-87.55|41.74|28|N|guney chicago,South Dublin|leinster|IE|-6.34|53.29|301|W|comte de dublin sud;condado de dublin sur;condado de south dublin;contea di south dublin;dublin poludniowy;dublin south;jizni dublin,South Fulton|GA|US|-84.67|33.59|107|N|,South Gate|CA|US|-118.21|33.95|96|N|,South Gate|MD|US|-76.63|39.13|29|N|,South Hill|WA|US|-122.27|47.14|52|N|,South Jordan|UT|US|-111.93|40.56|66|N|,South Jordan Heights|UT|US|-111.95|40.56|37|N|,South Kingstown|RI|US|-71.52|41.45|30|N|,South Laurel|MD|US|-76.85|39.07|26|N|,South Lawndale|IL|US|-87.71|41.84|73|N|,South Miami Heights|FL|US|-80.38|25.6|36|N|,South Ozone Park|NY|US|-73.82|40.67|75|N|,South Pasadena|CA|US|-118.15|34.12|26|N|,South Peabody|MA|US|-70.95|42.51|50|N|,South Portland|ME|US|-70.24|43.64|25|N|,South Riverdale|ON|CA|-79.34|43.65|27|N|,South San Francisco|CA|US|-122.41|37.65|67|N|,South Shore|IL|US|-87.58|41.76|51|N|,South Suffolk|VA|US|-76.59|36.72|80|N|,South Surrey|BC|CA|-122.79|49.05|77|N|,South Tangerang|banten|ID|106.72|-6.29|1429|W|tangerang selatan,South Valley|NM|US|-106.68|35.01|40|N|,South Vineland|NJ|US|-75.03|39.45|58|N|,South Whittier|CA|US|-118.04|33.95|57|N|,Southampton|england|GB|-1.4|50.9|269|W|,Southaven|MS|US|-90.01|34.99|52|N|southhaven,Southend-on-Sea|england|GB|0.71|51.54|295|W|,Southfield|MI|US|-83.22|42.47|73|N|,Southgate|MI|US|-83.19|42.21|29|N|,Southglenn|CO|US|-104.95|39.59|42|N|,Southington|CT|US|-72.88|41.6|43|N|,Southlake|TX|US|-97.13|32.94|29|N|,Soweto|gauteng|ZA|27.86|-26.27|1695|W|,Soyapango|san salvador department|SV|-89.14|13.71|329|W|,Soyo|zaire|AO|12.37|-6.13|221|W|,Spanaway|WA|US|-122.43|47.1|27|N|,Spanish Fork|UT|US|-111.65|40.11|37|N|,Spanish Town|saint catherine parish|JM|-76.96|17.99|145|W|,Sparks|NV|US|-119.75|39.53|96|N|,Spartanburg|SC|US|-81.93|34.95|37|N|,Split|split dalmatia|HR|16.44|43.51|149|W|spalato,Spokane|WA|US|-117.43|47.66|229|NW|,Spokane Valley|WA|US|-117.24|47.67|94|N|,Spring|TX|US|-95.42|30.08|54|N|,Spring Hill|FL|US|-82.53|28.48|98|N|,Spring Hill|TN|US|-86.93|35.75|36|N|,Spring Valley|NV|US|-115.25|36.11|178|NW|,Spring Valley|NY|US|-74.04|41.11|32|N|,Spring Valley|CA|US|-117|32.74|28|N|,Springdale|AR|US|-94.13|36.19|77|N|,Springfield|MO|US|-93.3|37.22|170|NW|,Springfield|MA|US|-72.59|42.1|154|NW|,Springfield|IL|US|-89.64|39.8|114|N|,Springfield|OR|US|-123.02|44.05|60|N|,Springfield|OH|US|-83.81|39.92|59|N|,Springfield|VA|US|-77.19|38.79|30|N|,Springfield Gardens|NY|US|-73.76|40.66|30|N|,Springs|gauteng|ZA|28.4|-26.25|186|W|,Springville|UT|US|-111.61|40.17|32|N|,Spruce Grove|AB|CA|-113.92|53.53|38|N|,Sri Ganganagar|rajasthan|IN|73.87|29.92|237|W|,Srikakulam|andhra pradesh|IN|83.9|18.3|137|W|,Srinagar|jammu and kashmir|IN|74.81|34.09|1206|W|,St. Albert|AB|CA|-113.64|53.63|57|N|saint albert,St. Catharines|ON|CA|-79.24|43.17|136|NW|sainte catharine,St. Charles|MD|US|-76.92|38.61|33|N|,St. Charles|IL|US|-88.31|41.91|32|N|,St Helens|england|GB|-2.73|53.45|183|W|,St. James-Assiniboia East|MB|CA|-97.23|49.89|27|N|,St. John's|NL|CA|-52.71|47.56|110|N|saint john s;saint jean de terre neuve;saint jean;san juan de terranova;st johns,St. Johns|FL|US|-81.55|30.08|40|N|,St. Louis|MO|US|-90.2|38.63|279|NW|saint louis;san luis,St. Petersburg|FL|US|-82.68|27.77|257|NW|saint pete;saint petersburg,St. Thomas|ON|CA|-81.18|42.77|38|N|saint thomas,Stamford|CT|US|-73.54|41.05|128|N|,Stanton|CA|US|-117.99|33.8|38|N|,Starkville|MS|US|-88.82|33.45|25|N|,Staryy Oskol|belgorod oblast|RU|37.85|51.3|226|W|stary oskol;staryi oskol,State College|PA|US|-77.86|40.79|42|N|,Staten Island|NY|US|-74.14|40.56|468|NW|borough of staten island,Statesboro|GA|US|-81.78|32.45|30|N|,Statesville|NC|US|-80.89|35.78|26|N|,Stavanger|rogaland|NO|5.73|58.97|151|W|,Stavropol|stavropol kray|RU|41.96|45.03|433|W|stawropol;stauropoli,Sterling|VA|US|-77.43|39.01|27|N|,Sterling Heights|MI|US|-83.03|42.58|132|NW|,Sterlitamak|bashkortostan republic|RU|55.95|53.64|267|W|starletamaq,Stevens Point|WI|US|-89.57|44.52|26|N|,Steveston|BC|CA|-123.18|49.13|25|N|,Stillwater|OK|US|-97.06|36.12|48|N|,Stittsville|ON|CA|-75.92|45.25|40|N|,Stockbridge|GA|US|-84.23|33.54|28|N|,Stockholm|stockholm|SE|18.07|59.33|1515|W|estocolmo;stoccolma;stokolm;sztokholm;tukholma,Stockport|england|GB|-2.16|53.41|139|W|,Stockton|CA|US|-121.29|37.96|305|NW|,Stoke-on-Trent|england|GB|-2.19|53|258|W|,Stonecrest|GA|US|-84.13|33.71|50|N|,Stonegate-Queensway|ON|CA|-79.5|43.64|25|N|,Stoney Creek|ON|CA|-79.77|43.22|76|N|,Stouffville|ON|CA|-79.25|43.97|36|N|,Stoughton|MA|US|-71.1|42.13|26|N|,Stow|OH|US|-81.44|41.16|34|N|,Strasbourg|grand est|FR|7.75|48.58|274|W|estrasburgo;straatsburg;strasburg;strasburgo;strazburg;strassburg;strasburk,Stratford|CT|US|-73.13|41.18|51|N|,Stratford|ON|CA|-80.95|43.37|31|N|,Strawberry Hill|BC|CA|-122.88|49.13|41|N|,Streamwood|IL|US|-88.18|42.03|40|N|,Strogino|moscow|RU|37.41|55.82|152|W|,Strongsville|OH|US|-81.84|41.31|44|N|,Studio City|CA|US|-118.4|34.15|34|N|,Stuttgart|baden wurttemberg|DE|9.18|48.78|612|W|estugarda;stoccarda,Subang|west java|ID|107.76|-6.57|137|W|,Subang Jaya|selangor|MY|101.58|3.04|708|W|,Sucre|chuquisaca department|BO|-65.26|-19.03|224|W|,Suez|suez|EG|32.53|29.97|699|W|sues;suveys,Suffolk|VA|US|-76.58|36.73|88|N|,Sugar Land|TX|US|-95.63|29.62|88|N|,Suginami|ibaraki|JP|140.28|36.2|588|W|suginami city,Suicheng|jiangsu|CN|117.93|33.9|256|W|,Suihua|heilongjiang|CN|126.97|46.65|252|W|suej chua;tuy hoa,Suining|sichuan|CN|105.57|30.51|656|W|suej ning,Suisun|CA|US|-122.04|38.24|28|N|,Suita|osaka|JP|135.52|34.76|385|W|,Suitland|MD|US|-76.92|38.85|25|N|,Suitland-Silver Hill|MD|US|-76.93|38.85|33|N|silver hill,Suizhou|hubei|CN|113.36|31.71|618|W|suej cou;tuy chau,Sujangarh|rajasthan|IN|74.47|27.7|183|W|,Sujiatun|liaoning|CN|123.34|41.66|148|W|,Sukabumi|west java|ID|106.93|-6.92|365|W|kota sukabumi,Sukkur|sindh|PK|68.86|27.7|563|W|,Sukrah|ariana governorate|TN|10.25|36.88|159|W|,Sulaymaniyah|sulaymaniyah|IQ|45.43|35.56|878|W|as sulajmanijja;slemani;solimania;souleimaniye;sulaimaniyya;sulaymaniyya;suleimania;suleimaniya;sulejmanie;suleymaniye,Suleja|niger state|NG|7.18|9.18|162|W|,Sullana|piura|PE|-80.69|-4.9|160|W|,Sultan Pur Majra|delhi|IN|77.08|28.69|181|W|,Sultanah|medina region|SA|39.59|24.49|946|W|,Sultanbeyli|istanbul|TR|29.27|40.96|358|W|,Sultangazi|istanbul|TR|28.87|41.11|436|W|,Sumare|sao paulo|BR|-47.27|-22.82|279|W|,Sumayl|duhok|IQ|42.85|36.86|152|W|,Sumbawanga|rukwa|TZ|31.62|-7.97|303|W|,Sumbe|kwanza sul|AO|13.84|-11.21|205|W|,Sumedang|west java|ID|107.92|-6.86|200|W|,Sumgayit|sumqayit|AZ|49.67|40.59|427|W|sumgait;sumgjajet;sumqayit,Sumida|tokyo|JP|139.82|35.73|287|W|sumida city,Summerville|SC|US|-80.18|33.02|48|N|,Sumter|SC|US|-80.34|33.92|40|N|,Sumy|sumy|UA|34.8|50.92|256|W|soemy;soumy;sumi,Sun City|AZ|US|-112.27|33.6|37|N|,Sun Prairie|WI|US|-89.21|43.18|32|N|,Sunch'on|south pyongan|KP|125.93|39.43|437|W|,Suncheon|jeollanam do|KR|127.49|34.95|276|W|sunch on,Sunderland|england|GB|-1.38|54.9|170|W|,Sungai Buloh|selangor|MY|101.56|3.21|222|W|,Sungai Petani|kedah|MY|100.49|5.65|544|W|,Sunggal|north sumatra|ID|98.62|3.58|157|W|,Sunnyside|NY|US|-73.94|40.74|49|N|,Sunnyvale|CA|US|-122.04|37.37|155|NW|,Sunrise|FL|US|-80.11|26.13|84|N|,Sunrise Manor|NV|US|-115.07|36.21|189|NW|,Sunset|BC|CA|-123.1|49.22|36|N|,Sunset Park|NY|US|-74.01|40.65|126|N|,Sunshine Coast|queensland|AU|153.08|-26.66|398|W|costa de sunshine;costa do sunshine;cote du soleil,Superior|WI|US|-92.1|46.72|26|N|,Suqian|jiangsu|CN|118.3|33.95|1437|W|,Surabaya|east java|ID|112.75|-7.25|3018|W|kota surabaya;soerabaja;surabaia;surabaja,Surakarta|central java|ID|110.83|-7.56|526|W|kota surakarta,Surat|gujarat|IN|72.83|21.2|4591|W|surate,Surat Thani|surat thani|TH|99.33|9.14|132|W|,Surendranagar|gujarat|IN|71.65|22.73|179|W|,Surgut|khanty mansia|RU|73.42|61.26|300|W|soergoet;sourgout,Surprise|AZ|US|-112.33|33.63|143|NW|,Surrey|BC|CA|-122.83|49.11|568|NW|,Surrey City Centre|BC|CA|-122.85|49.19|33|N|,Surulere|lagos|NG|3.36|6.5|191|W|,Sutton|england|GB|-0.2|51.35|187|W|london borough of sutton,Suwaylih|balqa|JO|35.84|32.02|151|W|,Suwon|gyeonggi do|KR|127.01|37.29|1234|W|suwon si,Suzano|sao paulo|BR|-46.31|-23.54|320|W|,Suzhou|jiangsu|CN|120.6|31.3|6715|W|su cou;to chau,Suzhou|anhui|CN|116.98|33.64|1647|W|,Suzuka|mie|JP|136.58|34.88|195|W|,Swansea|wales|GB|-3.94|51.62|300|W|,Swindon|england|GB|-1.78|51.56|201|W|,Sydney|new south wales|AU|151.21|-33.87|5638|W|sidney;syd;sydney city,Sydney|NS|CA|-60.18|46.14|105|N|,Sykhiv|lviv|UA|24.06|49.79|151|W|,Syktyvkar|komi|RU|50.82|61.66|245|W|syktywkar;siktivkar,Sylhet|sylhet division|BD|91.87|24.9|237|W|srihotto,Sylmar|CA|US|-118.45|34.31|79|N|,Syracuse|NY|US|-76.15|43.05|144|NW|siracusa,Syracuse|UT|US|-112.06|41.09|27|N|,Syzran|samara oblast|RU|48.47|53.16|189|W|sysran,Szczecin|west pomerania|PL|14.55|53.43|395|W|stettin;estetino;stettino;stetin,Szeged|csongrad|HU|20.15|46.25|160|W|seghedin;seghedino;szegedin;szeghed,Ta'if|mecca region|SA|40.42|21.27|688|W|at ta if;taif;taef,Taboao da Serra|sao paulo|BR|-46.79|-23.63|273|W|,Tabora|tabora|TZ|32.83|-5.02|308|W|,Tabriz|east azerbaijan|IR|46.29|38.08|1424|W|tebriz;tabris,Tabuk|tabuk region|SA|36.57|28.4|667|W|tebuk,Tacambaro de Codallos|MX16|MX|-101.46|19.24|25|N|,Tacheng|xinjiang|CN|82.96|46.75|161|W|,Tachikawa|tokyo|JP|139.42|35.71|183|W|,Tacloban|eastern visayas|PH|125|11.24|259|W|kota tacloban;tacloban city,Tacna|tacna|PE|-70.25|-18.01|286|W|,Tacoma|WA|US|-122.44|47.25|222|NW|,Taganrog|rostov|RU|38.91|47.24|279|W|,Taguatinga|federal district|BR|-48.06|-15.83|193|W|,Taguig|national capital region|PH|121.08|14.52|1308|W|city of taguig,Tahoua|tahoua region|NE|5.27|14.89|159|W|,Tahta|sohag|EG|31.5|26.77|134|W|,Tai'an|shandong|CN|117.12|36.19|1735|W|,Tai Po|tai po|HK|114.17|22.45|274|W|,Taicang|jiangsu|CN|121.09|31.45|831|W|,Taichung|taiwan|TW|120.68|24.15|2850|W|kota taichung;taizhong;tchaj cung;dai trung,Tainan|taiwan|TW|120.21|22.99|1856|W|kota tainan;tainan city;tchaj nan;dai nam,Taipei|taiwan|TW|121.53|25.05|7871|W|kota taipei;taipeh;taipe;tajpej;tchaj pej,Taiping|perak|MY|100.73|4.85|217|W|,Taishan|guangdong|CN|112.78|22.25|145|W|dai son,Taito|tokyo|JP|139.78|35.71|211|W|taito city,Taiyuan|shanxi|CN|112.56|37.87|4303|W|tchaj juan;thai nguyen,Taiz|ta izz|YE|44.02|13.58|940|W|taez,Taizhou|jiangsu|CN|119.91|32.49|1607|W|tchaj cou;thai chau,Taizhou|zhejiang|CN|121.43|28.66|1485|W|tchaj cou;thai chau,Takamatsu|kagawa|JP|134.05|34.33|418|W|takamacu;takamatsu shi;takamatsushi,Takaoka|toyama|JP|137.02|36.75|170|W|,Takarazuka|hyogo|JP|135.36|34.8|226|W|,Takasaki|gunma|JP|139.02|36.33|372|W|,Takatsuki|osaka|JP|135.62|34.85|354|W|,Takeo|takeo|KH|104.78|10.99|843|W|,Takoradi|western|GH|-1.76|4.9|389|W|takoradze,Tala|MX14|MX|-103.7|20.65|35|N|,Talatona|luanda|AO|13.19|-8.92|500|W|,Talca|maule region|CL|-71.65|-35.42|197|W|,Talcahuano|biobio|CL|-73.12|-36.72|150|W|,Talhar|sindh|PK|68.81|24.88|200|W|,Talisay|central visayas|PH|123.85|10.24|133|W|talisay city,Tallahassee|FL|US|-84.28|30.44|201|NW|,Tallinn|harjumaa|EE|24.75|59.44|394|W|tallinna;talin;tallin;lindanas;reval;revel;raaveli,Tam Ky|da nang city|VN|108.47|15.57|165|W|,Tam O'Shanter-Sullivan|ON|CA|-79.3|43.78|27|N|,Tama|tokyo|JP|139.47|35.64|148|W|,Tamale|northern|GH|-0.84|9.4|464|W|,Taman Petaling|kuala lumpur|MY|101.65|3.2|423|W|,Tamarac|FL|US|-80.25|26.21|64|N|,Tambacounda|tambacounda|SN|-13.67|13.77|149|W|,Tambaram|tamil nadu|IN|80.13|12.92|174|W|,Tambov|tambov oblast|RU|41.44|52.74|293|W|tambow,Tamiami|FL|US|-80.4|25.76|55|N|,Tampa|FL|US|-82.46|27.95|414|NW|,Tampere|pirkanmaa|FI|23.79|61.5|260|W|tammerfors,Tampico|MX28|MX|-97.88|22.29|309|NW|,Tampines Estate||SG|103.94|1.36|265|W|tampines,Tampines New Town||SG|103.95|1.35|259|W|,Tan An|tay ninh|VN|106.41|10.54|215|W|,Tan Chau|an giang|VN|105.24|10.8|175|W|,Tando Adam|sindh|PK|68.66|25.77|174|W|,Tando Allahyar|sindh|PK|68.72|25.46|421|W|,Tando Bago|sindh|PK|68.97|24.79|426|W|,Tanga|tanga|TZ|39.1|-5.07|393|W|,Tangail|dhaka division|BD|89.92|24.25|180|W|,Tangerang|banten|ID|106.63|-6.18|1927|W|kota tangerang,Tanggu|tianjin|CN|117.65|39.02|535|W|taku,Tanghe|henan|CN|112.83|32.69|278|W|,Tangier|tanger tetouan al hoceima|MA|-5.8|35.77|1035|W|tanger;tanca;tangeri,Tangshan|hebei|CN|118.18|39.64|3372|W|tchang san,Tanjung Pinang|riau islands|ID|104.46|0.92|227|W|kota tanjungpinang,Tanjungbalai|north sumatra|ID|99.8|2.97|190|W|,Tanta|gharbia|EG|31|30.79|576|W|,Tantou|guangdong|CN|113.83|22.75|320|W|,Tantoyuca|MX30|MX|-98.23|21.35|30|N|,Tanzhou|guangdong|CN|113.47|22.26|382|W|,Taoyuan|taiwan|TW|121.3|24.99|475|W|taoyuan district;dao vien;taoyuan city,Taozhou|anhui|CN|119.41|30.91|146|W|,Tapachula|MX05|MX|-92.26|14.91|353|NW|,Tarakan|north kalimantan|ID|117.59|3.31|255|W|kota tarakan,Taranto|apulia|IT|17.25|40.46|198|W|tarde;tarent;tarente;tarento,Taraz|zhambyl|KZ|71.37|42.9|358|W|taras,Targu Mures|mures county|RO|24.56|46.54|212|W|neumarkt am mieresch;neumarkt;tirgu mures,Tariba|tachira|VE|-72.22|7.82|138|W|,Tarija|tarija department|BO|-64.73|-21.54|159|W|,Tarime|mara|TZ|34.37|-1.35|133|W|,Tarlac City|central luzon|PH|120.6|15.48|401|W|,Tarragona|catalonia|ES|1.25|41.12|141|W|tarragone,Tarsus|mersin|TR|34.89|36.92|350|W|tars;tarse;tarso,Tartus|tartus|SY|35.89|34.89|458|W|tartous,Tasek Glugor|penang|MY|100.5|5.48|135|W|tasek gelugor,Tashkent|tashkent|UZ|69.22|41.26|1978|W|tachkent;taschkent;tasjkent;taskent;taszkent,Tasikmalaya|west java|ID|108.22|-7.33|770|W|kota tasikmalaya,Taubate|sao paulo|BR|-45.56|-23.03|322|W|,Taunggyi|shan state|MM|97.04|20.79|160|W|,Taunton|MA|US|-71.09|41.9|56|N|,Tauranga|bay of plenty|NZ|176.17|-37.69|161|W|,Tawau|sabah|MY|117.89|4.24|372|W|tawao,Taxco de Alarcon|MX12|MX|-99.61|18.55|50|N|taxco,Tay Ho|hanoi|VN|105.81|21.07|168|W|,Tay Ninh|tay ninh|VN|106.1|11.31|135|W|,Taylor|MI|US|-83.27|42.24|61|N|,Taylorsville|UT|US|-111.94|40.67|60|N|,Taytay|calabarzon|PH|121.13|14.56|231|W|,Taza|fes meknes|MA|-4.01|34.21|162|W|,Tbilisi|tbilisi|GE|44.83|41.69|1049|W|tbilissi;tiblissi;tiflis,Teaneck|NJ|US|-74.02|40.9|40|N|,Teapa|MX27|MX|-92.95|17.56|26|N|,Tebessa|tebessa|DZ|8.12|35.4|194|W|tibissa,Tecamachalco|MX21|MX|-97.73|18.88|28|N|,Tecate|MX02|MX|-116.63|32.57|64|N|,Tecax|MX31|MX|-89.29|20.21|25|N|tekax,Tecoman|MX08|MX|-103.88|18.92|85|N|,Tegal|central java|ID|109.14|-6.87|297|W|kota tegal,Tegucigalpa|francisco morazan department|HN|-87.21|14.08|850|W|,Tehran|tehran|IR|51.42|35.69|7153|W|tahran;teera;teerao;teheran,Tehuacan|MX21|MX|-97.4|18.46|248|NW|,Teixeira de Freitas|bahia|BR|-39.74|-17.54|145|W|,Tejupilco de Hidalgo|MX15|MX|-100.15|18.9|25|N|,Tel Aviv|tel aviv|IL|34.78|32.08|432|W|tel aviv yaffo;tel aviv yafo;tel awiw,Telford|england|GB|-2.45|52.68|155|W|,Teluk Intan|perak|MY|101.02|4.02|232|W|teluk anson,Teluknaga|west java|ID|106.64|-6.1|175|W|,Tema|greater accra|GH|-0.02|5.67|155|W|,Temara|rabat sale kenitra|MA|-6.91|33.93|342|W|,Temecula|CA|US|-117.15|33.49|110|N|,Temirtau|karaganda|KZ|72.95|50.05|170|W|temirtaou;temirtaw;temyrtau,Temixco|MX17|MX|-99.23|18.85|97|N|,Tempe|AZ|US|-111.91|33.41|175|NW|,Tempe Junction|AZ|US|-111.94|33.41|158|NW|,Temple|TX|US|-97.34|31.1|72|N|,Temple City|CA|US|-118.06|34.11|36|N|,Temple Terrace|FL|US|-82.39|28.04|25|N|,Temuco|araucania|CL|-72.6|-38.74|238|W|,Teni|tamil nadu|IN|77.48|10.01|1034|W|theni,Tenosique|MX27|MX|-91.42|17.47|32|N|,Teofilo Otoni|minas gerais|BR|-41.51|-17.86|142|W|,Teoloyucan|MX15|MX|-99.18|19.74|51|N|,Tepatitlan de Morelos|MX14|MX|-102.76|20.82|91|N|,Tepeaca|MX21|MX|-97.9|18.97|27|N|tepeaca de negrete,Tepeji del Rio de Ocampo|MX13|MX|-99.34|19.9|80|N|,Tepexpan|MX15|MX|-98.94|19.61|102|N|,Tepic|MX18|MX|-104.89|21.51|332|NW|,Tepotzotlan|MX15|MX|-99.22|19.72|38|N|,Tequila|MX14|MX|-103.84|20.88|29|N|municipio tequila,Tequisquiapan|MX22|MX|-99.89|20.52|29|N|,Teresina|piaui|BR|-42.8|-5.09|871|W|,Teresopolis|rio de janeiro|BR|-42.98|-22.42|176|W|,Ternate|north maluku|ID|127.38|0.79|210|W|kota ternate,Ternopil|ternopil|UA|25.59|49.55|225|W|tarnopol;tarnopoli,Terrassa|catalonia|ES|2.02|41.57|218|W|,Terre Haute|IN|US|-87.41|39.47|60|N|,Terrebonne|QC|CA|-73.65|45.7|111|N|,Teshi Old Town|greater accra|GH|-0.11|5.58|144|W|teshie,Tete|tete|MZ|33.59|-16.16|357|W|vila de santiago maior,Tetouan|tanger tetouan al hoceima|MA|-5.37|35.58|415|W|tetuan;tetuao,Tetuan de las Victorias|madrid|ES|-3.7|40.46|155|W|tetuan,Tewksbury|MA|US|-71.23|42.61|29|N|,Texarkana|TX|US|-94.05|33.43|37|N|,Texarkana|AR|US|-94.04|33.44|30|N|,Texas City|TX|US|-94.9|29.38|47|N|,Texcoco de Mora|MX15|MX|-98.88|19.51|105|N|texcoco,Teziutlan|MX21|MX|-97.36|19.82|103|N|,Thai Nguyen|thai nguyen|VN|105.85|21.59|420|W|,Thane|maharashtra|IN|72.96|19.2|1841|W|thana,Thanesar|haryana|IN|76.83|29.97|155|W|,Thanh Hoa|thanh hoa province|VN|105.77|19.8|850|W|,Thanh Khe|da nang city|VN|108.19|16.07|201|W|,Thanh Pho Ba Ria|ho chi minh city hcmc|VN|107.17|10.5|235|W|,Thanh Xuan|hanoi|VN|105.8|20.99|293|W|,Thanjavur|tamil nadu|IN|79.14|10.79|291|W|tanjavur;tandzawur;tancavur,The Acreage|FL|US|-80.27|26.79|38|N|,The Bronx|NY|US|-73.87|40.85|1385|NW|bronx;borough of bronx,The Colony|TX|US|-96.89|33.09|41|N|,The Hague|south holland|NL|4.3|52.08|474|W|den haag;a haia;haag;haga;l aia;la haya;la haye;lahey;s gravenhage,The Hammocks|FL|US|-80.44|25.67|51|N|,The Trails of Frisco|TX|US|-96.87|33.16|51|N|,The Villages|FL|US|-81.96|28.93|51|N|,The Woodlands|TX|US|-95.49|30.16|93|N|woodlands,Thembisa|gauteng|ZA|28.23|-26|511|W|,Thenali|andhra pradesh|IN|80.64|16.24|164|W|,Thessaloniki|central macedonia|GR|22.93|40.64|317|W|salonica;ftohomana;salonic;salonicco;saloniki;selanik;solun;tesalonica;thessalonique,Thetford-Mines|QC|CA|-71.31|46.09|25|N|,Thi Tran GJai Tu|thai nguyen|VN|105.64|21.63|179|W|,Thi Tran GJong Trieu|quang ninh|VN|106.51|21.08|248|W|,Thi Tran Thuan Chau|son la province|VN|103.69|21.44|153|W|,Thies|thies|SN|-16.93|14.79|317|W|,Thies Nones|thies|SN|-16.97|14.78|252|W|,Thika|nairobi county|KE|37.07|-1.03|251|W|,Thiruvananthapuram|kerala|IN|76.95|8.49|788|W|tiruvanantapuram;trivandrum,Thomasville|NC|US|-80.08|35.88|27|N|,Thoothukudi|tamil nadu|IN|78.13|8.77|410|W|thoothukkudi;tuticorin,Thornton|CO|US|-104.97|39.87|133|NW|,Thot Not|can tho city|VN|105.53|10.27|158|W|,Thousand Oaks|CA|US|-118.84|34.17|129|N|,Thrissur|kerala|IN|76.22|10.52|315|W|trichur,Throgs Neck|NY|US|-73.82|40.82|33|N|,Thu Dau Mot|ho chi minh city hcmc|VN|106.65|10.98|373|W|,Thu GJuc|ho chi minh city hcmc|VN|106.77|10.85|524|W|,Thuan An|ho chi minh city hcmc|VN|106.71|10.92|588|W|,Thuan Thanh|bac ninh|VN|106.08|21.05|199|W|,Thunder Bay|ON|CA|-89.25|48.38|108|N|,Thuqbah|eastern province|SA|50.2|26.26|248|W|,Tianjin|tianjin|CN|117.18|39.14|11090|W|tchien tin;thien tan;tiencin;tientsin,Tianshui|gansu|CN|105.74|34.58|1212|W|,Tiaret|tiaret|DZ|1.32|35.37|178|W|tijarat,Ticul|MX31|MX|-89.53|20.4|32|N|,Tieling|liaoning|CN|123.84|42.29|333|W|,Tierra Blanca|MX30|MX|-96.36|18.45|47|N|,Tigard|OR|US|-122.77|45.43|51|N|,Tijuana|MX02|MX|-117|32.5|1922|NW|,Tilburg|north brabant|NL|5.09|51.56|221|W|tilburgo,Timika|central papua|ID|136.68|-4.61|142|W|,Timisoara|timis county|RO|21.23|45.75|250|W|temeswar;freidorf;josephs stadt;temeschburg;temeschwar;temesvar,Timmins|ON|CA|-81.33|48.47|41|N|,Timon|maranhao|BR|-42.84|-5.09|174|W|,Tin Shui Wai|yuen long|HK|114|22.46|286|W|,Tinh Bien|an giang|VN|104.94|10.6|143|W|,Tinley Park|IL|US|-87.78|41.57|57|N|,Tirana|tirana|AL|19.82|41.33|418|W|tiran,Tiraspol|transnistria|MD|29.63|46.84|157|W|tiraspoli;tyraspol,Tirmiz|surxondaryo region|UZ|67.28|37.22|182|W|termez;termiz,Tiruchirappalli|tamil nadu|IN|78.7|10.82|1022|W|tiruchchirappalli;tiruchirapalli;tiruccirappalli;tiruchi;trichinopoly;trichy,Tirunelveli|tamil nadu|IN|77.68|8.73|1435|W|tirunelweli,Tirupati|andhra pradesh|IN|79.42|13.64|295|W|tirumala tirupati,Tiruppur|tamil nadu|IN|77.35|11.12|963|W|tirupur,Tiruvannamalai|tamil nadu|IN|79.07|12.23|145|W|,Tiruvottiyur|tamil nadu|IN|80.3|13.16|249|W|,Titusville|FL|US|-80.81|28.61|45|N|,Tizayuca|MX13|MX|-98.98|19.84|43|N|,Tizimin|MX31|MX|-88.15|21.14|46|N|,Tlahuac|MX09|MX|-99.01|19.29|305|NW|delegacion tlahuac,Tlajomulco de Zuniga|MX14|MX|-103.45|20.47|30|N|,Tlalnepantla|MX15|MX|-99.2|19.54|653|NW|tlalnepantla de baz;tlanepantla de baz,Tlalpan|MX09|MX|-99.16|19.3|574|NW|delegacion tlalpan,Tlapa de Comonfort|MX12|MX|-98.58|17.55|46|N|,Tlapacoyan|MX30|MX|-97.21|19.96|35|N|,Tlaquepaque|MX14|MX|-103.29|20.64|650|NW|san pedro tlaquepaque,Tlaxcala|MX29|MX|-98.24|19.32|84|N|tlaxcala city;tlaxcala de xicotencatl,Tlemcen|tlemcen|DZ|-1.31|34.88|173|W|tilimsan;tremecen,Toamasina|atsinanana|MG|49.4|-18.15|345|W|tamatave,Tobruk|al butnan|LY|23.95|32.09|141|W|thubruq;tobroek;tobrouk;tobruch,Tochigi|tochigi|JP|139.73|36.38|159|W|,Tokch'on|south pyongan|KP|126.26|39.75|237|W|,Tokorozawa|saitama|JP|139.47|35.8|344|W|,Tokushima|tokushima|JP|134.57|34.07|267|W|tokusima,Tokyo|tokyo|JP|139.69|35.69|9733|W|tokio;toquio;edo,Toledo|OH|US|-83.56|41.66|265|NW|,Toledo|central visayas|PH|123.64|10.38|206|W|toledo city,Toledo|parana|BR|-53.74|-24.71|160|W|,Toli-Toli|central sulawesi|ID|120.82|1.04|242|W|tolitoli,Toliara|atsimo andrefana|MG|43.67|-23.35|178|W|tulear,Toluca|MX15|MX|-99.65|19.29|489|NW|toluca de lerdo,Tolyatti|samara oblast|RU|49.35|53.53|702|W|togliatti;togliattigrad;tol yatti;toliatti;toljatti;stavropol,Tomakomai|hokkaido|JP|141.6|42.64|174|W|,Toms River|NJ|US|-74.2|39.95|88|N|,Tomsk|tomsk oblast|RU|84.98|56.5|574|W|,Tonala|MX14|MX|-103.24|20.62|408|NW|,Tonala|MX05|MX|-93.75|16.09|35|N|,Tondabayashicho|osaka|JP|135.6|34.5|132|W|tondabayashi,Tongchuan|shaanxi|CN|108.95|34.9|417|W|,Tongchuanshi|shaanxi|CN|109.08|35.07|223|W|tchung cchuan,Tonghua|jilin|CN|125.93|41.72|510|W|tchung chua;thong hoa,Tongliao|inner mongolia|CN|122.27|43.61|261|W|thong lieu,Tongling|anhui|CN|117.78|30.95|402|W|,Tongshan|jiangsu|CN|117.16|34.18|329|W|xuzhou,Tongzhou|beijing|CN|116.66|39.9|163|W|,Tonk|rajasthan|IN|75.79|26.17|165|W|,Tooele|UT|US|-112.3|40.53|33|N|,Toowoomba|queensland|AU|151.95|-27.56|142|W|,Topeka|KS|US|-95.68|39.05|125|N|,Torbat-e Heydariyeh|razavi khorasan|IR|59.22|35.27|140|W|,Tordher|khyber pakhtunkhwa|PK|72.29|33.99|150|W|,Toronto|ON|CA|-79.4|43.71|2794|NW|,Torrance|CA|US|-118.34|33.84|143|NW|,Torreon|MX07|MX|-103.42|25.54|735|NW|,Torrington|CT|US|-73.12|41.8|34|N|,Torun|kujawsko pomorskie|PL|18.6|53.01|196|W|thorn,Toshima|tokyo|JP|139.74|35.76|301|W|toshima city,Tottenham|england|GB|-0.07|51.6|130|W|,Tottori-shi|tottori|JP|134.23|35.5|188|W|,Touba|diourbel region|SN|-15.88|14.86|1120|W|,Touggourt|touggourt|DZ|6.07|33.11|143|W|tukkurt,Toulon|provence alpes cote d azur|FR|5.93|43.12|168|W|tolone;tolon;tulon,Toulouse|occitanie|FR|1.44|43.6|511|W|tolosa;tolosa de francia;tuluza,Tours|centre val de loire|FR|0.7|47.39|141|W|,Town 'n' Country|FL|US|-82.58|28.01|78|N|,Townsville|queensland|AU|146.81|-19.27|201|W|,Towson|MD|US|-76.6|39.4|55|N|,Toyama|toyama|JP|137.22|36.7|415|W|toyama shi;toyamashi,Toyohashi|aichi|JP|137.38|34.77|377|W|toyohashi shi,Toyokawa|aichi|JP|137.4|34.82|184|W|,Toyonaka|osaka|JP|135.47|34.78|401|W|,Toyota|aichi|JP|137.15|35.08|426|W|tojota,Tra Vinh|vinh long|VN|106.34|9.95|160|W|thanh pho tra vinh,Trabzon|trabzon|TR|39.73|41.01|244|W|trapisonda;trebisonda;trebizonda,Tracy|CA|US|-121.43|37.74|87|N|,Trang Bang|tay ninh|VN|106.36|11.03|161|W|,Trenton|NJ|US|-74.74|40.22|89|N|,Tres Lagoas|mato grosso do sul|BR|-51.7|-20.79|143|W|,Tri-Cities|WA|US|-119.2|46.25|244|NW|,Trieste|friuli venezia giulia|IT|13.78|45.65|204|W|terst;triest,Trindade|goias|BR|-49.49|-16.65|142|W|,Tripoli|tripoli|LY|13.19|32.89|1302|W|trablus;tripolis;trypolis,Tripoli|north lebanon|LB|35.84|34.43|229|W|trablussam;tripolis;trypolis,Trois-Rivieres|QC|CA|-72.55|46.35|144|NW|,Trondheim|trondelag|NO|10.4|63.43|216|W|,Troy|MI|US|-83.15|42.61|83|N|,Troy|NY|US|-73.69|42.73|49|N|,Troy|OH|US|-84.2|40.04|25|N|,Trujillo|la libertad|PE|-79.03|-8.12|1067|W|,Trumbull|CT|US|-73.2|41.24|36|N|,Tsentralnyi|donetsk|UA|37.55|47.1|179|W|tsentralnyi rayon;molotovskyi;molotovskyi rayon;zhovtnevyi;zhovtnevyi rayon,Tseung Kwan O|sai kung district|HK|114.25|22.33|412|W|,Tshikapa|kasai|CD|20.8|-6.42|634|W|,Tsing Yi Town|kwai tsing district|HK|114.1|22.35|182|W|tsing yi,Tsu|mie|JP|136.52|34.73|274|W|,Tsuchiura|ibaraki|JP|140.21|36.09|144|W|,Tsuen Wan|tsuen wan|HK|114.11|22.37|318|W|,Tsukuba|ibaraki|JP|140.12|36.08|241|W|cukuba,Tualatin|OR|US|-122.76|45.38|27|N|,Tuckahoe|VA|US|-77.56|37.59|44|N|,Tucker|GA|US|-84.22|33.85|27|N|,Tucson|AZ|US|-110.93|32.22|542|NW|,Tuen Mun|tuen mun|HK|113.97|22.39|507|W|tuenmen,Tuerkmenabat|lebap|TM|63.58|39.07|230|W|turkmenabat;charjou,Tuguegarao|cagayan valley|PH|121.72|17.62|167|W|tuguegarao city;tuguegaro,Tujunga|CA|US|-118.29|34.25|26|N|,Tula|tula oblast|RU|37.62|54.2|482|W|toela;toula,Tula de Allende|MX13|MX|-99.34|20.05|28|N|,Tulancingo|MX13|MX|-98.36|20.08|102|N|tulancingo de bravo,Tulare|CA|US|-119.35|36.21|62|N|,Tulsa|OK|US|-95.99|36.15|413|NW|,Tultepec|MX15|MX|-99.13|19.68|65|N|,Tultitlan de Mariano Escobedo|MX15|MX|-99.17|19.65|28|N|,Tulua|valle del cauca department|CO|-76.2|4.08|221|W|,Tumkur|karnataka|IN|77.1|13.34|307|W|tumakuru,Tumxuk|xinjiang|CN|79.06|39.87|135|W|tumushuke,Tunduma|songwe|TZ|32.77|-9.3|219|W|,Tungi|dhaka division|BD|90.4|23.89|337|W|tongi,Tunis|tunis governorate|TN|10.17|36.82|693|W|tunez;tunes;tunisi;tunus,Tunja|boyaca|CO|-73.36|5.54|172|W|,Tuong Mai|hanoi|VN|105.86|20.99|136|W|,Tupelo|MS|US|-88.7|34.26|35|N|,Turin|piedmont|IT|7.69|45.07|847|W|torino;turijn;turim;turyn,Turkistan|turkistan|KZ|68.26|43.29|227|W|turkestan;turquistao,Turku|southwest finland|FI|22.27|60.45|206|W|abo,Turlock|CA|US|-120.85|37.49|72|N|,Turmero|aragua|VE|-67.47|10.23|344|W|,Turpan|xinjiang|CN|89.18|42.95|273|W|tourfan;turfan,Tuscaloosa|AL|US|-87.57|33.21|111|N|,Tustin|CA|US|-117.83|33.75|80|N|,Tuxpam de Rodriguez Cano|MX30|MX|-97.41|20.96|84|N|tuxpam,Tuxpan|MX14|MX|-103.38|19.56|27|N|,Tuxtepec|MX20|MX|-96.13|18.09|159|NW|san juan bautista;san juan bautista tuxtla,Tuxtla|MX05|MX|-93.12|16.75|604|NW|tuxtla gtz;tuxtla gutierrez,Tuy Hoa|dak lak|VN|109.32|13.1|155|W|,Tuzla|federation of b h|BA|18.67|44.54|142|W|,Tver|tver oblast|RU|35.9|56.86|420|W|twer;kalinin,Twentynine Palms|CA|US|-116.05|34.14|26|N|,Twin Falls|ID|US|-114.46|42.56|47|N|,Tychy|silesia|PL|18.97|50.14|130|W|tichau,Tyler|TX|US|-95.3|32.35|103|N|,Tyre|south governorate|LB|35.19|33.27|135|W|sur;tiro;tyr;tyros;tyrus,Tyumen|tyumen oblast|RU|65.53|57.15|768|W|tioumen;tjumen;tiumen;tjoemen;tumen,Ube|yamaguchi|JP|131.25|33.94|173|W|,Uberaba|minas gerais|BR|-47.93|-19.75|356|W|,Uberlandia|minas gerais|BR|-48.28|-18.92|754|W|,Udaipur|rajasthan|IN|73.71|24.59|451|W|udajpur,Udon Thani|udon thani|TH|102.79|17.42|130|W|,Udupi|karnataka|IN|74.75|13.33|165|W|,Ueda|nagano|JP|138.28|36.4|157|W|,UEruemqi|xinjiang|CN|87.6|43.8|3029|W|urumqi;urumchi;urumczi;urumtschi;urumci;dihua,UEskuedar|istanbul|TR|29.01|41.02|524|W|uskudar;scutari;skutari,Ufa|bashkortostan republic|RU|55.97|54.74|1120|W|oefa;oufa,Ugep|cross river state|NG|8.08|5.81|200|W|,Uige|uige|AO|15.06|-7.61|322|W|,Uijeongbu-si|gyeonggi do|KR|127.05|37.74|479|W|uijeongbu,Uji|kyoto|JP|135.8|34.89|192|W|udzi,Ujjain|madhya pradesh|IN|75.78|23.18|515|W|udzdzain,Ulan Bator|ulaanbaatar|MN|106.88|47.91|844|W|ulaanbaatar;oulan bator;ulaan baatar;ulan batur;ulanbatar;ula bator,Ulan-Ude|buryatiya republic|RU|107.6|51.83|360|W|oelan oede;oulan oude,Ulanhot|inner mongolia|CN|122.08|46.08|165|W|,Ulanqab|inner mongolia|CN|113.13|40.99|550|W|,Ulhasnagar|maharashtra|IN|73.15|19.22|516|W|,Ulsan|ulsan|KR|129.32|35.54|1098|W|ulsan si,Ulu Bedok||SG|103.93|1.33|276|W|,Uluberiya|west bengal|IN|88.1|22.48|235|W|,Ulyanovsk|ulyanovsk|RU|48.39|54.33|626|W|oulianovsk;uljanowsk;oeljanovsk;ul janovsk;ulianovsk;uljanovsk,Uman|MX31|MX|-89.75|20.88|39|N|,Umarkot|sindh|PK|69.74|25.36|144|W|,Umea|vasterbotten|SE|20.26|63.83|130|W|uumaja,Umraniye|istanbul|TR|29.12|41.02|573|W|,Umuahia|abia state|NG|7.49|5.52|370|W|,Unaizah|al qassim region|SA|44|26.1|183|W|,Ungaran|central java|ID|110.41|-7.14|171|W|,Union|NJ|US|-74.26|40.7|56|N|,Union City|CA|US|-122.02|37.6|74|N|,Union City|NJ|US|-74.02|40.78|69|N|east cost cities,Universal City|CA|US|-118.35|34.14|105|N|,University|FL|US|-82.44|28.07|41|N|,University City|MO|US|-90.31|38.66|35|N|,University Heights|SK|CA|-106.58|52.14|51|N|,University Heights|NY|US|-73.91|40.86|27|N|,University of Texas|TX|US|-97.74|30.29|53|N|,University Park|FL|US|-80.37|25.75|26|N|,University Place|WA|US|-122.55|47.24|32|N|,Unnao|uttar pradesh|IN|80.49|26.55|161|W|,Upland|CA|US|-117.65|34.1|76|N|,Upper Alton|IL|US|-90.15|38.91|29|N|,Upper Arlington|OH|US|-83.06|39.99|34|N|,Upper West Side|NY|US|-73.98|40.79|226|NW|,Uppsala|uppsala|SE|17.64|59.86|177|W|upsala,Uptown|IL|US|-87.65|41.97|55|N|,Urayasu|chiba|JP|139.9|35.66|171|W|,Urbana|IL|US|-88.21|40.11|42|N|,Urbandale|IA|US|-93.71|41.63|44|N|,Urdaneta|ilocos|PH|120.57|15.98|145|W|kota urdaneta;urdaneta de pangasinan,Urganch|xorazm region|UZ|60.63|41.55|145|W|ourguentch;urgench;urgentj;urgenc,Uriangato|MX11|MX|-101.18|20.14|51|N|,Ursynow|mazovia|PL|21.05|52.15|149|W|,Uruapan|MX16|MX|-102.06|19.42|299|NW|uruapan del progreso,Usak|usak|TR|29.41|38.67|369|W|,Usera|madrid|ES|-3.7|40.39|141|W|,Ussuriysk|primorye|RU|131.96|43.8|157|W|oessoeriejsk;ussurijsk;ussuryjsk,Ust-Kamenogorsk|east kazakhstan|KZ|82.61|49.97|319|W|ust kamienogorsk;oskemen,Utica|NY|US|-75.23|43.1|61|N|,Utrecht|utrecht|NL|5.12|52.09|376|W|utreque,Utsunomiya|tochigi|JP|139.88|36.57|518|W|ucunomija,Uvira|south kivu|CD|29.14|-3.4|407|W|,Uyo|akwa ibom state|NG|7.93|5.05|436|W|,Vacaville|CA|US|-121.99|38.36|96|N|,Vadodara|gujarat|IN|73.21|22.3|1822|W|,Val-d'Or|QC|CA|-77.8|48.1|25|N|,Val-des-Arbres|QC|CA|-73.68|45.6|40|N|,Valdivia|los rios region|CL|-73.25|-39.81|133|W|,Valdosta|GA|US|-83.28|30.83|55|N|,Valencia|carabobo|VE|-68|10.16|1619|W|,Valencia|valencia|ES|-0.38|39.47|824|W|valence;valencie;valensiya;valenza;walencja,Valencia|CA|US|-118.61|34.44|148|NW|,Valente Diaz|MX30|MX|-96.22|19.16|25|N|,Valenzuela|national capital region|PH|120.97|14.7|725|W|,Valera|trujillo|VE|-70.6|9.32|244|W|,Valinhos|sao paulo|BR|-47|-22.97|132|W|,Valladolid|castille and leon|ES|-4.72|41.66|300|W|pincia;pucela,Valladolid|MX31|MX|-88.2|20.69|48|N|,Valle de Bravo|MX15|MX|-100.13|19.2|25|N|,Valle de La Pascua|guarico|VE|-66.01|9.22|153|W|,Valle de Santiago|MX11|MX|-101.19|20.39|68|N|,Valle Hermoso|MX28|MX|-97.81|25.67|48|N|,Valledupar|cesar department|CO|-73.25|10.47|490|W|,Vallejo|CA|US|-122.26|38.1|121|N|,Valley Glen|CA|US|-118.42|34.19|60|N|,Valley Stream|NY|US|-73.71|40.66|37|N|,Valparaiso|valparaiso|CL|-71.63|-33.04|282|W|,Valparaiso|IN|US|-87.06|41.47|32|N|,Valparaiso de Goias|goias|BR|-47.98|-16.07|218|W|,Valrico|FL|US|-82.24|27.94|35|N|,Valsad|gujarat|IN|72.93|20.61|139|W|,Van|van|TR|43.38|38.49|525|W|,Van Nuys|CA|US|-118.45|34.19|136|NW|,Vancouver|BC|CA|-123.12|49.25|662|NW|vancover,Vancouver|WA|US|-122.66|45.64|196|NW|,Vanderbijlpark|gauteng|ZA|27.84|-26.71|246|W|,Vantaa|uusimaa|FI|25.04|60.29|252|W|vanda,Vapi|gujarat|IN|72.9|20.37|163|W|,Varamin|tehran|IR|51.65|35.32|225|W|,Varanasi|uttar pradesh|IN|83.01|25.32|1164|W|benares;kashi;waranasi,Varginha|minas gerais|BR|-45.43|-21.55|136|W|,Varna|varna|BG|27.91|43.22|318|W|warna,Varzea Grande|mato grosso|BR|-56.13|-15.65|300|W|,Vasyl'evsky Ostrov|st petersburg|RU|30.25|59.94|203|W|vasilinsaari,Vaudreuil-Dorion|QC|CA|-74.03|45.4|25|N|,Vaughan|ON|CA|-79.5|43.84|323|NW|,Velikiy Novgorod|novgorod oblast|RU|31.27|58.52|222|W|velikij novgorod;novgorod;nowogrod wielki;veliki novgorod;veliky novgorod;weliki nowgorod,Vellore|tamil nadu|IN|79.13|12.92|484|W|velur,Venice|CA|US|-118.46|33.99|40|N|venice beach,Ventura|CA|US|-119.29|34.28|96|N|,Venustiano Carranza|MX09|MX|-99.1|19.44|430|NW|,Veracruz|MX30|MX|-96.14|19.18|428|NW|veracruz llave,Veraval|gujarat|IN|70.37|20.91|171|W|,Verdun|QC|CA|-73.57|45.46|69|N|,Vereeniging|gauteng|ZA|27.93|-26.67|474|W|,Verhunskyi|luhansk|UA|39.37|48.59|185|W|verhunskyi rayon;zhovtnevyi;zhovtnevyi rayon,Vermont Square|CA|US|-118.3|34|47|N|,Vernon|BC|CA|-119.27|50.27|40|N|,Vernon Hills|IL|US|-87.98|42.22|26|N|,Verona|veneto|IT|10.99|45.44|258|W|verone;werona,Vespasiano|minas gerais|BR|-43.92|-19.69|138|W|,Vestal|NY|US|-76.05|42.09|28|N|,Vestavia Hills|AL|US|-86.79|33.45|34|N|,Viamao|rio grande do sul|BR|-51.02|-30.08|231|W|,Viana|luanda|AO|13.37|-8.91|865|W|,Victor Rosales|MX32|MX|-102.7|22.95|32|N|,Victoria|central and western|HK|114.14|22.29|956|W|,Victoria|BC|CA|-123.35|48.44|289|NW|,Victoria|TX|US|-97|28.81|67|N|,Victoria de Durango|MX10|MX|-104.66|24.02|518|NW|durango,Victoria-Downtown|BC|CA|-123.36|48.43|46|N|downtown victoria,Victoria-Fraserview|BC|CA|-123.07|49.22|31|N|,Victoriaville|QC|CA|-71.97|46.05|34|N|,Victorville|CA|US|-117.29|34.54|122|N|,Vidisha|madhya pradesh|IN|77.81|23.53|155|W|vidisa,Vienna|state of vienna|AT|16.37|48.21|1691|W|viena;viyana;wien;vienne;vien;viden;wenen;wieden;bec,Vientiane|vientiane prefecture|LA|102.6|17.97|840|W|vienciana;vientian;wientian,Viet Tri|phu tho|VN|105.4|21.32|415|W|,Viet Yen|bac ninh|VN|106.13|21.27|205|W|distretto di viet yen,Vigo|galicia|ES|-8.72|42.23|293|W|,Vijayapura|karnataka|IN|75.72|16.82|327|W|bidzapur;bijapur;vijapura,Vijayawada|andhra pradesh|IN|80.65|16.51|1143|W|vidzajavada;widzajawada;bejawada,Vila Andrade|sao paulo|BR|-46.73|-23.63|168|W|,Vila Curuca|sao paulo|BR|-46.42|-23.51|140|W|,Vila Flor|luanda|AO|13.31|-8.98|256|W|,Vila Jacui|sao paulo|BR|-46.46|-23.5|134|W|,Vila Velha|espirito santo|BR|-40.29|-20.33|394|W|,Villa Canales|guatemala|GT|-90.53|14.48|155|W|,Villa Mercedes|biobio|CL|-71.98|-37.4|131|W|,Villa Nueva|guatemala|GT|-90.59|14.53|618|W|,Villa Vicente Guerrero|MX29|MX|-98.17|19.12|60|N|,Villaflores|MX05|MX|-93.27|16.23|37|N|,Villagran|MX11|MX|-101|20.51|27|N|,Villahermosa|MX27|MX|-92.94|17.99|353|NW|villa hermosa,Villavicencio|meta department|CO|-73.63|4.13|321|W|,Ville-Emard|QC|CA|-73.6|45.45|30|N|,Ville-Marie|QC|CA|-73.57|45.5|104|N|,Villeray-Saint-Michel-Parc-Extension|QC|CA|-73.61|45.56|144|NW|,Villeurbanne|rhone alpes|FR|4.88|45.77|131|W|,Vilnius|vilnius|LT|25.28|54.69|542|W|vilna;vilnus;wilno;wilna,Vina del Mar|valparaiso|CL|-71.55|-33.02|334|W|,Vineland|NJ|US|-75.03|39.49|60|N|,Vinh|nghe an province|VN|105.69|18.67|790|W|,Vinh Chau|can tho city|VN|105.98|9.32|183|W|,Vinh Long|vinh long|VN|105.97|10.25|137|W|,Vinnytsya|vinnytsia|UA|28.47|49.23|430|W|vinnycja;vinniza;vinnytsia;winnica;winnyzja,Viransehir|sanliurfa|TR|39.76|37.22|154|W|,Virar|maharashtra|IN|72.81|19.46|1222|W|,Virginia Beach|VA|US|-75.98|36.85|454|NW|virginian bch,Visakhapatnam|andhra pradesh|IN|83.2|17.68|1063|W|vishakhapatnam;vizag,Visalia|CA|US|-119.29|36.33|130|NW|,Vista|CA|US|-117.24|33.2|100|N|,Vitebsk|vitebsk|BY|30.2|55.19|358|W|wizebsk;vicebsk;vitsebsk;vitsyebsk;witebsk,Vitoria|espirito santo|BR|-40.34|-20.32|312|W|,Vitoria da Conquista|bahia|BR|-40.84|-14.87|396|W|,Vitoria de Santo Antao|pernambuco|BR|-35.29|-8.12|134|W|,Vizianagaram|andhra pradesh|IN|83.41|18.12|228|W|,Vladikavkaz|north ossetia alania|RU|44.67|43.04|306|W|vladicaucaso;wladikawkas;wladykaukaz,Vladimir|vladimir oblast|RU|40.4|56.14|357|W|wladimir;wladymir;wlodzimierz,Vladivostok|primorye|RU|131.87|43.11|604|W|vladyvostok;wladiwostok;wladywostok,Volgodonsk|rostov|RU|42.15|47.51|167|W|wolgodonsk,Volgograd|volgograd oblast|RU|44.5|48.71|1013|W|volgogrado;wolgograd;estalingrado;stalingrad;stalingrado;tsaritsyn;zarizyn,Vologda|vologda oblast|RU|39.88|59.22|312|W|wologda,Volta Redonda|rio de janeiro|BR|-44.1|-22.52|279|W|v redonda,Volzhsky|volgograd oblast|RU|44.78|48.79|323|W|volzjskij;volzski;wolschski,Voronezh|voronezh oblast|RU|39.19|51.67|1047|W|voronej;voronezj;voronez;woronesch;woronez,Votorantim|sao paulo|BR|-47.44|-23.55|133|W|,Vryheid|kwazulu natal|ZA|30.79|-27.77|150|W|,Vung Tau|ho chi minh city hcmc|VN|107.08|10.35|464|W|cap saint jacques;cape saint james;saint james;st james;ville du cap,Vyhurivshchyna-Troyeshchyna|kyiv city|UA|30.6|50.51|240|W|,Vykhino-Zhulebino|moscow|RU|37.81|55.7|216|W|,Waco|TX|US|-97.15|31.55|132|NW|,Wad Medani|al jazirah|SD|33.52|14.4|332|W|vad medeni;wad madani,Wadi as Sir|amman|JO|35.82|31.95|181|W|wadi al seer,Wafangdian|liaoning|CN|122.01|39.62|454|W|,Wah Cantt|punjab|PK|72.75|33.77|400|W|,Waiau-Pacific Palisades|HI|US|-157.95|21.4|47|N|,Waipahu|HI|US|-158.01|21.39|38|N|,Wakayama|wakayama|JP|135.17|34.23|356|W|,Wake Forest|NC|US|-78.51|35.98|38|N|,Wakefield|NY|US|-73.85|40.9|52|N|,Waldorf|MD|US|-76.94|38.62|67|N|,Walla Walla|WA|US|-118.34|46.06|32|N|,Walnut|CA|US|-117.87|34.02|30|N|,Walnut Creek|CA|US|-122.06|37.91|68|N|,Walnut Grove|BC|CA|-122.64|49.16|25|N|,Walsall|england|GB|-1.98|52.59|172|W|,Waltham|MA|US|-71.24|42.38|63|N|,Wan Chai|wan chai|HK|114.17|22.28|166|W|wanchai,Wandsbek|hamburg|DE|10.08|53.58|411|W|,Wangsa Maju|kuala lumpur|MY|101.74|3.2|215|W|,Wanning|hainan|CN|110.38|18.8|545|W|,Wanxian|chongqing|CN|108.37|30.82|859|W|wan hsien;wanshien,Wanzhou|chongqing|CN|108.4|30.76|1545|W|,Warangal|telangana|IN|79.58|18|704|W|,Warder|somali|ET|45.34|6.97|450|W|,Warner Robins|GA|US|-83.63|32.62|73|N|,Warren|MI|US|-83.01|42.49|134|NW|,Warren|OH|US|-80.82|41.24|40|N|,Warri|delta|NG|5.75|5.52|910|W|,Warrington|england|GB|-2.58|53.39|172|W|,Warsaw|mazovia|PL|21.01|52.23|1702|W|warszawa;varsavia;varsova;varsovia;varsovie;varsava;warsawa;warschau,Warwick|RI|US|-71.42|41.7|81|N|,Wasco|CA|US|-119.34|35.59|26|N|,Washington|DC|US|-77.04|38.9|689|NW|washington d c;district of columbia;washington dc;waszyngton;territory of columbia,Washington Heights|NY|US|-73.94|40.85|152|NW|,Watampone|south sulawesi|ID|120.33|-4.54|149|W|,Waterbury|CT|US|-73.05|41.56|108|N|,Waterford|MI|US|-83.41|42.69|75|N|,Waterfront Communities-The Island|ON|CA|-79.38|43.63|65|N|,Waterloo|ON|CA|-80.52|43.47|104|N|,Waterloo|IA|US|-92.34|42.49|68|N|,Watertown|MA|US|-71.18|42.37|31|N|,Watertown|NY|US|-75.91|43.97|26|N|,Watsonville|CA|US|-121.76|36.91|53|N|,Watthana|bangkok|TH|100.59|13.73|171|W|vadhana,Waukegan|IL|US|-87.84|42.36|88|N|,Waukesha|WI|US|-88.23|43.01|71|N|,Wausau|WI|US|-89.63|44.96|39|N|,Wauwatosa|WI|US|-88.01|43.05|47|N|,Waxahachie|TX|US|-96.85|32.39|33|N|,Wayne|NJ|US|-74.28|40.93|57|N|,Wayne|PA|US|-75.39|40.04|30|N|,Wazirabad|punjab|PK|74.12|32.44|152|W|,Weatherford|TX|US|-97.8|32.76|28|N|,Weifang|shandong|CN|119.1|36.71|2044|W|wej fang,Weihai|shandong|CN|122.11|37.51|844|W|wej chaj,Weinan|shaanxi|CN|109.51|34.5|1199|W|wej nan,Welkom|free state|ZA|26.74|-27.98|431|W|,Welland|ON|CA|-79.25|42.98|52|N|,Wellesley|MA|US|-71.29|42.3|27|N|,Wellington|wellington region|NZ|174.78|-41.29|381|W|,Wellington|FL|US|-80.24|26.66|62|N|,Wenatchee|WA|US|-120.31|47.42|33|N|,Wenchang|hainan|CN|110.8|19.55|560|W|van xuong,Wenshan City|yunnan|CN|104.25|23.36|450|W|,Wentzville|MO|US|-90.85|38.81|35|N|,Wenzhou|zhejiang|CN|120.67|28|2650|W|wen cou;on chau;yongjia,Weru|west java|ID|108.5|-6.71|139|W|,Weslaco|TX|US|-97.99|26.16|39|N|,Wesley Chapel|FL|US|-82.33|28.24|44|N|,West Albany|NY|US|-73.78|42.68|93|N|,West Allis|WI|US|-88.01|43.02|60|N|,West Babylon|NY|US|-73.35|40.72|43|N|,West Bend|WI|US|-88.18|43.43|31|N|,West Bloomfield Township|MI|US|-83.38|42.57|64|N|west bloomfield;xa west bloomfield,West Chicago|IL|US|-88.2|41.88|27|N|,West Coon Rapids|MN|US|-93.35|45.16|62|N|,West Covina|CA|US|-117.94|34.07|108|N|,West Des Moines|IA|US|-93.71|41.58|64|N|,West Elkridge|MD|US|-76.73|39.21|28|N|,West End|BC|CA|-123.13|49.28|47|N|vancouver west end,West Englewood|IL|US|-87.67|41.78|32|N|,West Falls Church|VA|US|-77.19|38.86|29|N|,West Fargo|ND|US|-96.9|46.87|33|N|tay fargo,West Gulfport|MS|US|-89.09|30.4|71|N|,West Hartford|CT|US|-72.74|41.76|63|N|,West Haven|CT|US|-72.95|41.27|54|N|,West Hill|ON|CA|-79.18|43.77|27|N|,West Hills|CA|US|-118.64|34.2|41|N|,West Hollywood|FL|US|-80.18|26.02|60|N|,West Hollywood|CA|US|-118.36|34.09|36|N|tay hollywood,West Humber-Clairville|ON|CA|-79.6|43.72|33|N|,West Islip|NY|US|-73.31|40.71|28|N|,West Jerusalem|jerusalem|IL|35.22|31.78|400|W|vest jerusalem;vestjerusalem;vastra jerusalem;westjerusalem,West Jordan|UT|US|-111.94|40.61|111|N|,West Kelowna|BC|CA|-119.58|49.86|28|N|district of west kelowna,West Lafayette|IN|US|-86.91|40.43|45|N|,West Lake Sammamish|WA|US|-122.1|47.58|33|N|,West Lawn|IL|US|-87.72|41.77|32|N|,West Linn|OR|US|-122.61|45.37|26|N|,West Little River|FL|US|-80.24|25.86|34|N|,West Lynchburg|VA|US|-79.18|37.4|65|N|,West Memphis|AR|US|-90.18|35.15|25|N|,West Milford|NJ|US|-74.37|41.13|26|N|,West New York|NJ|US|-74.01|40.79|53|N|,West Oak Lane|PA|US|-75.17|40.07|38|N|,West Orange|NJ|US|-74.24|40.8|48|N|,West Palm Beach|FL|US|-80.05|26.72|120|N|,West Raleigh|NC|US|-78.66|35.79|338|NW|,West Ridge|IL|US|-87.69|42|72|N|,West Roxbury|MA|US|-71.15|42.28|30|N|,West Sacramento|CA|US|-121.53|38.58|52|N|,West Scarborough|ME|US|-70.39|43.57|27|N|,West Seneca|NY|US|-78.8|42.85|44|N|,West Springfield|MA|US|-72.62|42.11|27|N|,West Torrington|CT|US|-73.14|41.82|36|N|,West Town|IL|US|-87.67|41.89|86|N|,West Valley City|UT|US|-112|40.69|136|NW|west valley,West Vancouver|BC|CA|-123.16|49.33|45|N|vancouver barat,West Village|NY|US|-74.01|40.73|32|N|,West Warwick|RI|US|-71.52|41.7|30|N|,West Whittier-Los Nietos|CA|US|-118.07|33.98|25|N|,Westchester|FL|US|-80.33|25.75|29|N|,Westerville|OH|US|-82.93|40.13|38|N|,Westfield|MA|US|-72.75|42.13|41|N|westfield centre,Westfield|IN|US|-86.13|40.04|36|N|,Westfield|NJ|US|-74.35|40.66|30|N|,Westlake|OH|US|-81.92|41.46|32|N|,Westland|MI|US|-83.4|42.32|82|N|,Westminster|CO|US|-105.04|39.84|116|N|,Westminster|CA|US|-118.01|33.76|92|N|,Westminster-Branson|ON|CA|-79.45|43.78|26|N|,Westmont|CA|US|-118.3|33.94|31|N|,Weston|FL|US|-80.4|26.1|69|N|,Westonaria|gauteng|ZA|27.65|-26.32|156|W|,Westport|CT|US|-73.36|41.14|26|N|,Wethersfield|CT|US|-72.65|41.71|26|N|,Wexford/Maryvale|ON|CA|-79.3|43.75|27|N|,Weymouth|MA|US|-70.94|42.22|54|N|,Whalley|BC|CA|-122.87|49.18|102|N|,Wharton|PA|US|-75.16|39.93|49|N|,Wheat Ridge|CO|US|-105.08|39.77|31|N|wheatridge,Wheaton|IL|US|-88.11|41.87|53|N|,Wheaton|MD|US|-77.06|39.04|48|N|,Wheeling|IL|US|-87.93|42.14|38|N|,Wheeling|WV|US|-80.72|40.06|27|N|,Whitby|ON|CA|-78.93|43.88|138|NW|,Whitchurch-Stouffville|ON|CA|-79.32|44|49|N|,White Bear Lake|MN|US|-93.01|45.08|25|N|,White Plains|NY|US|-73.76|41.03|58|N|,Whitehorse|YT|CA|-135.05|60.72|28|N|,Whitestone|NY|US|-73.82|40.79|36|N|,Whitman|PA|US|-75.16|39.92|49|N|,Whitney|NV|US|-115.04|36.1|38|N|,Whittier|CA|US|-118.03|33.98|87|N|,Wichita|KS|US|-97.34|37.69|396|NW|,Wichita Falls|TX|US|-98.49|33.91|104|N|,Wiesbaden|hesse|DE|8.24|50.09|288|W|,Wigan|england|GB|-2.64|53.54|175|W|,Wildomar|CA|US|-117.28|33.6|35|N|,Wildwood|MO|US|-90.66|38.58|35|N|,Wilkes-Barre|PA|US|-75.88|41.25|40|N|,Williamsburg|NY|US|-73.95|40.71|33|N|,Williamsport|PA|US|-77|41.24|29|N|,Willingboro|NJ|US|-74.87|40.03|31|N|,Williston|ND|US|-103.62|48.15|26|N|,Willoughby|BC|CA|-122.68|49.13|31|N|,Willowbrook|CA|US|-118.26|33.92|35|N|,Willowdale|ON|CA|-79.4|43.77|79|N|,Willowdale East|ON|CA|-79.4|43.77|50|N|,Wilmette|IL|US|-87.72|42.07|27|N|,Wilmington|NC|US|-77.95|34.24|115|N|,Wilmington|DE|US|-75.55|39.75|70|N|,Wilmington|CA|US|-118.26|33.78|52|N|,Wilson|NC|US|-77.92|35.72|49|N|,Winchester|NV|US|-115.12|36.13|27|N|,Winchester|VA|US|-78.16|39.19|27|N|,Windhoek|khomas region|NA|17.08|-22.56|386|W|vinduque;windhuk,Windsor|ON|CA|-83.02|42.3|229|NW|,Windsor|CO|US|-104.9|40.48|32|N|,Windsor|CT|US|-72.64|41.85|28|N|,Windsor|CA|US|-122.82|38.55|27|N|,Winejok|northern bahr al ghazal|SS|27.57|9.01|300|W|,Winnetka|CA|US|-118.57|34.21|47|N|,Winnipeg|MB|CA|-97.15|49.88|749|NW|vinnipeg;winnipeg city,Winona|MN|US|-91.64|44.05|27|N|,Winston-Salem|NC|US|-80.24|36.1|241|NW|,Winter Garden|FL|US|-81.59|28.57|40|N|,Winter Haven|FL|US|-81.73|28.02|37|N|,Winter Park|FL|US|-81.34|28.6|29|N|,Winter Springs|FL|US|-81.31|28.7|34|N|,Woburn|ON|CA|-79.23|43.77|53|N|,Woburn|MA|US|-71.15|42.48|39|N|,Wola|mazovia|PL|20.96|52.23|140|W|,Wollongong|new south wales|AU|150.89|-34.42|280|W|,Wolverhampton|england|GB|-2.12|52.59|263|W|,Wong Tai Sin|wong tai sin district|HK|114.18|22.35|425|W|,Wonju|gangwon do|KR|127.95|37.35|332|W|,Wonsan|kangwon do|KP|127.44|39.15|329|W|gensan,Woodburn|OR|US|-122.86|45.14|25|N|,Woodbury|MN|US|-92.96|44.92|67|N|,Woodhaven|NY|US|-73.86|40.69|36|N|,Woodland|CA|US|-121.77|38.68|58|N|,Woodland Hills|CA|US|-118.61|34.17|70|N|,Woodlands||SG|103.79|1.44|254|W|,Woodlawn|MD|US|-76.73|39.32|37|N|,Woodridge|IL|US|-88.05|41.75|33|N|,Woodside|NY|US|-73.91|40.75|41|N|,Woodstock|ON|CA|-80.75|43.13|40|N|,Woodstock|GA|US|-84.52|34.1|29|N|,Woodstock|IL|US|-88.45|42.31|25|N|,Woonsocket|RI|US|-71.51|42|41|N|,Wooster|OH|US|-81.94|40.81|26|N|,Worcester|MA|US|-71.8|42.26|206|NW|,Wroclaw|lower silesia|PL|17.03|51.1|672|W|breslau;breslavia;vratislav;bresslau;vratislavie,Wuerzburg|bavaria|DE|9.95|49.79|133|W|wurzburg;wurtzbourg;wurtzburgo;wurzburgo,Wugang|hunan|CN|110.63|26.73|132|W|,Wuhai|inner mongolia|CN|106.82|39.68|218|W|wu chaj,Wuhan|hubei|CN|114.27|30.58|10392|W|vuhan;vu han;wu chan,Wuhu|anhui|CN|118.43|31.35|1598|W|wu chu,Wujiaqu|xinjiang|CN|87.52|44.16|154|W|,Wuppertal|north rhine westphalia|DE|7.15|51.26|360|W|,Wuwei|gansu|CN|102.63|37.93|1010|W|,Wuxi|jiangsu|CN|120.29|31.57|4396|W|vo tich;wu si,Wuxue|hubei|CN|115.55|29.85|220|W|,Wuyishan|fujian|CN|118.03|27.76|137|W|ciudad de wuyishan;vu di son;wuyishan city,Wuzhong|ningxia|CN|106.2|37.99|7202|W|,Wuzhou|guangxi|CN|111.29|23.48|761|W|ngo chau;wu cou,Wyandotte|MI|US|-83.15|42.21|25|N|,Wylie|TX|US|-96.54|33.02|46|N|,Wyoming|MI|US|-85.71|42.91|75|N|,Xai-Xai|gaza province|MZ|33.64|-25.05|154|W|,Xalapa de Enriquez|MX30|MX|-96.92|19.53|424|NW|xalapa;jalapa;jalapa enriques;jalapa enriquez,Xalisco|MX18|MX|-104.9|21.44|35|N|jalisco,Xenia|OH|US|-83.93|39.68|25|N|,Xi'an|shaanxi|CN|108.93|34.26|9600|W|tay an;xian,Xiamen|fujian|CN|118.08|24.48|4617|W|amoy;sia men,Xiangtan|hunan|CN|112.9|27.85|959|W|siang tchan;tuong dam,Xiangyang|hubei|CN|112.14|32.04|1294|W|siang jang;tuong duong;xiangfan,Xianning|hubei|CN|114.32|29.84|512|W|,Xiantao|hubei|CN|113.44|30.37|239|W|sientaochen,Xianyang|shaanxi|CN|108.7|34.34|1034|W|ham duong;sien jang,Xiaogan|hubei|CN|113.92|30.93|908|W|siao kan,Xiayang|shanghai|CN|121.12|31.15|137|W|,Xichang|sichuan|CN|102.26|27.9|481|W|,Xico|MX15|MX|-98.95|19.27|384|NW|san miguel xico,Xicotepec de Juarez|MX21|MX|-97.96|20.28|39|N|,Xilinhot|inner mongolia|CN|116.07|43.94|349|W|,Xindi|hubei|CN|113.47|29.82|175|W|,Xingning|guangdong|CN|115.72|24.15|274|W|,Xingtai|hebei|CN|114.49|37.06|798|W|hinh dai;sing tchaj,Xingyi|guizhou|CN|104.91|25.1|322|W|,Xining|qinghai|CN|101.76|36.63|1677|W|si ning;sining;tay ninh,Xinji|hebei|CN|115.22|37.93|145|W|,Xinqiao|shanghai|CN|121.31|31.07|155|W|,Xintai|shandong|CN|117.75|35.9|222|W|,Xinxiang|henan|CN|113.8|35.19|1047|W|,Xinyang|henan|CN|114.07|32.12|1230|W|,Xinyi|jiangsu|CN|118.35|34.38|300|W|,Xinyu|jiangxi|CN|114.93|27.8|839|W|sin ju;tan du,Xinyuan|xinjiang|CN|83.25|43.43|282|W|,Xinzhou|shanxi|CN|112.73|38.41|544|W|han chau;sin cou,Xiuying|hainan|CN|110.29|20|290|W|,Xizhi|taipei|TW|121.66|25.07|204|W|hsichih;xizhi district,Xochimilco|MX09|MX|-99.1|19.25|442|NW|delegacion xochimilco,Xuan Loc|dong nai|VN|107.23|10.93|253|W|,Xuancheng|anhui|CN|118.76|30.95|774|W|,Xuanhua|hebei|CN|115.06|40.61|373|W|,Xuchang|henan|CN|113.86|34.03|1265|W|,Xuhui|shanghai|CN|121.45|31.2|1109|W|,Xuzhou|jiangsu|CN|117.28|34.2|1253|W|pengcheng,Ya'an|sichuan|CN|103|29.99|612|W|,Yachiyo|chiba|JP|140.12|35.74|199|W|,Yaizu|shizuoka|JP|138.32|34.87|139|W|,Yakima|WA|US|-120.51|46.6|93|N|,Yakutsk|sakha|RU|129.72|62.03|235|W|iakoutsk;jakutsk,Yamagata|yamagata|JP|140.37|38.23|248|W|,Yamaguchi|yamaguchi|JP|131.47|34.18|193|W|jamaguci,Yamato|kanagawa|JP|139.45|35.47|242|W|,Yamoussoukro|lacs district|CI|-5.28|6.82|275|W|jamusukro;yamusukro,Yamuna Nagar|haryana|IN|77.28|30.13|217|W|yamunanagar,Yan'an|shaanxi|CN|109.49|36.6|475|W|,Yanbu|medina region|SA|38.06|24.09|200|W|yambo;yanbu al bahr;yenbo,Yancheng|jiangsu|CN|120.16|33.36|1615|W|diem thanh;jen ccheng,Yangcheng|chongqing|CN|106.26|30|186|W|,Yangchun|guangdong|CN|111.78|22.17|153|W|,Yanghang|shanghai|CN|121.44|31.37|204|W|,Yangjiang|guangdong|CN|111.96|21.86|1292|W|duong giang;jang tiang,Yangju|gyeonggi do|KR|127.06|37.83|179|W|,Yangon|yangon|MM|96.16|16.81|4477|W|rangoon;rangoun;rangum;rangun;yankoun,Yangpu|shanghai|CN|121.52|31.26|1210|W|,Yangquan|shanxi|CN|113.56|37.86|731|W|jang cchuan,Yangsan|gyeongsangnam do|KR|129.03|35.34|358|W|jangsan,Yangshuo|guangxi|CN|110.49|24.78|300|W|,Yangzhou|jiangsu|CN|119.44|32.4|1584|W|duong chau;jang cou,Yanji|jilin|CN|129.5|42.89|326|W|dien cat,Yantai|shandong|CN|121.44|37.48|2227|W|jen tchaj;yen dai;chefoo,Yanzhou|shandong|CN|116.83|35.55|254|W|,Yao|osaka|JP|135.6|34.62|273|W|,Yaounde|centre|CM|11.52|3.87|1299|W|jaunde;yaunde,Yarmouth|MA|US|-70.23|41.71|25|N|,Yaroslavl|yaroslavl oblast|RU|39.87|57.63|608|W|jaroslawl;iaroslavl;jaroslavl;jaroslaw,Yasenevo|moscow|RU|37.52|55.61|180|W|,Yautepec|MX17|MX|-99.07|18.88|105|N|yautepec de zaragoza,Yawnghwe|shan state|MM|96.93|20.66|188|W|,Yazd|yazd province|IR|54.37|31.9|477|W|jasd;jazd,Yei|central equatoria|SS|30.68|4.09|260|W|,Yekaterinburg|sverdlovsk oblast|RU|60.62|56.86|1495|W|jekaterinburg;ekaterimburgo;ekaterinbourg;ekaterinburg;ekaterinburgo;jekaterinenburg;jekaterynburg,Yenagoa|bayelsa state|NG|6.27|4.93|365|W|,Yeosu|jeollanam do|KR|127.66|34.76|268|W|josu,Yerevan|yerevan|AM|44.51|40.18|1144|W|erevan;erivan;erywan;jerevan;jerewan,Yibin|sichuan|CN|104.64|28.76|836|W|nghi tan,Yichang|hubei|CN|111.28|30.71|1350|W|i cchang;nghi xuong,Yichun|jiangxi|CN|114.4|27.83|1045|W|i cchun;nghi xuan,Yichun|heilongjiang|CN|128.88|47.72|155|W|i cchun;y xuan,Yinchuan|ningxia|CN|106.27|38.47|1487|W|jin cchuan;ngan xuyen,Yingkou|liaoning|CN|122.23|40.66|591|W|newchwang;eiko,Yingtan|jiangxi|CN|117|28.23|214|W|jing tchan;ung dam,Yintai|shaanxi|CN|109.1|35.12|217|W|,Yishun New Town||SG|103.83|1.43|228|W|,Yiwu|zhejiang|CN|120.08|29.32|1481|W|,Yixing|jiangsu|CN|119.82|31.36|1285|W|,Yizhou|guangxi|CN|108.67|24.5|155|W|,Yogyakarta|yogyakarta|ID|110.36|-7.8|375|W|di yogyakarta;jogjakarta;kota yogyakarta,Yokkaichi|mie|JP|136.62|34.97|305|W|,Yokohama|kanagawa|JP|139.65|35.43|3777|W|jokohama,Yokosuka|kanagawa|JP|139.67|35.28|409|W|jokosuka,Yola|adamawa|NG|12.48|9.21|460|W|,Yonago|tottori|JP|133.33|35.43|148|W|,Yong'an|chongqing|CN|109.46|31.02|144|W|fengjie;feng chieh;kweichow,Yongchuan|chongqing|CN|105.89|29.35|192|W|,Yongji|shanxi|CN|110.44|34.87|452|W|,Yongkang|taiwan|TW|120.26|23.02|233|W|vinh khang;yongkang district,Yongzhou|hunan|CN|111.61|26.42|1020|W|lingling,Yonkers|NY|US|-73.9|40.93|201|NW|,Yopal|casanare department|CO|-72.39|5.34|168|W|,Yorba Linda|CA|US|-117.81|33.89|67|N|,York|england|GB|-1.08|53.96|156|W|,York|PA|US|-76.73|39.96|43|N|,York University Heights|ON|CA|-79.49|43.77|27|N|,Yoshkar-Ola|mariy el republic|RU|47.89|56.64|268|W|iochkar ola;joschkar ola;josjkar ola;joszkar ola;joskar ola,Youngstown|OH|US|-80.65|41.1|64|N|,Yuba City|CA|US|-121.62|39.14|66|N|kota yuba,Yucaipa|CA|US|-117.04|34.03|53|N|,Yuci|shanxi|CN|112.73|37.68|235|W|,Yuen Long|yuen long|HK|114.03|22.45|200|W|,Yuen Long Kau Hui|yuen long|HK|114.03|22.45|169|W|,Yuen Long San Hui|yuen long|HK|114.03|22.43|200|W|,Yuepu|shanghai|CN|121.42|31.43|139|W|,Yueyang|hunan|CN|113.09|29.37|991|W|jue jang,Yukon|OK|US|-97.76|35.51|25|N|,Yulin|guangxi|CN|110.15|22.63|1056|W|ju lin,Yuma|AZ|US|-114.62|32.73|95|N|,Yuncheng|shanxi|CN|110.99|35.02|680|W|jun ccheng,Yunfu|guangdong|CN|112.04|22.93|2612|W|jun fu;van phu,Yunlong|jiangsu|CN|117.25|34.25|345|W|,Yunusobod|tashkent|UZ|69.28|41.37|352|W|,Yuriria|MX11|MX|-101.13|20.21|25|N|,Yushu|qinghai|CN|97.01|33|141|W|,Yuzhno-Sakhalinsk|sakhalin oblast|RU|142.74|46.95|198|W|juzjno sakhalinsk;ioujno sakhalinsk;iujno sahalinsk;iujno sakhalinsk;joezjno sachalinsk;juschno sachalinsk;juzjno sachalinsk;juznosachalinsk;juzno sachalinsk;juzno sahalinsk;yujno sahalinsk;yuzhno sajalinsk,Zaanstad|north holland|NL|4.81|52.45|140|W|,Zabrze|silesia|PL|18.79|50.32|192|W|hindenburg,Zacapu|MX16|MX|-101.79|19.82|50|N|,Zacatecas|MX32|MX|-102.58|22.77|129|N|zacatecas city,Zacatelco|MX29|MX|-98.24|19.22|42|N|,Zacatlan|MX21|MX|-97.96|19.94|33|N|,Zagazig|sharqia|EG|31.5|30.59|430|W|,Zagreb|zagreb|HR|15.98|45.81|663|W|zagabria;zagrep;zagrzeb;zahreb;agram,Zahedan|sistan and baluchestan|IR|60.86|29.5|551|W|,Zama|kanagawa|JP|139.39|35.49|132|W|,Zamboanga|zamboanga peninsula|PH|122.07|6.91|1018|W|zamboanga city,Zamora de Hidalgo|MX16|MX|-102.29|19.98|186|NW|zamora,Zanesville|OH|US|-82.01|39.94|25|N|,Zango|luanda|AO|13.38|-9.01|198|W|,Zanjan|zanjan|IR|48.5|36.68|357|W|zandschan,Zanzibar|zanzibar urban west|TZ|39.2|-6.16|709|W|sansibar stadt;zanzibar by,Zaoyang|hubei|CN|112.75|32.13|184|W|,Zaozhuang|shandong|CN|117.55|34.86|899|W|cao cuang,Zapopan|MX14|MX|-103.39|20.72|1476|NW|,Zaporizhzhya|zaporizhzhia|UA|35.12|47.85|710|W|zaporizjzja;zaporizzja;alessandrovia;saporischschja;zaporiggia;zaporijjia;zaporiyia;zaporizhzhia;zaporoye;zaporozhye;zaporoze;zaporozi;alexandrovsk;saporoschje;saporoshje,Zapotlanejo|MX14|MX|-103.07|20.62|32|N|,Zaragoza|aragon|ES|-0.88|41.66|686|W|saragossa;saragosse;saragozza;saragoca;zaragosa,Zaria|kaduna state|NG|7.72|11.11|980|W|,Zarichnyi|sumy|UA|34.81|50.9|150|W|zarichnyi rayon,Zarqa|zarqa|JO|36.09|32.07|792|W|zarka,Zawiya|az zawiyah|LY|12.73|32.75|186|W|,Zelenograd|moscow|RU|37.18|55.98|215|W|selenograd,Zemun|central serbia|RS|20.4|44.85|155|W|semlin,Zenica|federation of b h|BA|17.9|44.2|164|W|,Zeytinburnu|istanbul|TR|28.9|40.99|280|W|,Zhabei|shanghai|CN|121.46|31.26|840|W|,Zhalantun|inner mongolia|CN|122.74|48.01|132|W|,Zhangjiagang|jiangsu|CN|120.54|31.86|1432|W|,Zhangjiajie|hunan|CN|110.48|29.13|441|W|cang tia tie,Zhangjiakou|hebei|CN|114.87|40.78|692|W|cang tia kchou,Zhangye|gansu|CN|100.45|38.93|507|W|cang jie,Zhangzhou|fujian|CN|117.66|24.51|589|W|chuong chau;cang cou,Zhanjiang|guangdong|CN|110.39|21.23|1400|W|,Zhaodong|heilongjiang|CN|125.96|46.05|154|W|,Zhaoqing|guangdong|CN|112.46|23.05|1553|W|cao cching;shiu hing,Zhaotong|yunnan|CN|103.72|27.32|787|W|chieu thong;cao tchung,Zheleznodorozhnyy|moscow oblast|RU|38.02|55.74|141|W|zjeleznodorozjnyj,Zhengding|hebei|CN|114.57|38.15|193|W|,Zhengzhou|henan|CN|113.65|34.76|4253|W|czengczou;cengcou;ceng cou,Zhenjiang|jiangsu|CN|119.46|32.21|950|W|chinkiang,Zhenping|henan|CN|112.23|33.03|181|W|,Zhenzhou|jiangsu|CN|119.17|32.28|176|W|icheng ku,Zhicheng|hubei|CN|111.5|30.3|159|W|chihkiang,Zhongshan|guangdong|CN|113.38|22.52|3841|W|trung son;xiangshan;cung san,Zhongwei|ningxia|CN|105.19|37.51|1174|W|cung wej,Zhoukou|henan|CN|114.63|33.63|505|W|cou kchou,Zhoushan|zhejiang|CN|122.2|29.99|882|W|,Zhu Cheng City|shandong|CN|119.4|36|1000|W|,Zhubei|taiwan|TW|121.01|24.84|212|W|cu pej,Zhucheng|shandong|CN|119.4|35.99|499|W|,Zhuhai|guangdong|CN|113.57|22.28|2207|W|cu chaj,Zhulebino|moscow|RU|37.85|55.7|150|W|,Zhumadian|henan|CN|114.03|32.98|721|W|,Zhuzhou|hunan|CN|113.15|27.83|1129|W|chu chau;cu cou;jianning,Zhytomyr|zhytomyr oblast|UA|28.68|50.26|261|W|jytomyr;jitomir;schytomyr;zjytomyr;zytomierz;zitomir;zytomyr,Zibo|shandong|CN|118.06|36.79|3129|W|c po;truy bac,Zigong|sichuan|CN|104.78|29.34|1262|W|c kung,Ziguinchor|ziguinchor|SN|-16.27|12.57|214|W|,Zinacantepec|MX15|MX|-99.73|19.28|54|N|,Zinder|zinder region|NE|8.99|13.81|318|W|,Zionsville|IN|US|-86.26|39.95|26|N|,Zipaquira|cundinamarca|CO|-74|5.02|130|W|,Zitong|chongqing|CN|105.83|30.18|212|W|,Ziyang|sichuan|CN|104.65|30.12|905|W|,Zlatoust|chelyabinsk|RU|59.65|55.17|191|W|slatoust;zlato oest;zlatooust,Zliten|misratah|LY|14.57|32.47|203|W|zalitan;zlitan,Zoucheng|shandong|CN|116.97|35.4|277|W|trau thanh,Zuerich|zurich|CH|8.55|47.37|415|W|zurich;curych;zurigo;zurique;zurych;zurih,Zuglo|budapest|HU|19.11|47.52|130|W|lerchenfeld,Zumpango|MX15|MX|-99.1|19.8|280|NW|zumpango de ocampo,Zunyi|guizhou|CN|106.91|27.69|2037|W|cun i;tuan nghia";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var RH=Object.freeze({\u00F8:"o",\u0153:"oe",\u00E6:"ae",\u00DF:"ss",\u0142:"l",\u0111:"d",\u00F0:"d",\u00FE:"th",\u0131:"i",\u0127:"h",\u0167:"t",\u014B:"n",\u0138:"k",\u0259:"e",\u01DD:"e",\u0133:"ij",\u0140:"l",\u017F:"s"}),Lie=new RegExp(`[${Object.keys(RH).join("")}]`,"gu");function _H(r){return r.replace(Lie,e=>RH[e]??e)}function vS(r){return r==null?"":_H(String(r).replace(new RegExp("\\p{No}","gu")," ").normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/&/g,"and").replace(/[^\p{L}\p{Nd}]/gu,"")}var Iie=4;function t7(r){return r.length>=Iie}var Ak=class{constructor(r=(e,t)=>e===t){this.same=r}same;map=new Map;add(r,e){let t=vS(r);if(!t7(t))return;let o=this.map.get(t);if(!o){this.map.set(t,{value:e,ambiguous:!1});return}!o.ambiguous&&!this.same(o.value,e)&&(o.ambiguous=!0)}get(r){if(!t7(r))return;let e=this.map.get(r);return e&&!e.ambiguous?e.value:void 0}isAmbiguous(r){return this.map.get(r)?.ambiguous===!0}entries(){return Array.from(this.map.entries())}};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Rie=new RegExp("([\\p{Ll}\\p{Nd}])(\\p{Lu})","gu"),_ie=/[_\-./]+/g,Uie=/[^\p{L}\p{M}\p{N}\x00-\x7F]/gu;function Bie(r){return r?String(r).normalize("NFC").replace(Rie,"$1 $2").replace(_ie," ").replace(Uie," ").toLowerCase().split(/\s+/).filter(e=>e.length>0):[]}function wk(r){return!(r instanceof Date)||isNaN(r.getTime())?null:r.getUTCHours()===0&&r.getUTCMinutes()===0&&r.getUTCSeconds()===0&&r.getUTCMilliseconds()===0?"utc":r.getHours()===0&&r.getMinutes()===0&&r.getSeconds()===0&&r.getMilliseconds()===0?"local":null}function Die(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())),t=r.getFullYear();return t>=0&&t<100&&e.setUTCFullYear(t),e}function Oie(r,e){let t=[];for(let o of r){if(!o||!/date|time/i.test(String(o.dataType??"")))continue;let n=0,i=!0;for(let a of e){let s=a?a[o.name]:void 0;if(s==null||s==="")continue;if(!(s instanceof Date)){i=!1;break}let l=wk(s);if(l===null){i=!1;break}l==="local"&&n++}i&&n>0&&t.push(o.name)}return t}function UH(r,e){let t=Oie(r,e);return t.length===0?{rows:e,columns:t}:{rows:e.map(o=>{if(!o)return o;let n={...o};for(let i of t){let a=n[i];a instanceof Date&&wk(a)==="local"&&(n[i]=Die(a))}return n}),columns:t}}function Fie(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds())),t=r.getFullYear();return t>=0&&t<100&&e.setUTCFullYear(t),e}function Gie(r){let e=!1;for(let t of r)if(!(t==null||t==="")){if(!(t instanceof Date)||isNaN(t.getTime()))return!1;wk(t)===null&&(e=!0)}return e}function Vie(r,e){let t=[];for(let o of r)!o||!/date|time/i.test(String(o.dataType??""))||Gie(e.map(n=>n?n[o.name]:void 0))&&t.push(o.name);return t}function BH(r,e){let t=Vie(r,e);return t.length===0?{rows:e,columns:t}:{rows:e.map(o=>{if(!o)return o;let n={...o};for(let i of t){let a=n[i];a instanceof Date&&(n[i]=Fie(a))}return n}),columns:t}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Hie="AB|CA|Alberta|-113.75|52.18,AK|US|Alaska|-148.32|61.29,AL|US|Alabama|-86.73|33.08,AR|US|Arkansas|-92.85|35.29,AZ|US|Arizona|-111.99|33.32,BC|CA|British Columbia|-122.73|49.27,CA|US|California|-119.21|35.2,CO|US|Colorado|-105|39.63,CT|US|Connecticut|-73.01|41.42,DC|US|District of Columbia|-77.04|38.9,DE|US|Delaware|-75.59|39.57,FL|US|Florida|-81.29|27.53,GA|US|Georgia|-84.02|33.43,HI|US|Hawaii|-157.73|21.26,IA|US|Iowa|-92.79|41.88,ID|US|Idaho|-115.65|44.2,IL|US|Illinois|-88.05|41.67,IN|US|Indiana|-86.27|40.23,KS|US|Kansas|-96|38.59,KY|US|Kentucky|-84.91|38.13,LA|US|Louisiana|-91.28|30.57,MA|US|Massachusetts|-71.28|42.32,MB|CA|Manitoba|-97.3|49.88,MD|US|Maryland|-76.79|39.18,ME|US|Maine|-70.01|43.92,MI|US|Michigan|-83.69|42.56,MN|US|Minnesota|-93.26|44.98,MO|US|Missouri|-92.66|38.73,MS|US|Mississippi|-89.62|32.36,MT|US|Montana|-111.07|46.37,MX01|MX|Aguascalientes|-102.29|21.91,MX02|MX|Baja California|-116.5|32.46,MX03|MX|Baja California Sur|-110.12|23.52,MX04|MX|Campeche|-91.08|19.25,MX05|MX|Chiapas|-92.77|16.28,MX06|MX|Chihuahua|-106.27|30.1,MX07|MX|Coahuila|-101.88|26.32,MX08|MX|Colima|-103.94|19.15,MX09|MX|Mexico City|-99.13|19.41,MX10|MX|Durango|-104.24|24.64,MX11|MX|Guanajuato|-101.37|20.87,MX12|MX|Guerrero|-99.83|17.31,MX13|MX|Hidalgo|-98.81|20.13,MX14|MX|Jalisco|-103.39|20.64,MX15|MX|M\xE9xico|-99.14|19.51,MX16|MX|Michoac\xE1n|-101.68|19.49,MX17|MX|Morelos|-99.15|18.88,MX18|MX|Nayarit|-104.89|21.5,MX19|MX|Nuevo Le\xF3n|-100.26|25.69,MX20|MX|Oaxaca|-96.23|17.05,MX21|MX|Puebla|-98.12|19.07,MX22|MX|Quer\xE9taro|-100.35|20.57,MX23|MX|Quintana Roo|-87.09|20.7,MX24|MX|San Luis Potos\xED|-100.7|22.22,MX25|MX|Sinaloa|-107.49|24.63,MX26|MX|Sonora|-111.05|29.37,MX27|MX|Tabasco|-92.98|17.99,MX28|MX|Tamaulipas|-98.33|24.92,MX29|MX|Tlaxcala|-98.19|19.31,MX30|MX|Veracruz|-96.31|19.2,MX31|MX|Yucat\xE1n|-89.52|20.94,MX32|MX|Zacatecas|-102.7|22.93,NB|CA|New Brunswick|-65.73|45.83,NC|US|North Carolina|-79.61|35.57,ND|US|North Dakota|-98.8|47.31,NE|US|Nebraska|-96.42|41.07,NH|US|New Hampshire|-71.37|43,NJ|US|New Jersey|-74.34|40.51,NL|CA|Newfoundland and Labrador|-52.77|47.55,NM|US|New Mexico|-106.28|34.69,NS|CA|Nova Scotia|-63.11|44.86,NV|US|Nevada|-115.95|36.72,NY|US|New York|-74.13|40.89,OH|US|Ohio|-82.75|40.53,OK|US|Oklahoma|-97.01|35.66,ON|CA|Ontario|-79.27|43.94,OR|US|Oregon|-122.75|44.96,PA|US|Pennsylvania|-76.12|40.23,PE|CA|Prince Edward Island|-63.13|46.23,QC|CA|Quebec|-73.14|45.89,RI|US|Rhode Island|-71.45|41.79,SC|US|South Carolina|-80.69|33.6,SD|US|South Dakota|-98.66|43.89,SK|CA|Saskatchewan|-105.99|51.63,TN|US|Tennessee|-87.53|35.63,TX|US|Texas|-97.51|31.01,UT|US|Utah|-111.96|40.5,VA|US|Virginia|-77.08|37.61,VT|US|Vermont|-73.21|44.48,WA|US|Washington|-121.46|47.29,WI|US|Wisconsin|-88.6|43.36,WV|US|West Virginia|-81.42|38.99,WY|US|Wyoming|-105.54|42.26,YT|CA|Yukon|-135.05|60.72",zie="006|-66.84|18.26,007|-66.15|18.15,008|-64.74|17.74,009|-66.12|18.37,010|-72.6|42.26,011|-72.53|42.07,012|-73.21|42.37,013|-72.51|42.58,014|-71.81|42.59,015|-71.85|42.23,016|-71.84|42.28,017|-71.44|42.33,018|-71.21|42.64,019|-70.89|42.66,020|-71.28|42.12,021|-71.05|42.31,022|-71.04|42.35,023|-70.86|41.98,024|-71.22|42.37,025|-70.6|41.71,026|-70.2|41.73,027|-71.07|41.77,028|-71.62|41.69,029|-71.47|41.82,030|-71.51|42.9,031|-71.48|43,032|-71.65|43.57,033|-71.58|43.26,034|-72.19|42.91,035|-71.31|44.69,036|-72.32|43.17,037|-72.13|43.69,038|-71.1|43.56,039|-70.76|43.24,040|-70.6|43.78,041|-70.27|43.7,042|-70.49|44.38,043|-69.75|44.3,044|-68.83|45.45,045|-69.57|43.99,046|-67.8|44.79,047|-68.34|46.55,048|-69.17|44.2,049|-69.97|44.99,050|-72.43|43.85,051|-72.65|43.28,052|-73.14|43.03,053|-72.77|42.94,054|-72.98|44.58,056|-72.6|44.35,057|-73.04|43.69,058|-72.12|44.68,059|-71.7|44.79,060|-72.81|41.88,061|-72.69|41.74,062|-72.12|41.81,063|-72.03|41.5,064|-72.61|41.46,065|-72.94|41.36,066|-73.22|41.24,067|-73.24|41.68,068|-73.42|41.28,069|-73.57|41.14,070|-74.28|40.76,071|-74.2|40.74,072|-74.2|40.68,073|-74.08|40.71,074|-74.4|41.09,075|-74.17|40.92,076|-74.01|40.94,077|-74.17|40.28,078|-74.81|40.97,079|-74.55|40.74,080|-74.98|39.78,081|-75.07|39.94,082|-74.68|39.32,083|-75.04|39.45,084|-74.48|39.35,085|-74.62|40.25,086|-74.68|40.23,087|-74.22|39.96,088|-74.72|40.54,089|-74.48|40.45,100|-73.96|40.77,101|-73.95|40.78,102|-74.02|40.72,103|-74.15|40.58,104|-73.85|40.9,105|-73.75|41.27,106|-73.74|41.02,107|-73.84|40.96,108|-73.8|40.95,109|-74.27|41.3,110|-73.69|40.74,111|-73.93|40.76,112|-73.94|40.66,113|-73.84|40.73,114|-73.77|40.69,115|-73.62|40.71,116|-73.88|40.57,117|-73.23|40.82,118|-73.5|40.77,119|-72.53|40.95,120|-74.22|42.92,121|-74.4|43.46,122|-73.81|42.7,123|-73.96|42.82,124|-74.27|42.09,125|-73.7|41.89,126|-73.88|41.69,127|-74.75|41.74,128|-73.91|43.61,129|-74.03|44.53,130|-76.16|43.08,131|-76.46|43.27,132|-76.2|43.03,133|-75.07|43.45,134|-75.35|43.03,135|-75.15|43.14,136|-75.39|44.33,137|-75.2|42.21,138|-75.46|42.43,139|-75.88|42.12,140|-78.48|43.01,141|-78.7|42.49,142|-78.8|42.91,143|-78.96|43.12,144|-77.71|42.96,145|-77.17|43.14,146|-77.65|43.17,147|-78.84|42.21,148|-77.18|42.29,149|-76.78|42.09,150|-80.23|40.56,151|-80.18|40.53,152|-79.97|40.46,153|-80.24|40.01,154|-79.65|39.92,155|-78.8|39.95,156|-79.47|40.33,157|-79.02|40.71,158|-78.66|41.32,159|-78.84|40.35,160|-79.88|40.93,161|-80.3|41.19,162|-79.35|41.08,163|-79.58|41.59,164|-80|41.87,165|-80.04|42.1,166|-78.28|40.48,167|-78.47|41.76,168|-78|40.97,169|-77.37|41.8,170|-77.29|40.44,171|-76.78|40.33,172|-77.81|39.98,173|-76.93|39.89,174|-76.72|39.97,175|-76.24|40.05,176|-76.34|40.05,177|-77.22|41.34,178|-76.77|40.93,179|-76.27|40.69,180|-75.45|40.67,181|-75.47|40.6,182|-75.88|40.9,183|-75.19|41.12,184|-75.38|41.53,185|-75.68|41.37,186|-76.17|41.4,187|-75.86|41.22,188|-76.12|41.82,189|-75.14|40.36,190|-75.37|39.97,191|-75.15|40.01,193|-75.78|39.92,194|-75.46|40.19,195|-75.9|40.42,196|-75.95|40.34,197|-75.68|39.53,198|-75.58|39.77,199|-75.46|38.83,200|-77.02|38.9,201|-77.68|38.9,202|-77.03|38.89,203|-77.01|38.86,204|-77.05|38.89,205|-77.01|38.87,206|-76.76|38.45,207|-76.78|38.88,208|-77.23|39.15,209|-76.99|39.05,210|-76.32|39.53,211|-76.73|39.58,212|-76.58|39.31,214|-76.55|39,215|-79.08|39.56,216|-76.02|38.86,217|-77.5|39.52,218|-75.57|38.27,219|-75.94|39.57,220|-77.25|38.78,221|-77.25|38.92,222|-77.11|38.88,223|-77.13|38.79,224|-77.25|38.22,225|-77.51|38.09,226|-78.25|39.03,227|-78.05|38.49,228|-78.79|38.57,229|-78.55|38.02,230|-78.09|37.66,231|-76.96|37.55,232|-77.46|37.51,233|-76.3|36.68,234|-76.66|36.77,235|-76.26|36.87,236|-76.44|37.12,237|-76.38|36.85,238|-77.41|36.94,239|-78.39|37.03,240|-80.1|37.23,241|-79.89|36.9,242|-82.49|36.83,243|-81.13|36.86,244|-79.51|38.05,245|-79.11|37.15,246|-81.8|37.19,247|-81.14|37.39,248|-81.64|37.47,249|-80.32|37.95,250|-81.45|38.27,251|-81.89|38.64,252|-81.45|38.77,253|-81.64|38.42,254|-78.11|39.45,255|-82.19|38.25,256|-82.08|37.76,257|-82.41|38.4,258|-81.21|37.72,259|-80.89|37.83,260|-80.63|40.05,261|-81.27|39.2,262|-80.02|38.75,263|-80.23|39.27,264|-80.65|39.21,265|-80.05|39.59,266|-80.8|38.48,267|-78.98|39.33,268|-79.12|38.88,270|-80.45|36.24,271|-80.24|36.06,272|-79.82|35.86,273|-79.52|35.55,274|-79.81|36.09,275|-78.54|35.93,276|-78.65|35.81,277|-78.9|35.99,278|-77.32|35.88,279|-76.5|36.19,280|-81.2|35.4,281|-80.41|35.21,282|-80.83|35.22,283|-78.94|34.96,284|-78.23|34.39,285|-77.23|35.06,286|-81.36|36.06,287|-82.78|35.51,288|-82.55|35.6,289|-83.97|35.11,290|-80.88|34.19,291|-80.62|33.71,292|-80.96|34.04,293|-81.86|34.78,294|-80.08|33.05,295|-79.49|34.07,296|-82.57|34.61,297|-80.92|34.83,298|-81.74|33.51,299|-80.96|32.55,300|-84.08|33.85,301|-84.91|34.04,302|-84.55|33.25,303|-84.42|33.77,304|-82.11|32.48,305|-83.81|34.58,306|-83.14|33.86,307|-85.1|34.71,308|-82.34|33.35,309|-82.01|33.4,310|-83.42|32.64,312|-83.64|32.83,313|-81.49|31.68,314|-81.15|32.03,315|-82.21|31.4,316|-83.21|31.02,317|-83.87|31.48,318|-84.69|32.45,319|-84.95|32.47,320|-82.58|30.27,321|-81.48|29.39,322|-81.69|30.3,323|-84.25|30.29,324|-85.58|30.55,325|-87.03|30.76,326|-82.6|29.58,327|-81.28|28.79,328|-81.32|28.47,329|-80.67|27.96,330|-80.58|25.31,331|-80.38|25.74,333|-80.25|26.13,334|-81.01|26.64,335|-82.22|28.19,336|-82.47|28.01,337|-82.73|27.85,338|-81.64|27.72,339|-81.71|26.77,341|-81.32|26.11,342|-82.16|27.29,344|-82.35|29.01,346|-82.52|28.41,347|-81.4|28.29,349|-80.72|27.34,350|-86.8|34.05,351|-86.38|33.43,352|-86.77|33.5,354|-87.86|33.07,355|-87.71|33.96,356|-87.4|34.67,357|-86.26|34.75,358|-86.59|34.69,359|-85.94|34.27,360|-86.09|32.09,361|-86.27|32.31,362|-85.65|33.53,363|-85.56|31.34,364|-86.97|31.38,365|-88.14|31.32,366|-88.19|30.68,367|-87.34|32.33,368|-85.41|32.61,369|-88.25|32.12,370|-87.02|36.12,371|-86.23|35.75,372|-86.83|36.15,373|-85.36|35.32,374|-85.33|35.06,376|-82.3|36.36,377|-84.31|36.27,378|-83.35|36.3,379|-83.97|35.97,380|-89.43|35.55,381|-89.96|35.1,382|-88.68|36.29,383|-88.5|35.61,384|-87.36|35.34,385|-85.34|36.18,386|-89.76|34.57,387|-90.81|33.54,388|-88.63|34.36,389|-89.9|33.77,390|-90|32.53,391|-90.67|32.51,392|-90.22|32.32,393|-88.8|32.42,394|-89.26|31.23,395|-89|30.59,396|-90.67|31.32,397|-88.87|33.53,398|-84.67|31.32,400|-85.29|38.07,401|-86.2|37.85,402|-85.66|38.19,403|-84.2|38.06,404|-84.42|37.53,405|-84.45|38.04,406|-84.87|38.22,407|-84.12|36.95,408|-83.26|36.9,409|-83.74|36.95,410|-84.32|38.64,411|-83.06|38.38,412|-82.67|37.89,413|-83.48|37.58,414|-83.15|37.84,415|-82.39|37.46,416|-82.78|37.54,417|-83.25|37.23,418|-82.88|37.21,420|-88.57|36.9,421|-86.09|36.89,422|-87.11|36.95,423|-87.02|37.52,424|-87.7|37.47,425|-84.71|37.15,426|-84.82|36.81,427|-85.73|37.32,430|-82.9|40.21,431|-82.99|39.69,432|-82.97|39.98,433|-83.38|40.55,434|-83.3|41.42,435|-84.22|41.46,436|-83.54|41.67,437|-81.66|39.85,438|-81.88|40.27,439|-80.9|40.25,440|-80.97|41.64,441|-81.66|41.42,442|-81.6|41.13,443|-81.54|41.07,444|-80.77|41.09,445|-80.64|41.05,446|-81.53|40.65,447|-81.39|40.83,448|-82.77|41.02,449|-82.55|40.74,450|-84.48|39.43,451|-83.84|39.16,452|-84.48|39.18,453|-84.3|39.97,454|-84.18|39.74,455|-83.81|39.94,456|-82.86|38.99,457|-81.78|39.35,458|-84.23|40.83,460|-86.13|40.17,461|-86.18|39.62,462|-86.14|39.79,463|-87.05|41.41,464|-87.34|41.55,465|-86.08|41.44,466|-86.28|41.66,467|-85.21|41.17,468|-85.17|41.09,469|-86.14|40.76,470|-85.08|39.16,471|-86.02|38.43,472|-85.74|39.05,473|-85.15|40.09,474|-86.63|38.99,475|-87.03|38.46,476|-87.53|38.13,477|-87.58|38.03,478|-87.29|39.45,479|-87.11|40.5,480|-82.79|42.83,481|-83.62|42.2,482|-83.1|42.38,483|-83.35|42.66,484|-83.22|43.29,485|-83.69|43.03,486|-84.36|43.99,487|-83.67|44.45,488|-84.67|43.02,489|-84.59|42.74,490|-85.54|42.2,491|-86.36|41.87,492|-84.36|42.06,493|-85.57|43.33,494|-86.14|43.39,495|-85.66|42.96,496|-85.52|44.44,497|-84.37|45.17,498|-86.94|46.17,499|-88.93|46.6,500|-94.77|41.63,501|-92.79|41.84,502|-93.67|42.12,503|-93.63|41.59,504|-93.37|43.17,505|-94.45|42.77,506|-92.45|42.65,507|-92.31|42.49,508|-94.56|40.96,510|-95.91|42.6,511|-96.39|42.52,512|-96.06|43.28,513|-95.16|43.27,514|-95.08|42.11,515|-95.55|41.44,516|-95.37|40.74,520|-90.98|42.46,521|-91.73|43.2,522|-92.31|41.9,523|-91.66|41.87,524|-91.69|41.96,525|-92.46|40.95,526|-91.44|40.88,527|-90.88|41.64,528|-90.61|41.56,530|-88.24|43.51,531|-88.33|42.75,532|-87.98|43.06,534|-87.86|42.74,535|-89.66|42.95,537|-89.38|43.08,538|-90.73|42.88,539|-89.55|43.64,540|-92.46|45.08,541|-88.23|45.09,542|-87.6|44.52,543|-88.01|44.53,544|-89.85|44.93,545|-89.86|45.89,546|-90.87|43.93,547|-91.52|44.85,548|-91.63|46.04,549|-88.96|44.19,550|-92.98|45.17,551|-93.08|44.96,553|-94.06|44.99,554|-93.31|45.01,556|-91.03|47.67,557|-92.68|47.39,558|-92.08|46.96,559|-92.28|43.89,560|-94.04|44.02,561|-95.65|43.92,562|-95.75|45.08,563|-94.59|45.83,564|-94.5|46.63,565|-96.08|46.86,566|-94.31|47.88,567|-96.22|48.39,570|-97.07|43.48,571|-96.76|43.54,572|-97.18|45.04,573|-98.53|43.91,574|-98.93|45.36,575|-100.61|43.86,576|-101.59|45.43,577|-103.11|44.26,580|-97.39|46.66,581|-96.83|46.86,582|-97.72|48.25,583|-99.34|48.32,584|-99.12|46.88,585|-100.98|46.76,586|-102.99|46.75,587|-101.7|48.34,588|-103.48|48.2,590|-108.62|45.98,591|-108.45|45.69,592|-105.6|48.2,593|-105.58|46.4,594|-111.24|47.79,595|-109.12|48.38,596|-111.74|46.65,597|-112.31|45.48,598|-114.25|46.97,599|-114.57|48.37,600|-88.15|42.29,601|-88.47|42.01,602|-87.69|42.04,603|-87.79|41.89,604|-88.09|41.39,605|-88.55|41.69,606|-87.69|41.83,607|-87.82|42.03,608|-87.76|41.84,609|-87.92|40.8,610|-89.56|42.18,611|-89.08|42.28,612|-90.29|41.5,613|-89.16|41.34,614|-90.43|40.82,615|-89.68|40.71,616|-89.61|40.72,617|-88.89|40.52,618|-88.15|40.11,619|-88.19|39.66,620|-90.01|39.13,622|-89.72|38.41,623|-91.02|39.99,624|-88.19|39.04,625|-89.21|39.63,626|-90|39.86,627|-89.66|39.8,628|-88.65|38.35,629|-88.89|37.55,630|-90.83|38.35,631|-90.32|38.64,633|-91.11|39.02,634|-91.78|39.93,635|-92.61|40.2,636|-90.64|37.61,637|-89.81|37.37,638|-89.73|36.55,639|-90.62|36.84,640|-94.1|39.07,641|-94.58|39.14,644|-94.69|40.13,645|-94.83|39.75,646|-93.55|39.89,647|-94.15|38.06,648|-94.35|36.93,650|-92.23|38.45,651|-92.19|38.51,652|-92.38|39.21,653|-93.26|38.71,654|-92.03|37.93,655|-91.92|37.67,656|-93.08|36.76,657|-92.43|37.03,658|-93.3|37.22,660|-95.12|38.84,661|-94.73|39.11,662|-94.72|38.95,664|-96.15|39.64,665|-96.34|39.4,666|-95.76|39.06,667|-95.23|37.64,668|-96.39|38.36,669|-97.86|39.77,670|-98.49|37.33,671|-98.4|37.44,672|-97.33|37.7,673|-95.81|37.23,674|-97.79|38.98,675|-98.99|38.25,676|-99.47|39.34,677|-101.15|39.35,678|-100.82|37.91,679|-101.43|37.18,680|-96.46|41.55,681|-96.05|41.24,683|-96.93|40.39,684|-97.26|40.89,685|-96.69|40.82,686|-97.68|41.55,687|-98.16|42.43,688|-99.15|41.34,689|-98.9|40.34,690|-100.99|40.37,691|-101.59|41.42,692|-100.64|42.67,693|-102.84|42.29,700|-89.93|29.63,701|-89.93|30.02,703|-90.65|29.62,704|-90.27|30.66,705|-92.25|30.2,706|-93.21|30.34,707|-91.2|30.57,708|-91.1|30.45,710|-93.4|32.45,711|-93.75|32.47,712|-91.95|32.56,713|-91.86|31.43,714|-92.84|31.57,716|-91.75|33.61,717|-92.79|33.48,718|-93.84|33.66,719|-93.61|34.4,720|-91.9|34.92,721|-92.56|34.93,722|-92.37|34.7,723|-90.59|35.07,724|-90.76|36.04,725|-91.81|36.01,726|-92.93|36.15,727|-94.05|36.11,728|-93.33|35.3,729|-94.08|35.29,730|-97.83|35.31,731|-97.5|35.43,734|-97.14|34.21,735|-98.81|34.53,736|-99.33|35.52,737|-98.2|36.42,738|-99.54|36.5,739|-101.67|36.74,740|-96.19|36.34,741|-95.96|36.15,743|-95.02|36.55,744|-95.44|35.64,745|-95.65|34.66,746|-97.05|36.71,747|-95.41|34.02,748|-96.66|35.17,749|-94.69|35.23,750|-96.76|33.06,751|-96.32|32.48,752|-96.78|32.79,753|-96.84|32.81,754|-95.67|33.37,755|-94.45|33.3,756|-94.58|32.49,757|-95.37|32.24,758|-95.68|31.44,759|-94.29|31.29,760|-97.54|32.59,761|-97.38|32.77,762|-97.44|33.52,763|-98.87|33.73,764|-98.59|32.61,765|-97.62|31.11,766|-97.06|31.7,767|-97.15|31.57,768|-99.37|31.23,769|-100.88|31.03,770|-95.39|29.79,772|-95.37|29.77,773|-95.24|30.48,774|-96.02|29.38,775|-94.98|29.68,776|-94.16|30.27,777|-94.19|29.96,778|-96.32|30.67,779|-96.95|28.92,780|-99.01|28.67,781|-97.93|29.08,782|-98.53|29.47,783|-98.14|27.63,784|-97.44|27.73,785|-98.19|26.39,786|-98.1|30.27,787|-97.78|30.3,788|-100.26|29.44,789|-96.87|29.92,790|-101.63|35.48,791|-101.85|35.21,792|-100.57|34.25,793|-102.15|33.37,794|-101.88|33.58,795|-100.31|32.7,796|-99.72|32.46,797|-102.22|31.57,798|-104.17|30.53,799|-106.16|31.8,800|-105.11|39.91,801|-104.47|39.51,802|-104.93|39.78,803|-105.31|40.04,804|-106.16|39.98,805|-105.35|40.57,806|-104.49|40.38,807|-103.09|40.4,808|-103.16|39.12,809|-104.67|38.79,810|-103.58|37.77,811|-106.39|37.54,812|-106.39|38.46,813|-108.42|37.49,814|-108.02|38.43,815|-108.7|38.92,816|-107.86|39.99,820|-105.27|41.31,821|-110.51|44.57,822|-104.67|42.39,823|-107.03|41.75,824|-108.65|44.32,825|-108.91|43.14,826|-106.43|43.1,827|-105|44.2,828|-106.71|44.55,829|-109.71|42.82,830|-110.51|43.7,831|-110.53|42.6,832|-112.17|42.66,833|-114.23|42.81,834|-111.63|43.86,835|-115.77|46.07,836|-115.99|44,837|-116.04|43.58,838|-116.47|47.77,840|-110.86|40.53,841|-111.81|40.71,843|-112.18|41.67,844|-112.01|41.23,845|-109.72|38.09,846|-111.68|39.63,847|-112.82|37.61,850|-112.09|33.63,851|-111.41|33,852|-111.69|33.6,853|-113.44|33.49,855|-110.3|33.43,856|-110.59|32,857|-111.09|32.18,859|-109.81|34.23,860|-111.15|35.89,863|-112.57|34.85,864|-113.79|35.66,865|-109.55|36.03,870|-106.9|35.22,871|-106.72|35.12,873|-108.56|35.44,874|-108.23|36.59,875|-106.04|36.27,877|-104.68|36.06,878|-107.94|34,879|-107.48|33.2,880|-108.03|32.37,881|-103.81|34.26,882|-104.07|32.87,883|-105.48|33.62,884|-103.79|35.74,890|-114.84|37,891|-115.42|36.33,893|-116.96|39.5,894|-118.06|41.29,895|-119.72|39.9,897|-119.8|39.18,898|-115.71|40.95,900|-118.32|34.04,902|-118.76|34.07,903|-118.34|33.95,904|-118.48|34.02,905|-118.33|33.83,906|-118.03|33.93,907|-118.45|33.39,908|-118.18|33.8,910|-118.25|34.28,911|-118.13|34.15,912|-118.25|34.19,913|-118.55|34.36,914|-118.47|34.18,915|-118.33|34.19,916|-118.38|34.18,917|-117.78|34.14,918|-118.13|34.09,919|-116.62|32.73,920|-116.7|33.16,921|-117.14|32.85,922|-115.5|33.59,923|-117.14|34.66,924|-117.33|34.17,925|-117.06|33.68,926|-117.73|33.63,927|-117.85|33.74,928|-117.71|33.85,930|-119.12|34.39,931|-119.97|34.48,932|-119.07|35.98,933|-119.01|35.35,934|-120.5|35.38,935|-118.36|37.37,936|-119.72|36.95,937|-119.85|36.71,939|-121.42|36.34,940|-122.31|37.41,941|-122.44|37.77,943|-122.13|37.44,944|-122.32|37.53,945|-122.05|38.09,946|-122.19|37.78,947|-122.26|37.89,948|-122.3|37.97,949|-122.74|38.14,950|-121.42|36.85,951|-121.76|37.33,952|-120.79|38.14,953|-120.56|37.62,954|-123.15|39.08,955|-123.75|40.5,956|-121.34|38.62,957|-120.86|39.13,958|-121.44|38.58,959|-121.73|39.47,960|-122.42|41.06,961|-120.33|40.52,967|-155.53|19.6,968|-157.83|21.34,969|144.77|13.45,970|-121.45|45.3,971|-123.79|45.64,972|-122.74|45.57,973|-123.26|44.68,974|-123.46|43.61,975|-123.06|42.34,976|-120.4|42.67,977|-120.77|44.32,978|-118.59|45.21,979|-117.63|43.34,980|-121.78|47.42,981|-122.32|47.6,982|-121.79|48.39,983|-123.87|47.96,984|-122.46|47.18,985|-123.27|46.94,986|-122.15|45.99,988|-119.91|48,989|-120.57|46.71,990|-117.56|47.62,991|-118.13|47.91,992|-117.4|47.67,993|-118.82|46.4,994|-117.21|46.2,995|-156.93|60.89,996|-151.66|60.82,997|-146.69|65.19,998|-136.2|58.94,999|-131.24|55.86",jie="ABW|-70.02|12.54,AFG|68|34.63,AGO|14.24|-9.84,AIA|-63.06|18.22,ALA|19.93|60.1,ALB|19.81|41.14,AND|1.53|42.51,ARE|55.24|24.99,ARG|-61.28|-32.95,ARM|44.52|40.23,ASM|-170.7|-14.28,ATA|21.28|-80.52,ATF|70.22|-49.35,ATG|-61.84|17.12,AUS|144.91|-33.49,AUT|15.51|47.93,AZE|49.02|40.37,BDI|29.49|-3.34,BEL|4.37|50.89,BEN|2.33|7.65,BES|-68.27|12.15,BFA|-2.08|12.15,BGD|90.42|23.65,BGR|24.92|42.71,BHR|50.57|26.18,BHS|-77.34|25.06,BIH|17.97|44.18,BLM|-62.85|17.9,BLR|27.81|53.57,BLZ|-88.41|17.54,BMU|-64.78|32.29,BOL|-65.79|-17.39,BRA|-45.89|-17.51,BRB|-59.62|13.11,BRN|114.74|4.82,BTN|89.69|27.32,BWA|25.99|-23.43,CAF|18.32|4.94,CAN|-79.4|43.71,CCK|96.82|-12.16,CHE|7.96|47.07,CHL|-71.21|-33.72,CHN|114.44|32,CIV|-4.89|6.16,CMR|11.19|5.41,COD|20.23|-4.72,COG|14.18|-4.04,COK|-159.78|-21.21,COL|-74.85|5.93,COM|43.58|-11.89,CPV|-23.87|15.66,CRI|-84.14|9.99,CUB|-80.25|22.21,CUW|-68.88|12.12,CXR|105.68|-10.42,CYM|-81.38|19.32,CYP|33.31|35,CZE|15.44|49.89,DEU|9.65|51.24,DJI|43.15|11.59,DMA|-61.39|15.3,DNK|11.42|55.79,DOM|-70.07|18.75,DZA|3.55|35.62,ECU|-79.29|-1.4,EGY|31.22|29.84,ERI|38.84|15.25,ESH|-13.19|27.14,ESP|-2.91|39.69,EST|25.17|59.29,ETH|39.02|9.26,FIN|24.87|61.26,FJI|178.2|-17.85,FLK|-57.86|-51.69,FRA|2.87|47.28,FRO|-6.77|62.01,FSM|158.16|6.92,GAB|10.22|-0.06,GBR|-1.37|52.49,GEO|43.92|41.84,GGY|-2.54|49.46,GHA|-0.98|6.4,GIB|-5.35|36.14,GIN|-12.8|9.75,GLP|-61.53|16.23,GMB|-16.59|13.41,GNB|-15.48|11.9,GNQ|9.77|1.86,GRC|23.73|37.98,GRD|-61.75|12.05,GRL|-51.72|64.18,GTM|-90.71|14.73,GUF|-52.64|5.04,GUM|144.82|13.5,GUY|-58.11|6.63,HKG|114.15|22.33,HMD|73.5|-53.1,HND|-87.41|14.94,HRV|16.21|45.31,HTI|-72.34|18.54,HUN|19.21|47.39,IDN|106.85|-6.21,IMN|-4.48|54.15,IND|78.36|21,IOT|71.35|-6.19,IRL|-6.87|53.12,IRN|51.6|34.4,IRQ|44.78|33.65,ISL|-21.7|64.22,ISR|34.97|32.07,ITA|12|42.73,JAM|-76.91|18.03,JEY|-2.1|49.19,JOR|35.96|32.03,JPN|137.27|35.53,KAZ|70.17|47.24,KEN|36.81|-0.97,KGZ|73.96|41.94,KHM|104.7|11.75,KIR|172.98|1.33,KNA|-62.72|17.3,KOR|127.51|36.58,KWT|48.06|29.2,Kosovo|20.9|42.58,LAO|102.6|17.97,LBN|35.53|33.87,LBR|-10.39|6.36,LBY|13.19|32.89,LCA|-60.97|14.04,LIE|9.52|47.14,LKA|80.25|7.25,LSO|27.67|-29.38,LTU|24.18|55.04,LUX|6.08|49.56,LVA|24.13|56.85,MAC|113.55|22.19,MAF|-63.08|18.07,MAR|-6.65|33.43,MCO|7.42|43.74,MDA|28.82|47.09,MDG|47.46|-18.89,MDV|73.51|4.18,MEX|-100.65|21.59,MHL|171.38|7.09,MKD|21.47|41.8,MLI|-7.15|12.95,MLT|14.46|35.91,MMR|96.18|18.74,MNE|19.17|42.53,MNG|105.33|47.94,MNP|145.75|15.21,MOZ|32.58|-25.97,MRT|-14.58|18.01,MSR|-62.21|16.79,MTQ|-61.01|14.64,MUS|57.51|-20.23,MWI|34.34|-14.24,MYS|103.35|3.45,MYT|45.23|-12.77,N. Cyprus|33.56|35.27,NAM|17.19|-21.34,NCL|166.47|-22.26,NER|5.05|14.04,NFK|167.97|-29.05,NGA|5.91|7.87,NIC|-86.17|12.33,NIU|-169.92|-19.05,NLD|5.21|52.09,NOR|9.62|60.46,NPL|84.7|27.64,NRU|166.93|-0.55,NZL|174.54|-38.9,OMN|57.69|23.27,PAK|71.47|30.24,PAN|-79.83|8.98,PCN|-130.1|-25.07,PER|-76.4|-11.18,PHL|121.05|14.65,PLW|134.58|7.52,PNG|147.4|-7.71,POL|19.26|51.79,PRI|-66.24|18.35,PRK|126.54|39.52,PRT|-9.08|39.42,PRY|-57.15|-25.27,PSE|35.23|31.78,PYF|-149.59|-17.57,QAT|51.49|25.32,REU|55.45|-21.08,ROU|25.47|45.38,RUS|51.84|54.52,RWA|29.78|-1.98,SAU|43.01|23.76,SDN|31.67|14.67,SEN|-16.73|14.66,SGP|103.85|1.33,SGS|-36.51|-54.28,SHN|-5.72|-15.92,SJM|15.65|78.22,SLB|159.97|-9.44,SLE|-12.4|8.36,SLV|-89.08|13.7,SMR|12.45|43.94,SOM|44.96|4.91,SPM|-56.18|46.78,SRB|20.62|44.5,SSD|29.91|6.61,STP|6.73|0.34,SUR|-55.18|5.84,SVK|18.69|48.55,SVN|14.83|46.16,SWE|16.03|58.86,SWZ|31.28|-26.43,SXM|-63.05|18.03,SYC|55.46|-4.62,SYR|37.18|35.12,Somaliland|46.23|9.76,TCA|-72.1|21.74,TCD|16.57|11.53,TGO|1.16|6.8,THA|100.71|13.71,TJK|69.39|39.08,TKM|59.4|38.74,TLS|125.65|-8.67,TON|-175.2|-21.14,TTO|-61.4|10.5,TUN|10.23|35.87,TUR|32.1|39.5,TUV|179.19|-8.52,TWN|121.06|24.37,TZA|36.11|-5.88,UGA|32.23|0.59,UKR|32.8|48.99,URY|-56.28|-34.1,USA|-93.51|37.4,UZB|69.22|41.26,VAT|12.45|41.9,VCT|-61.21|13.14,VEN|-67.82|9.83,VGB|-64.62|18.43,VIR|-64.8|17.9,VNM|106.63|10.82,VUT|168.31|-17.74,WLF|-176.17|-13.28,WSM|-171.77|-13.83,YEM|44.62|14.36,ZAF|26.96|-28.33,ZMB|28.41|-13.86,ZWE|30.49|-18.56",DH=new Set(["n a","none","null","nil","unknown","not applicable","not available","not specified","unspecified","missing","blank","empty","tbd","to be determined"]),Xie=new Set(Array.from(DH).filter(r=>r.includes(" ")&&r!=="n a").map(r=>r.replace(/ /g,"")));function xS(r){return r?DH.has(r)||Xie.has(r.replace(/ /g,"")):!0}var Kie=80;function Un(r){return _H(r.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[^\p{L}\p{Nd}\s]/gu," ").replace(/\s+/g," ").trim()}function o7(r){return vS(r)}var Yie="AD AND,AE ARE,AF AFG,AG ATG,AI AIA,AL ALB,AM ARM,AO AGO,AQ ATA,AR ARG,AS ASM,AT AUT,AU AUS,AW ABW,AX ALA,AZ AZE,BA BIH,BB BRB,BD BGD,BE BEL,BF BFA,BG BGR,BH BHR,BI BDI,BJ BEN,BL BLM,BM BMU,BN BRN,BO BOL,BQ BES,BR BRA,BS BHS,BT BTN,BV BVT,BW BWA,BY BLR,BZ BLZ,CA CAN,CC CCK,CD COD,CF CAF,CG COG,CH CHE,CI CIV,CK COK,CL CHL,CM CMR,CN CHN,CO COL,CR CRI,CU CUB,CV CPV,CW CUW,CX CXR,CY CYP,CZ CZE,DE DEU,DJ DJI,DK DNK,DM DMA,DO DOM,DZ DZA,EC ECU,EE EST,EG EGY,EH ESH,ER ERI,ES ESP,ET ETH,FI FIN,FJ FJI,FK FLK,FM FSM,FO FRO,FR FRA,GA GAB,GB GBR,GD GRD,GE GEO,GF GUF,GG GGY,GH GHA,GI GIB,GL GRL,GM GMB,GN GIN,GP GLP,GQ GNQ,GR GRC,GS SGS,GT GTM,GU GUM,GW GNB,GY GUY,HK HKG,HM HMD,HN HND,HR HRV,HT HTI,HU HUN,ID IDN,IE IRL,IL ISR,IM IMN,IN IND,IO IOT,IQ IRQ,IR IRN,IS ISL,IT ITA,JE JEY,JM JAM,JO JOR,JP JPN,KE KEN,KG KGZ,KH KHM,KI KIR,KM COM,KN KNA,KP PRK,KR KOR,KW KWT,KY CYM,KZ KAZ,LA LAO,LB LBN,LC LCA,LI LIE,LK LKA,LR LBR,LS LSO,LT LTU,LU LUX,LV LVA,LY LBY,MA MAR,MC MCO,MD MDA,ME MNE,MF MAF,MG MDG,MH MHL,MK MKD,ML MLI,MM MMR,MN MNG,MO MAC,MP MNP,MQ MTQ,MR MRT,MS MSR,MT MLT,MU MUS,MV MDV,MW MWI,MX MEX,MY MYS,MZ MOZ,NA NAM,NC NCL,NE NER,NF NFK,NG NGA,NI NIC,NL NLD,NO NOR,NP NPL,NR NRU,NU NIU,NZ NZL,OM OMN,PA PAN,PE PER,PF PYF,PG PNG,PH PHL,PK PAK,PL POL,PM SPM,PN PCN,PR PRI,PS PSE,PT PRT,PW PLW,PY PRY,QA QAT,RE REU,RO ROU,RS SRB,RU RUS,RW RWA,SA SAU,SB SLB,SC SYC,SD SDN,SE SWE,SG SGP,SH SHN,SI SVN,SJ SJM,SK SVK,SL SLE,SM SMR,SN SEN,SO SOM,SR SUR,SS SSD,ST STP,SV SLV,SX SXM,SY SYR,SZ SWZ,TC TCA,TD TCD,TF ATF,TG TGO,TH THA,TJ TJK,TK TKL,TL TLS,TM TKM,TN TUN,TO TON,TR TUR,TT TTO,TV TUV,TW TWN,TZ TZA,UA UKR,UG UGA,UM UMI,US USA,UY URY,UZ UZB,VA VAT,VC VCT,VE VEN,VG VGB,VI VIR,VN VNM,VU VUT,WF WLF,WS WSM,YE YEM,YT MYT,ZA ZAF,ZM ZMB,ZW ZWE",Jp=(()=>{let r=new Map;for(let e of Yie.split(",")){let[t,o]=e.split(" ");t&&o&&r.set(t,o)}return r})(),qie=new Set(Jp.keys()),Jie=new Set(Jp.values()),$ie=["en","fr","es","de","it","pt","ru","ja","zh","ko","ar","hi","tr","pl","he","nl","sv","fi","nb","da","cs","el","uk","ro","id","vi","th","sk","hu","hr"],Qie={usa:"USA","u.s.":"USA","u.s.a.":"USA",us:"USA",america:"USA","united states of america":"USA","the united states":"USA",uk:"GBR","u.k.":"GBR","great britain":"GBR",britain:"GBR",england:"GBR","south korea":"KOR","north korea":"PRK",korea:"KOR","ivory coast":"CIV","cote d ivoire":"CIV",vietnam:"VNM",laos:"LAO",syria:"SYR",iran:"IRN",russia:"RUS",moldova:"MDA",tanzania:"TZA",bolivia:"BOL",venezuela:"VEN",brunei:"BRN","czech republic":"CZE",czechia:"CZE",slovakia:"SVK",uae:"ARE","united arab emirates":"ARE",drc:"COD","dr congo":"COD","democratic republic of the congo":"COD","republic of the congo":"COG",congo:"COG",swaziland:"SWZ",eswatini:"SWZ","cape verde":"CPV","cabo verde":"CPV",burma:"MMR",myanmar:"MMR",holland:"NLD","the netherlands":"NLD",netherlands:"NLD",vatican:"VAT","vatican city":"VAT",palestine:"PSE",macau:"MAC",macao:"MAC","hong kong":"HKG",taiwan:"TWN",turkey:"TUR",turkiye:"TUR",macedonia:"MKD","north macedonia":"MKD",gambia:"GMB","the gambia":"GMB",bahamas:"BHS","the bahamas":"BHS","east timor":"TLS","timor leste":"TLS"},Zie=Object.freeze({"Antigua and Barbuda":"ATG","Bosnia and Herzegovina":"BIH","Heard Island and McDonald Islands":"HMD","Saint Kitts and Nevis":"KNA","St Kitts and Nevis":"KNA","Saint Pierre and Miquelon":"SPM","St Pierre and Miquelon":"SPM","Saint Vincent and the Grenadines":"VCT","St Vincent and the Grenadines":"VCT","Sao Tome and Principe":"STP","South Georgia and the South Sandwich Islands":"SGS","Svalbard and Jan Mayen":"SJM","Trinidad and Tobago":"TTO","Turks and Caicos Islands":"TCA","Turks and Caicos":"TCA","Wallis and Futuna":"WLF","Saint Helena, Ascension and Tristan da Cunha":"SHN","Bonaire, Sint Eustatius and Saba":"BES","United Kingdom of Great Britain and Northern Ireland":"GBR","Bolivia, Plurinational State of":"BOL","Bolivia (Plurinational State of)":"BOL","Brunei Darussalam":"BRN","Congo, The Democratic Republic of the":"COD","Congo, Democratic Republic of the":"COD","Democratic Republic of Congo":"COD","Falkland Islands (Malvinas)":"FLK","Holy See (Vatican City State)":"VAT","Holy See":"VAT","Iran, Islamic Republic of":"IRN","Iran (Islamic Republic of)":"IRN","Islamic Republic of Iran":"IRN","Korea, Republic of":"KOR","Republic of Korea":"KOR","Korea (the Republic of)":"KOR","Korea, Democratic People's Republic of":"PRK","Democratic People's Republic of Korea":"PRK","Korea (the Democratic People's Republic of)":"PRK","Lao People's Democratic Republic":"LAO","Micronesia, Federated States of":"FSM","Micronesia (Federated States of)":"FSM","Moldova, Republic of":"MDA","Republic of Moldova":"MDA","Palestine, State of":"PSE","State of Palestine":"PSE","Russian Federation":"RUS","Syrian Arab Republic":"SYR","Taiwan, Province of China":"TWN","Tanzania, United Republic of":"TZA","United Republic of Tanzania":"TZA","Venezuela, Bolivarian Republic of":"VEN","Venezuela (Bolivarian Republic of)":"VEN","Viet Nam":"VNM","Virgin Islands, British":"VGB","Virgin Islands, U.S.":"VIR","Saint Martin (French part)":"MAF","Sint Maarten (Dutch part)":"SXM","Netherlands (Kingdom of the)":"NLD","Macedonia, the former Yugoslav Republic of":"MKD"}),tk=null,dk=null;function OH(){if(tk)return tk;let r=new Map,e=[],t=["en",...$ie.filter(n=>n!=="en")];for(let n of t){let i=null;try{i=new Intl.DisplayNames([n],{type:"region"})}catch{continue}for(let[a,s]of Jp){let l;try{l=i.of(a)}catch{l=void 0}if(!l||l===a)continue;let u=Un(l);u&&!r.has(u)&&r.set(u,s),e.push([l,s])}}for(let[n,i]of Object.entries(Zie)){let a=Un(n);a&&!r.has(a)&&r.set(a,i),e.push([n,i])}for(let[n,i]of Object.entries(Qie)){let a=Un(n);a&&r.set(a,i),e.push([n,i])}let o=new Ak;for(let[n,i]of e){let a=Un(n);r.get(a)===i&&(o.add(n,i),o.add(a,i))}return tk=r,dk=o,r}function eae(){return dk||OH(),dk}function tae(r){if(r==null)return null;let e=String(r).trim();if(!e)return null;let t=Un(e);return OH().get(t)||(xS(t)?null:eae().get(o7(e))??null)}function qw(r){return Jp.get(String(r||"").trim().toUpperCase())??null}function bf(r){if(r==null)return null;let e=String(r).trim();if(!e)return null;let t=e.toUpperCase();return t.length===3&&Jie.has(t)?t:t.length===2&&qie.has(t)?Jp.get(t)??null:tae(e)}var EH={"north-america":"AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI","south-america":"AR BO BR CL CO EC FK GF GY PE PY SR UY VE",europe:"AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA",africa:"AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW",asia:"AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE",oceania:"AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS",antarctica:"AQ BV GS HM TF"},Jw=(()=>{let r=new Map;for(let e of Object.keys(EH))for(let t of EH[e].split(/\s+/))t&&r.set(t,e);return r})();function rae(r){for(let[e,t]of r){let o=Jw.get(e);o&&!Jw.has(t)&&Jw.set(t,o)}}rae(Jp);function FH(r){if(!r)return null;let e=String(r).trim().toUpperCase();if(!e)return null;let t=Jw.get(e);if(t)return t;let o=bf(String(r));return o?Jw.get(o)??null:null}var oae=new Set("AE BH CY EG IL IQ IR JO KW LB OM PS QA SA SY TR YE".split(" ")),T1t=new Set([...oae].map(r=>Jp.get(r)).filter(r=>!!r)),nae=Symbol.for("@bicharts/shape-core/admin1-lookup/v1"),ol=(r=>r[nae]??={lookup:null})(globalThis),iae=(()=>{let r=new Map;return Jp.forEach((e,t)=>r.set(e,t)),r})();function yk(){return ol.lookup!==null}function GH(r){let e=bf(r);return e?iae.get(e)??null:null}var aae=10;function sae(r,e={}){if(!ol.lookup||!r)return{status:"unmatched"};let t=Un(String(r)),o=ol.lookup.cityByKey.get(t);if(!o||o.length===0)return{status:"unmatched"};let n=e.country?GH(e.country):null;if(e.country&&n?o=o.filter(c=>c.cc===n):e.region&&(o=o.filter(c=>FH(c.cc)===e.region)),o.length===0)return{status:"unmatched"};let i=o.filter(c=>c.primary),a=i.length>0?i:o,s=new Map;for(let c of a){let h=`${c.cc}|${c.a1}|${c.lat}|${c.lon}`;s.has(h)||s.set(h,c)}let l=[...s.values()].sort((c,h)=>h.popK-c.popK),u=l[0];return l.length===1||u.popK>=aae*Math.max(l[1].popK,1)?!u.a1&&!u.pid?{status:"unmatched"}:{status:"resolved",cc:u.cc,admin1:u.a1,code:`${u.cc}.${u.a1}`,provinceId:u.pid||null,lat:u.lat,lon:u.lon,popK:u.popK}:{status:"ambiguous",candidates:l.length}}function lae(r,e){if(!ol.lookup||!r)return[];let t=ol.lookup.admin1ByKey.get(Un(String(r)))??[],o=e?GH(e):null;return o?t.filter(n=>n.startsWith(o+".")):[...t]}function uae(r){return!ol.lookup||!r?null:ol.lookup.provinceOfCode.get(r)??null}function cae(r){return!ol.lookup||!r?null:ol.lookup.centers?.get(String(r).trim().toUpperCase())??null}function r7(r,e={}){if(!ol.lookup||!r)return{status:"unmatched"};let t=String(r).trim();if(!t)return{status:"unmatched"};if(ol.lookup.provinceIds.has(t.toUpperCase()))return{status:"resolved",provinceId:t.toUpperCase()};let o=ol.lookup.provinceOfCode.get(t.toUpperCase());if(o)return{status:"resolved",provinceId:o};let n=[...new Set(lae(t,e.country??null).map(uae).filter(i=>!!i))];if(n.length>1&&e.region){let i=n.filter(a=>FH(a.split("-")[0])===e.region);i.length&&(n=i)}return n.length===1?{status:"resolved",provinceId:n[0]}:n.length?{status:"ambiguous",candidates:n.length}:{status:"unmatched"}}var hae={"north-america":"N",world:"W"};function VH(r,e){let t=r.filter(o=>o.row.kinds.includes(hae[e||"north-america"]));return t.length?t:(e||"north-america")==="world"?r:t}var HH=Wie;function mae(){return HH.length>0}var pae={US:"washington",CA:"ottawa",MX:"mexico city",GB:"london",FR:"paris",DE:"berlin",IT:"rome",ES:"madrid",PT:"lisbon",NL:"amsterdam",BE:"brussels",CH:"bern",AT:"vienna",IE:"dublin",PL:"warsaw",SE:"stockholm",NO:"oslo",DK:"copenhagen",FI:"helsinki",IS:"reykjavik",CZ:"prague",SK:"bratislava",HU:"budapest",RO:"bucharest",BG:"sofia",GR:"athens",TR:"ankara",UA:"kyiv",RU:"moscow",RS:"belgrade",HR:"zagreb",SI:"ljubljana",EE:"tallinn",LV:"riga",LT:"vilnius",JP:"tokyo",CN:"beijing",KR:"seoul",KP:"pyongyang",IN:"new delhi",PK:"islamabad",BD:"dhaka",LK:"colombo",TH:"bangkok",VN:"hanoi",PH:"manila",ID:"jakarta",MY:"kuala lumpur",SG:"singapore",MM:"naypyidaw",KH:"phnom penh",LA:"vientiane",NP:"kathmandu",AF:"kabul",IR:"tehran",IQ:"baghdad",SA:"riyadh",AE:"abu dhabi",QA:"doha",KW:"kuwait city",BH:"manama",OM:"muscat",JO:"amman",LB:"beirut",SY:"damascus",IL:"jerusalem",YE:"sanaa",EG:"cairo",LY:"tripoli",TN:"tunis",DZ:"algiers",MA:"rabat",SD:"khartoum",ET:"addis ababa",KE:"nairobi",TZ:"dodoma",UG:"kampala",NG:"abuja",GH:"accra",CI:"yamoussoukro",SN:"dakar",ML:"bamako",CM:"yaounde",CD:"kinshasa",CG:"brazzaville",AO:"luanda",ZM:"lusaka",ZW:"harare",MZ:"maputo",BW:"gaborone",NA:"windhoek",ZA:"pretoria",AU:"canberra",NZ:"wellington",PG:"port moresby",FJ:"suva",BR:"brasilia",AR:"buenos aires",CL:"santiago",PE:"lima",CO:"bogota",VE:"caracas",EC:"quito",BO:"la paz",PY:"asuncion",UY:"montevideo",GY:"georgetown",SR:"paramaribo",CU:"havana",DO:"santo domingo",HT:"port au prince",JM:"kingston",TT:"port of spain",PA:"panama city",CR:"san jose",NI:"managua",HN:"tegucigalpa",SV:"san salvador",GT:"guatemala city",BZ:"belmopan",AZ:"baku",AM:"yerevan",GE:"tbilisi",KZ:"astana",UZ:"tashkent",TM:"ashgabat",KG:"bishkek",TJ:"dushanbe",MN:"ulaanbaatar",BY:"minsk",MD:"chisinau",AL:"tirana",MK:"skopje",BA:"sarajevo",ME:"podgorica",XK:"pristina",CY:"nicosia",MT:"valletta",LU:"luxembourg"},rk=null;function $w(){if(rk)return rk;let r=new Map,e=HH,t=(o,n,i)=>{if(!o)return;let a=r.get(o);a?a.some(s=>s.row===n)||a.push({row:n,primary:i}):r.set(o,[{row:n,primary:i}])};for(let o of e.split(",")){let n=o.split("|");if(n.length<7)continue;let i={a1:n[1],cc:n[2],lon:+n[3],lat:+n[4],pop:+n[5],kinds:n[6]||"N"};n.length>8&&n[8]&&(i.tags=n[8].split(";").filter(Boolean));let a=pae[i.cc];if(a&&vS(n[0])===vS(a)&&(i.tags||(i.tags=[]),i.tags.includes("capital")||i.tags.push("capital")),t(Un(n[0]),i,!0),n.length>7&&n[7])for(let s of n[7].split(";"))t(Un(s),i,!1)}for(let o of r.values())o.sort((n,i)=>i.row.pop-n.row.pop);return rk=r,r}var dae=200,ok=null;function zH(){if(ok)return ok;let r=new Map;for(let[e,t]of $w()){if(!e.endsWith(" city"))continue;let o=e.slice(0,-5);!o||$w().get(o)?.some(n=>n.primary)||t[0].row.pop<dae||r.set(o,t)}return ok=r,r}function jH(r,e){if(!r)return;let t=CH($w(),zH(),r);if(t)return t;if(xS(r))return;let o=e??vS(r);if(t7(o))return CH(yae(),fae(),o)}function CH(r,e,t){let o=r.get(t);if(o?.some(a=>a.primary))return o;let n=e.get(t);if(!n)return o;let i=n.map(a=>({row:a.row,primary:!0}));return o?[...i,...o]:i}var nk=null;function yae(){return nk||(nk=XH($w())),nk}var ik=null;function fae(){return ik||(ik=XH(zH())),ik}function XH(r){let e=new Map;for(let[t,o]of r){let n=vS(t);if(!t7(n))continue;let i=e.get(n);if(!i){e.set(n,o.slice());continue}for(let a of o){let s=i.findIndex(l=>l.row===a.row);s<0?i.push(a):a.primary&&!i[s].primary&&(i[s]=a)}}for(let t of e.values())t.sort((o,n)=>n.row.pop-o.row.pop);return e}var ak=null;function gae(){if(ak)return ak;let r=new Map;for(let t of jie.split(",")){let o=t.split("|");o.length<3||r.set(o[0],{lon:+o[1],lat:+o[2]})}let e=new Map;for(let t of $w().values())for(let o of t){let n=qw(o.row.cc);if(!n)continue;let i=e.get(n);(i===void 0||o.row.pop>i)&&(e.set(n,o.row.pop),r.set(n,{lon:o.row.lon,lat:o.row.lat}))}return ak=r,r}var sk=null;function n7(){if(sk)return sk;let r=new Map;for(let e of Hie.split(",")){let t=e.split("|");if(t.length<5)continue;let o={key:t[0],cc:t[1],name:t[2],lon:+t[3],lat:+t[4]};r.set(Un(o.key),o);let n=Un(o.name);n==="mexico"&&o.cc==="MX"?(r.set("estado de mexico",o),r.set("edomex",o)):r.set(n,o)}return sk=r,r}var lk=null;function bae(){if(lk)return lk;let r=new Ak;for(let[e,t]of n7())r.add(e,t);return lk=r,r}var uk=null;function Sae(){if(uk)return uk;let r=new Map;for(let e of zie.split(",")){let t=e.split("|");t.length<3||r.set(t[0],{lon:+t[1],lat:+t[2]})}return uk=r,r}var Aae=new Set(["USA","PRI","VIR","GUM","ASM","MNP"]),Pk=new Set(["USA","CAN","MEX"]);function kH(r,e){return e!=="north-america"||!!r&&Pk.has(r)}function NS(r){if(r==null)return null;let e=Un(String(r));if(!e)return null;let t=n7().get(e);return t?t.key:xS(e)?null:bae().get(o7(String(r)))?.key??null}function wae(r){return n7().get(Un(r))?.cc??null}function Pae(r){let e=wae(r);return e?qw(e):null}function KH(r){if(r==null)return null;let e=String(r).trim().replace(/\.0+$/,"");if(!e)return null;let t=/^(\d{5})(-\d{4})?$/.exec(e);return t?t[1]:/^\d{3,4}$/.test(e)?e.padStart(5,"0"):null}function vk(r){if(r==null)return[];let e=String(r).trim().replace(/\.0+$/,"");if(!e)return[];if(/^\d{3}$/.test(e)){let o=e.padStart(5,"0").slice(0,3);return o===e?[e]:[e,o]}let t=KH(e);return t?[t.slice(0,3)]:[]}function vae(r){return!!r&&r.ambiguous===!0&&!("precision"in r)}function Nae(r){let e=null,t=typeof r.lat=="string"?r.lat.trim():r.lat,o=typeof r.lon=="string"?r.lon.trim():r.lon;if(t!=null&&t!==""&&o!==void 0&&o!==null&&o!==""){let a=+t,s=+o;if(isFinite(a)&&isFinite(s)&&a>=-90&&a<=90&&s>=-180&&s<=180)if(a===0&&s===0)e={lat:0,lon:0,precision:"latlon"};else return{lat:a,lon:s,precision:"latlon"}}let n=bf(r.country),i=NS(r.state);if(i&&n&&Pae(i)!==n&&(i=null),i&&r.region&&r.region!=="north-america"&&(i=null),r.city!==void 0&&r.city!==null){let a=Un(String(r.city)),s=jH(a,o7(String(r.city))),l=s?VH(s,r.mapKind):null;if(l&&l.length){let u=r.state===void 0||r.state===null?"":String(r.state).trim(),c=u?Un(u):"",h=u?NS(u):null,m=[],p=-1;for(let d of l){let f=d.row,b=0;if(u&&f.a1!=="")if(h&&f.a1===h||Un(f.a1)===c)b++;else continue;if(n)if(qw(f.cc)===n)b++;else continue;b>p?(p=b,m=[d]):b===p&&m.push(d)}m.some(d=>d.primary)&&(m=m.filter(d=>d.primary));let g=new Map;for(let d of m)g.set(d.row.lon.toFixed(2)+","+d.row.lat.toFixed(2),d.row);if(g.size===1){let d=m[0].row;return{lat:d.lat,lon:d.lon,precision:"city"}}if(g.size>1)return{ambiguous:!0,matches:g.size}}if(yk()){let u=sae(String(r.city),{country:r.country??null,region:r.region??null});if(u.status==="ambiguous")return{ambiguous:!0,matches:u.candidates};if(u.status==="resolved"&&kH(qw(u.cc),r.mapKind)){let c=r.state===void 0||r.state===null?"":String(r.state).trim(),h=c?r7(c,{country:r.country??null,region:r.region??null}):null;if(!h||h.status==="resolved"&&h.provinceId===u.provinceId)return{lat:u.lat,lon:u.lon,precision:"city"}}}}if(!n||Aae.has(n))for(let a of vk(r.zip)){let s=Sae().get(a);if(s)return{lat:s.lat,lon:s.lon,precision:"zip3"}}if(i){let a=n7().get(Un(i));if(a)return{lat:a.lat,lon:a.lon,precision:"state"}}if(!i&&r.state!==void 0&&r.state!==null&&String(r.state).trim()&&yk()){let a=r7(String(r.state),{country:r.country??null,region:r.region??null});if(a.status==="ambiguous")return{ambiguous:!0,matches:a.candidates};if(a.status==="resolved"){let s=qw(a.provinceId.split("-")[0]),l=cae(a.provinceId);if(l&&(!n||s===n)&&kH(s,r.mapKind))return{lat:l[1],lon:l[0],precision:"state"}}}if(n&&(r.mapKind!=="north-america"||Pk.has(n))){let a=gae().get(n);if(a)return{lat:a.lat,lon:a.lon,precision:"country"}}return e}var e7={latlon:0,city:1,zip3:2,state:3,country:4},MH=8;function YH(r,e,t){let o=new Array(r.length),n=new Array(r.length),i=new Array(r.length),a=new Set,s=[],l=new Set,u=[],c=new Set,h=[],m={latlon:0,city:0,zip3:0,state:0,country:0},p=0,g=0,d=null;for(let b=0;b<r.length;++b){let w=r[b],P=Nae({...w,mapKind:e,region:t});if(vae(P)){o[b]=null,n[b]=null,i[b]=null,g++;let A=ck(w);A&&!c.has(A.toLowerCase())&&(c.add(A.toLowerCase()),h.length<MH&&h.push(A))}else if(P){if(o[b]=P.lat,n[b]=P.lon,i[b]=P.precision,p++,m[P.precision]++,(d===null||e7[P.precision]>e7[d])&&(d=P.precision),e7[P.precision]>e7.city){let A=ck(w);A&&!l.has(A.toLowerCase())&&(l.add(A.toLowerCase()),u.length<MH&&u.push(A))}}else{o[b]=null,n[b]=null,i[b]=null;let A=ck(w);A&&!a.has(A.toLowerCase())&&(a.add(A.toLowerCase()),s.push(A))}}let f=!mae()&&r.some(b=>b.city!==null&&b.city!==void 0&&String(b.city).trim()!=="");return{lat:o,lon:n,precisions:i,precision:d,precisionCounts:m,coarseExamples:u,unmatched:s,ambiguousRows:g,ambiguousExamples:h,matchedRows:p,totalRows:r.length,...f?{cityTableMissing:!0}:{}}}function ck(r){return[r.city,r.state,r.zip,r.country].filter(t=>t!=null&&String(t).trim()!=="").map(t=>String(t).trim()).join(", ")||(r.label===null||r.label===void 0?"":String(r.label).trim())}function qH(r,e){if(!r)return!1;let t=jH(r);return t?VH(t,e).length>0:!1}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var xae="006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999",Eae=new Set(xae.match(/.{3}/g)??[]),JH=[["AL","Alabama"],["AK","Alaska"],["AZ","Arizona"],["AR","Arkansas"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DE","Delaware"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["IA","Iowa"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["ME","Maine"],["MD","Maryland"],["MA","Massachusetts"],["MI","Michigan"],["MN","Minnesota"],["MS","Mississippi"],["MO","Missouri"],["MT","Montana"],["NE","Nebraska"],["NV","Nevada"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NY","New York"],["NC","North Carolina"],["ND","North Dakota"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VT","Vermont"],["VA","Virginia"],["WA","Washington"],["WV","West Virginia"],["WI","Wisconsin"],["WY","Wyoming"],["DC","District of Columbia"],["PR","Puerto Rico"],["GU","Guam"],["VI","U.S. Virgin Islands"],["AS","American Samoa"],["MP","Northern Mariana Islands"]],Cae=new Set(JH.map(r=>r[0])),kae={"Ala.":"AL","Alab.":"AL","Ariz.":"AZ","Ark.":"AR","Calif.":"CA","Cal.":"CA","Colo.":"CO","Col.":"CO","Conn.":"CT","Del.":"DE","Fla.":"FL","Flor.":"FL","Ga.":"GA","Ill.":"IL","Ind.":"IN","Kan.":"KS","Kans.":"KS","Ky.":"KY","La.":"LA","Md.":"MD","Mass.":"MA","Mich.":"MI","Minn.":"MN","Miss.":"MS","Mo.":"MO","Mont.":"MT","Neb.":"NE","Nebr.":"NE","Nev.":"NV","N.H.":"NH","N.J.":"NJ","N.M.":"NM","N.Mex.":"NM","N. Mex.":"NM","N.Y.":"NY","N.C.":"NC","N.D.":"ND","N.Dak.":"ND","N. Dak.":"ND","Okla.":"OK","Ore.":"OR","Oreg.":"OR","Pa.":"PA","Penn.":"PA","Penna.":"PA","R.I.":"RI","S.C.":"SC","S.D.":"SD","S.Dak.":"SD","S. Dak.":"SD","Tenn.":"TN","Tex.":"TX","Vt.":"VT","Va.":"VA","Wash.":"WA","W.Va.":"WV","W. Va.":"WV","Wis.":"WI","Wisc.":"WI","Wyo.":"WY","D.C.":"DC","Wash. D.C.":"DC","Wash., D.C.":"DC","P.R.":"PR","V.I.":"VI"},$H=(()=>{let r=new Map;for(let[e,t]of JH)r.set(PS(t),e);r.set(PS("Washington DC"),"DC"),r.set(PS("Washington D.C."),"DC"),r.set(PS("US Virgin Islands"),"VI");for(let[e,t]of Object.entries(kae)){let o=PS(e);o&&!r.has(o)&&r.set(o,t)}return r})(),Mae=(()=>{let r=new Ak;for(let[e,t]of $H)r.add(e,t);return r})();function Tae(r){let e=PS(r);return $H.get(e)||(xS(e)?null:Mae.get(o7(r))??null)}var Wae=new Set(["01","02","04","05","06","08","09","10","11","12","13","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","53","54","55","56","60","66","69","72","78"]);function Lae(r){return r.trim().toUpperCase()}function PS(r){return Un(r)}var Iae=new Set(["zip","zipcode","postal","postcode","plz"]);function Rae(r,e){if(!r)return!1;for(let t of Bie(r))if(e.has(t))return!0;return!1}function _ae(r,e){if(r==null)return null;let t=String(r).trim();if(t.length===0)return null;switch(e){case"country-iso3":case"country-iso2":case"country-name":return bf(t);case"us-state-code":case"us-state-name":{let o=Lae(t);return Cae.has(o)?o:Tae(t)}case"us-zip5":return KH(t);case"us-county-fips":return/^\d{5}$/.test(t)&&Wae.has(t.slice(0,2))?t:null;default:return null}}function QH(r){switch(r){case"country-iso3":case"country-iso2":case"country-name":case"us-state-code":case"us-state-name":case"us-zip5":case"us-county-fips":return!0;default:return!1}}function Uae(r,e){return e==="us-zip5"?Eae.has(r.slice(0,3)):!0}function ZH(r,e){let t=new Array(r.length),o=new Set,n=[],i=0;for(let a=0;a<r.length;++a){let s=_ae(r[a],e),l=s!==null&&Uae(s,e)?s:null;if(t[a]=l,l!==null)i++;else{let u=r[a];if(u!=null){let c=String(u).trim();if(c.length>0){let h=c.toLowerCase();o.has(h)||(o.add(h),n.push(c))}}}}return{iso:t,unmatched:n,matchedRows:i,totalRows:r.length}}var W1t=NH(Tie(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Bae=["rate","ratio","pct","percent","percentage","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","z[_-]?score","average","avg","mean","median","stddev","variance","gpa","percentile","quantile","efficiency","accuracy","probability","multiplier","coefficient","correlation","occupancy","age","bmi","temperature","density","pressure","humidity","ph","velocity","speed","elevation","altitude","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps","capita","temperatuur","temperatur","temperatura","teplota","lampotila","homerseklet","sicaklik","pression","presion","pressao","pressione","druck","tryck","tlak","paine","nyomas","presiune","humidite","humedad","umidade","umidita","feuchtigkeit","vochtigheid","kosteus","vlhkost","vitesse","velocidad","velocidade","velocita","geschwindigkeit","snelheid","hastighet","hastighed","rychlost","nopeus","sebesseg","brzina","predkosc","densite","densidad","densidade","densita","dichte","dichtheid","hustota","tiheys","gustoca","moyenne","mediane","promedio","mediana","gemiddelde","durchschnitt","mittelwert","genomsnitt","gennemsnit","gjennomsnitt","keskiarvo","atlag","ortalama","prosjek","srednia","prumer","priemer","medie","taux","tasa","taxa","tasso","verhaltnis","verhouding","aandeel","anteil","andel","osuus","podil","udzial","udio","pourcentage","porcentaje","percentual","prozent","procent","prosentti","szazalek","yuzde","participacion","participacao","pondere","omjer","arany","oran","rata","leeftijd","edad","idade","wiek","eletkor","varsta","puntuacion","pontuacao","punteggio","betyg","ocena","indice","indeks","wskaznik","puan","ocupacion","ocupacao","occupazione","auslastung","bezetting","belaggning","belaegning","belegg","kayttoaste","oblozenie","obsazenost","obsadenost","kihasznaltsag","doluluk","ocupare","popunjenost","efficacite","eficiencia","efficienza","effizienz","effectiviteit","verimlilik"],Dae=["pct","percent","percentage","rate","ratio","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","gpa","percentile","quantile","bmi","density","pressure","humidity","velocity","efficiency","occupancy","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps"],Oae=["latitude","longitude"],Fae=["latitude","longitude"];var Gae=["somme de","suma de","soma de","summe von","som van","somma di","summa av","sum av","sum af","soucet z","suma z","totaal van","total de","toplam","osszeg","nombre de","recuento de","contagem de","anzahl von","aantal van","conteggio di","antal av","lukumaara","pocet z","sum pa","\u0441\u0443\u043C\u043C\u0430","\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E","\u0441\u0443\u043C\u0430","\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C","\u03B1\u03B8\u03C1\u03BF\u03B9\u03C3\u03BC\u03B1","\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2"],Vae=["osszege","sucet","\u7684\u603B\u548C","\u7684\u8BA1\u6570","\u306E\u5408\u8A08","\uC758 \uD569\uACC4"],Hae=["atlaga","priemer","\u7684\u5E73\u5747\u503C","\u306E\u5E73\u5747","\uC758 \uD3C9\uADE0"],L1t=Object.freeze({"nombre de":"count","recuento de":"count","contagem de":"count","anzahl von":"count","aantal van":"count","conteggio di":"count","antal av":"count",lukumaara:"count","pocet z":"count",\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"count",\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C:"count",\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2:"count",\u7684\u8BA1\u6570:"count","minimum de":"min","minimo de":"min","minimo di":"min","minimum von":"min","maximum de":"max","maximo de":"max","massimo di":"max","maximum von":"max"});function fk(r){return[...r].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")}var I1t=new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:"+fk(Gae)+")\\s+)","i");function TH(r){for(let e of r){let t=e.codePointAt(0)??0;if(t>=11904&&t<=40959||t>=44032&&t<=55215)return!0}return!1}var zae="[\u2013\u2014-]";function ez(r){let e=r.filter(n=>!TH(n)),t=r.filter(TH),o=[];return e.length&&o.push("(?:\\s+|\\s*"+zae+"\\s*)("+fk(e)+")"),t.length&&o.push("\\s*("+fk(t)+")"),new RegExp("(?:"+o.join("|")+")\\s*$","i")}var R1t=ez(Vae),_1t=ez(Hae);var U1t=new RegExp("\\b("+Bae.join("|")+")\\b|("+Dae.join("|")+")$","i"),B1t=new RegExp("\\b("+Oae.join("|")+")\\b|("+Fae.join("|")+")$","i");var jae=["count (distinct)","count distinct","distinct count","standard deviation","average","variance","median","product","stddev","std dev","count","sum","avg","min","minimum","max","maximum","var"],D1t=new RegExp("^\\s*("+[...jae].sort((r,e)=>e.length-r.length).map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")+")\\s+of\\s+","i"),Xae={Sum:["Sum of "],Avg:["Average of "],Average:["Average of "],Count:["Count of "],CountNonNull:["Count of "],Min:["Min of ","First ","Earliest "],Max:["Max of ","Last ","Latest "],Median:["Median of "],StandardDeviation:["Standard deviation of "],Variance:["Variance of "]},O1t=new RegExp("^("+Object.keys(Xae).join("|")+")\\((.+)\\)$");var F1t=new RegExp([String.raw`\bisMeasure\b`,String.raw`\bdataType\b`,String.raw`\bcolumns\s*\[\s*-?\d`,String.raw`\.iloc\s*\[[^\]]*,`,String.raw`\.iat\s*\[`,String.raw`\bselect_dtypes\b`,String.raw`\b_get_numeric_data\b`,String.raw`\bis_numeric_dtype\b`,String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`,String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`,String.raw`\bdf\.dtypes\b`,String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`,String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var hk=2,tz=400;function gk(r){return!!bf(r)}function ES(r){let e=new Set;for(let t of r){if(t==null)continue;let o=Un(String(t));if(!xS(o)&&!e.has(o)&&(e.add(o),e.size>=tz))break}return Array.from(e)}function Yw(r){let e=ES(r);if(e.length===0||bk(r)<95)return!1;let t=e.filter(n=>gk(n)&&!NS(n)).length,o=e.filter(n=>!gk(n)&&!!NS(n)).length;return t>=1&&t>=o}function WH(r,e){if(!NS(r))return!1;let t=bf(r);return t?e==="world"?!0:Pk.has(t):!1}function bk(r){let e=ES(r);if(e.length===0)return 0;let t=0;for(let o of e)gk(o)&&t++;return Math.round(t/e.length*1e3)/10}function Sk(r){return NS(r)?!0:yk()?r7(r).status!=="unmatched"||r7(r.trim().replace(/\s+/g,"-")).status!=="unmatched":!1}function mk(r){let e=ES(r);if(e.length===0)return 0;let t=0;for(let o of e)Sk(o)&&t++;return Math.round(t/e.length*1e3)/10}function Nk(r){let e=new Set;for(let t of r){if(t==null)continue;let o=String(t).trim();if(!xS(Un(o))&&!e.has(o)&&(e.add(o),e.size>=tz))break}return Array.from(e)}function LH(r){let e=Nk(r);if(e.length===0)return 0;let t=0;for(let o of e)vk(o).length>0&&t++;return Math.round(t/e.length*1e3)/10}function IH(r,e){return Rae(e,Iae)?!0:Nk(r).some(t=>/^\d{5}(-\d{4})?$/.test(t.replace(/\.0+$/,"")))}function Kae(r,e){let t=ES(r);if(t.length===0)return 0;let o=0;for(let n of t)qH(n,e)&&o++;return Math.round(o/t.length*1e3)/10}function pk(r,e){let t=0;for(let o of ES(r))e(o)&&t++;return t}function Yae(r,e){let t=0;for(let o of Nk(r))e(o)&&t++;return t}function rz(r,e,t,o,n){let i=[],a=[],s={},l={},u=new Set(r),c=E=>e.map(U=>U[E]);for(let E of["city","country"]){let U=t?.[E];U&&u.has(U)&&(s[E]=U)}let h=new Set(n??r);for(let E of["lat","lon"]){let U=t?.[E];U&&h.has(U)&&(s[E]=U)}let m=t?.zip;if(m&&u.has(m)){let E=c(m),U=LH(E);U<95?a.push(`zip=${m} (only ${U}% of values read as ZIPs)`):IH(E,m)?s.zip=m:a.push(`zip=${m} (all values are 3-4 digits with nothing to say they are postal)`)}let p=t?.state;if(p&&u.has(p)){let E=c(p),U=ES(E);U.length>0&&U.every(F=>WH(F,o))?a.push(`state=${p} (every value is "CA", which is both Canada and California)`):Yw(E)?(a.push(`state=${p} (every value is a country, not a state)`),s.country||(s.country=p)):mk(E)<95?a.push(`state=${p} (only ${mk(E)}% of values are states/provinces)`):s.state=p}let g=new Set(Object.values(s).filter(Boolean)),d=r.filter(E=>!g.has(E)&&!E.startsWith("__"));if(!s.state){let E=null;for(let U of d){let F=c(U);if(Yw(F))continue;let L=mk(F);if(L<95)continue;let T=pk(F,Sk),v=pk(F,I=>Sk(I)&&!WH(I,o));T<hk&&v<1||(!E||L>E.pct)&&(E={name:U,pct:L})}E&&(s.state=E.name,g.add(E.name),i.push(`state=${E.name} (${E.pct}% states/provinces)`))}if(!s.zip)for(let E of d){if(g.has(E))continue;let U=c(E),F=LH(U);if(!(F<95)&&IH(U,E)&&!(Yae(U,L=>vk(L).length>0)<hk)){s.zip=E,g.add(E),i.push(`zip=${E} (${F}% ZIP codes)`);break}}let f=s.country;if(!f||!Yw(c(f))){let E=null;for(let U of d){if(g.has(U)||!Yw(c(U)))continue;let F=bk(c(U));(!E||F>E.pct)&&(E={name:U,pct:F})}E&&(f&&(a.push(`country=${f} (only ${bk(c(f))}% of values are country identifiers; using ${E.name} instead)`),l.country=f),s.country=E.name,g.add(E.name),i.push(`country=${E.name}`))}if(!s.city){let E=null;for(let U of d){if(g.has(U))continue;let F=c(U),L=Kae(F,o);L<Kie||pk(F,T=>qH(T,o))<hk||(!E||L>E.pct)&&(E={name:U,pct:L})}E&&(s.city=E.name,i.push(`city=${E.name} (${E.pct}% known cities)`))}let b=s.country?c(s.country):[],w=!!s.country&&Yw(b),P=w?new Set(b.map(E=>bf(E==null?null:String(E))).filter(Boolean)).size:0,A=w&&P>=2,M=!!(s.lat&&s.lon)&&e.some(E=>{let U=+String(E[s.lat]??"").trim(),F=+String(E[s.lon]??"").trim();return isFinite(U)&&isFinite(F)&&U>=-90&&U<=90&&F>=-180&&F<=180&&String(E[s.lat]??"").trim()!==""&&String(E[s.lon]??"").trim()!==""});return s.lat&&s.lon&&!M&&a.push(`lat/lon=${s.lat}/${s.lon} (no row holds a usable coordinate pair)`),s.country&&!A&&!(s.city||s.state||s.zip||M)&&a.push(w?`country=${s.country} (every row resolves to the same country - nothing to place apart)`:`country=${s.country} (values are not country identifiers)`),{bind:s.city||s.state||s.zip||A||M?s:null,backfilled:i,refused:a,...Object.keys(l).length?{labelFallback:l}:{}}}var He=(r,...e)=>({part:r,langs:Object.freeze(e)}),qae=Object.freeze({jaar:He("year","nl"),kwartaal:He("quarter","nl"),maand:He("month","nl"),dag:He("day","nl","sv","da","nb"),jahr:He("year","de"),quartal:He("quarter","de"),monat:He("month","de"),tag:He("day","de"),ann\u00E9e:He("year","fr"),mois:He("month","fr"),jour:He("day","fr"),trimestre:He("quarter","fr","es","pt","it"),a\u00F1o:He("year","es"),mes:He("month","es"),d\u00EDa:He("day","es"),ano:He("year","pt"),m\u00EAs:He("month","pt"),dia:He("day","pt"),anno:He("year","it"),mese:He("month","it"),giorno:He("day","it"),\u0433\u043E\u0434:He("year","ru"),\u043C\u0435\u0441\u044F\u0446:He("month","ru"),\u0440\u0456\u043A:He("year","uk"),\u043C\u0456\u0441\u044F\u0446\u044C:He("month","uk"),\u043A\u0432\u0430\u0440\u0442\u0430\u043B:He("quarter","ru","uk"),\u0434\u0435\u043D\u044C:He("day","ru","uk"),rok:He("year","pl","cs","sk"),kwarta\u0142:He("quarter","pl"),miesi\u0105c:He("month","pl"),dzie\u0144:He("day","pl"),\u010Dtvrtlet\u00ED:He("quarter","cs"),m\u011Bs\u00EDc:He("month","cs"),den:He("day","cs"),\u0161tvr\u0165rok:He("quarter","sk"),mesiac:He("month","sk"),de\u0148:He("day","sk"),\u00E5r:He("year","sv","da","nb"),kvartal:He("quarter","sv","da","nb"),m\u00E5nad:He("month","sv"),m\u00E5ned:He("month","da","nb"),vuosi:He("year","fi"),vuosinelj\u00E4nnes:He("quarter","fi"),kuukausi:He("month","fi"),p\u00E4iv\u00E4:He("day","fi"),\u00E9v:He("year","hu"),negyed\u00E9v:He("quarter","hu"),h\u00F3nap:He("month","hu"),nap:He("day","hu"),y\u0131l:He("year","tr"),\u00E7eyrek:He("quarter","tr"),ay:He("month","tr"),g\u00FCn:He("day","tr"),\u03AD\u03C4\u03BF\u03C2:He("year","el"),\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF:He("quarter","el"),\u03BC\u03AE\u03BD\u03B1\u03C2:He("month","el"),\u03B7\u03BC\u03AD\u03C1\u03B1:He("day","el"),an:He("year","ro"),trimestru:He("quarter","ro"),lun\u0103:He("month","ro"),zi:He("day","ro"),godina:He("year","hr"),tromjese\u010Dje:He("quarter","hr"),mjesec:He("month","hr"),dan:He("day","hr"),\u5E74:He("year","ja","zh"),\u56DB\u534A\u671F:He("quarter","ja"),\u5B63\u5EA6:He("quarter","zh"),\u6708:He("month","ja","zh"),\u65E5:He("day","ja","zh"),\uC5F0\uB3C4:He("year","ko"),\uBD84\uAE30:He("quarter","ko"),\uC6D4:He("month","ko"),\uC77C:He("day","ko"),tahun:He("year","id"),kuartal:He("quarter","id"),triwulan:He("quarter","id"),bulan:He("month","id"),hari:He("day","id"),n\u0103m:He("year","vi"),qu\u00FD:He("quarter","vi"),th\u00E1ng:He("month","vi"),ng\u00E0y:He("day","vi"),\u0E1B\u0E35:He("year","th"),\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A:He("quarter","th"),\u0E40\u0E14\u0E37\u0E2D\u0E19:He("month","th"),\u0E27\u0E31\u0E19:He("day","th"),\u0627\u0644\u0633\u0646\u0629:He("year","ar"),\u0633\u0646\u0629:He("year","ar"),\u0627\u0644\u0639\u0627\u0645:He("year","ar"),\u0639\u0627\u0645:He("year","ar"),\u0627\u0644\u0631\u0628\u0639:He("quarter","ar"),\u0631\u0628\u0639:He("quarter","ar"),"\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629":He("quarter","ar"),\u0627\u0644\u0634\u0647\u0631:He("month","ar"),\u0634\u0647\u0631:He("month","ar"),\u0627\u0644\u064A\u0648\u0645:He("day","ar"),\u064A\u0648\u0645:He("day","ar"),\u05E9\u05E0\u05D4:He("year","he"),\u05E8\u05D1\u05E2\u05D5\u05DF:He("quarter","he"),\u05D7\u05D5\u05D3\u05E9:He("month","he"),\u05D9\u05D5\u05DD:He("day","he"),\u0935\u0930\u094D\u0937:He("year","hi"),\u0938\u093E\u0932:He("year","hi"),\u0924\u093F\u092E\u093E\u0939\u0940:He("quarter","hi"),\u092E\u0939\u0940\u0928\u093E:He("month","hi"),\u092E\u093E\u0939:He("month","hi"),\u0926\u093F\u0928:He("day","hi"),\u0633\u0627\u0644:He("year","fa"),\u0645\u0627\u0647:He("month","fa"),\u0631\u0648\u0632:He("day","fa")}),G1t=Object.freeze(Array.from(new Set(Object.values(qae).flatMap(r=>r.langs)))),V1t=Object.freeze(["fa","ar","he","th"]),H1t=Object.freeze({integer:"number",decimal:"number",double:"number",datetime:"date",date:"date",boolean:"boolean",string:"text"}),z1t=Object.freeze({RENDER_START:"render-start",RENDER_OK:"render-ok",RENDER_ERROR:"render-error",VIEW:"view",VIEW_VERDICT:"view-verdict",REDRAW:"redraw",INTERACT:"interact"}),j1t=Object.freeze(["open","generate","version","rebind","data","sample","fix","resize","other"]),X1t=2**31-1;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var i7="1.20.0";var Qo="d3-mark",ql="d3-legend-mark",Pc="d3-axis-filter",Qw="d3-lift-selected",$p="lch-control",to="data-row-idx",a7="data-bic-note-style",s7="data-lch-sel-rule",xk="clicked-marks",Ek="data-mark-key",Ck="data-lch-no-row-marks",Zw="data-lch-snapshot",eP="llm-xfilter-refresh",l7="__llmAnimStop",tP="__llmXfClear",kk="__llmInitialXfMark",u7="__lchUiState",CS="__lchScroll",c7="__lchClickedMarks",Jae=Object.freeze(["camera","llmZoom"]);var Va="bic-chart-host",kS="lch-has-selection",$h="lch-mark-selected",Sf="lch-tick-active",Qp="--lch-dim-opacity",Mk=.25,Tk=.01;function Wk(r){return!!r&&(!!r[tP]||!!r[l7])}function Lk(r,e){return r&&e}var h7=1e3,m7=250,p7=5e3,d7=3,y7=0,f7=60,g7=3,b7=500;var Ik=95,Rk=50,_k=100,S7="both";var oz=12e4,A7="horizontal",Uk="mark",w7="fit",P7="auto",v7=2e3;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */function Dk(r){if(!r)return[];let e=r.getAttribute("data-row-idx");if(!e)return[];let t=[];for(let o of e.split(",")){let n=parseInt(o.trim(),10);!isNaN(n)&&n>=0&&t.push(n)}return t}var $ae=25e4;function nz(r){if(!Array.isArray(r))return[];let e=new Set,t=[];for(let o of r)if(!(typeof o!="number"||!Number.isSafeInteger(o)||o<0||e.has(o))&&(e.add(o),t.push(o||0),t.length>=$ae))break;return t}function iz(r,e,t={}){let o=Array.from(r??[]);if(t.ctrl||t.shift){let i=new Set(o);for(let a of e)i.has(a)?i.delete(a):i.add(a);return Array.from(i)}return o.length===e.length&&e.every(i=>o.includes(i))?[]:e.slice()}function az(r){try{return r?.querySelector?.(`[${s7}]`)?.getAttribute(s7)===xk?"clicked-marks":"any-row"}catch{return"any-row"}}function Ok(r){if(!r)return"";let e=r.getAttribute(Ek);return e!=null&&e!==""?e:"rows:"+(r.getAttribute(to)||"").replace(/\s+/g,"")}var Bk=r=>new Set(Array.from(r??[]));function rP(r,e){let t=Bk(r),o=Bk(e);if(t.size!==o.size)return!1;for(let n of t)if(!o.has(n))return!1;return!0}function sz(r,e,t,o){let n=Bk(e);if(n.size===0)return{on:r.map(()=>!1),mode:"none",keys:[]};let i=()=>r.map(s=>s.rows.some(l=>n.has(l)));if(t!=="clicked-marks")return{on:i(),mode:"any-row",keys:[]};if(o&&o.keys.length&&rP(o.selection,n)){let s=new Set(o.keys),l=r.map(u=>u.rows.length>0&&s.has(u.key));if(l.some(Boolean))return{on:l,mode:"clicked",keys:r.filter((u,c)=>l[c]).map(u=>u.key)}}let a=r.map(s=>s.rows.length>0&&rP(s.rows,n));return a.some(Boolean)?{on:a,mode:"exact",keys:r.filter((s,l)=>a[l]).map(s=>s.key)}:{on:i(),mode:"fallback-any-row",keys:[]}}function lz(r,e,t,o,n={}){if(!o.length)return null;if(!(n.ctrl||n.shift))return{keys:[t],selection:o.slice()};let i=r&&rP(r.selection,e)?r.keys:[];return{keys:i.includes(t)?i.filter(s=>s!==t):[...i,t],selection:o.slice()}}function N7(r,e){let t=r;for(t&&t.nodeType!==1&&(t=t.parentElement??t.parentNode??null);t&&t!==e;){if(t.nodeType===1&&t.classList?.contains?.($p))return!0;t=t.parentElement??t.parentNode??null}return!1}var Fk=5;function oP(r,e,t=Fk){return r?Math.abs(e.x-r.x)>=t||Math.abs(e.y-r.y)>=t:!1}var Gk="__lchPressAt",Qae=r=>{let e=r?.[Gk];return e&&Number.isFinite(e.x)&&Number.isFinite(e.y)?e:null};function Vk(r){try{r&&(r[Gk]=null)}catch{}}function uz(r){let e=r.ownerDocument,t=null,o=()=>{t?.(),t=null},n=i=>{o();let a=Number(i?.clientX),s=Number(i?.clientY);if(!Number.isFinite(a)||!Number.isFinite(s))return;let l={x:a,y:s,dragged:!1};try{r[Gk]=l}catch{return}let u=c=>{!l.dragged&&oP(l,{x:Number(c?.clientX),y:Number(c?.clientY)})&&(l.dragged=!0)};e.addEventListener("pointermove",u,!0),e.addEventListener("pointerup",o,!0),e.addEventListener("pointercancel",o,!0),t=()=>{e.removeEventListener("pointermove",u,!0),e.removeEventListener("pointerup",o,!0),e.removeEventListener("pointercancel",o,!0)}};return r.addEventListener("pointerdown",n,!0),()=>{r.removeEventListener("pointerdown",n,!0),o()}}function cz(r,e){if(!e||!(Number(e.detail)>0))return!1;let t=Qae(r);if(t?.dragged)return!0;let o=Number(e.clientX),n=Number(e.clientY);return!Number.isFinite(o)||!Number.isFinite(n)?!1:oP(t,{x:o,y:n})}function hz(r){let{root:e,doc:t,log:o}=r,n=m=>{let p=t?.defaultView?.Element??globalThis.Element;return p&&m instanceof p?!0:!!m&&typeof m.closest=="function"&&typeof m.getAttribute=="function"},i=m=>{try{let p=t?.defaultView?.getComputedStyle??(typeof getComputedStyle=="function"?getComputedStyle:null);return p?p(m).pointerEvents:""}catch{return""}},a=m=>{if(m.tagName.toLowerCase()!=="path")return!1;let p=m.getAttribute("fill");if(p!==null&&p!==""&&p!=="none"&&p!=="transparent")return!1;let g=(m.getAttribute("stroke")||"").trim().toLowerCase(),d=parseFloat(m.getAttribute("stroke-opacity")||"1");return g==="transparent"||g==="none"||d<=.01},s=(m,p,g)=>{let d=m.getTotalLength();if(!(d>0))return Number.MAX_VALUE;let f=m.getScreenCTM();if(!f)return Number.MAX_VALUE;let b=Number.MAX_VALUE,w=64;for(let P=0;P<=w;P++){let A=m.getPointAtLength(d*P/w),M=f.a*A.x+f.c*A.y+f.e-p,E=f.b*A.x+f.d*A.y+f.f-g,U=M*M+E*E;U<b&&(b=U)}return Math.sqrt(b)},l=(m,p,g,d)=>{try{if(!m||!a(m)||!m.getAttribute("data-row-idx"))return m;let f=t.elementsFromPoint(p,g),b=[];for(let A of f)e.contains(A)&&(!A.matches||!A.matches(d)||A.getAttribute("data-row-idx")&&a(A)&&b.push(A));if(b.indexOf(m)<0&&b.push(m),b.length<2)return m;let w=m,P=Number.MAX_VALUE;for(let A of b){let M=s(A,p,g);M<P&&(P=M,w=A)}return w!==m&&o("d3-hit-corridor-refined",{candidates:b.length,distPx:Math.round(P),fromRows:(m.getAttribute("data-row-idx")||"").slice(0,24),toRows:(w.getAttribute("data-row-idx")||"").slice(0,24)}),w}catch{return m}};return{isInvisibleStrokePath:a,distToPathCenterline:s,refineHitCorridor:l,findMark:(m,p=".d3-mark",g)=>{if(!n(m))return null;let f=m.closest(p);return f&&g?l(f,g.clientX,g.clientY,p):f},rowIdxsFromMark:Dk,penetrateOverlayAt:(m,p,g)=>{try{let d=t.elementsFromPoint(m,p);for(let f of d){if(!e.contains(f)||!n(f))continue;let b=f.matches(g)?f:f.closest(g);if(!(!b||!e.contains(b)||!b.getAttribute("data-row-idx")))return o("d3_click-overlay-penetrated",{tag:f.tagName,cls:f.getAttribute("class"),via:f===b?"self":"closest"}),b}}catch{}return null},resolveByGeometry:(m,p,g)=>{try{let d=e.querySelectorAll(g),f=null,b=Number.MAX_VALUE;if(d.length<=600)for(let P of Array.from(d)){if(!P.getAttribute("data-row-idx"))continue;let A=P.getBoundingClientRect?P.getBoundingClientRect():null;if(!A||A.width<=0||A.height<=0||m<A.left||m>A.right||p<A.top||p>A.bottom)continue;let M=A.width*A.height;M<b&&(b=M,f=P)}if(f&&!(P=>{let A=/^(rect|circle|ellipse|path|line|polygon|polyline|text|image|use)$/,M=[P,...Array.from(P.querySelectorAll("*"))];for(let E of M){let U=(E.tagName||"").toLowerCase();if(!A.test(U))continue;let F=i(E);if(F&&F!=="none")return!0}return!1})(f))return o("d3_click-geom-resolved",{rows:(f.getAttribute("data-row-idx")||"").slice(0,24)}),f;f&&o("d3_click-geom-skip-hittable",{})}catch{}return null}}}function mz(r,e,t,o){let n=r.ownerDocument?.defaultView?.DOMPoint??globalThis.DOMPoint,i=r.querySelectorAll(`.${Qo}.${$h}`);o?.shown&&(i=Array.from(i).filter(h=>o.shown(h)));let a=[];for(let h=0;h<i.length;h++){let m=i[h].getBoundingClientRect();a.push(m)}let s=300,l=1,u=i.length<=s,c=h=>{let m=a[h],p=m.width*m.height;if(p<=0)return!1;for(let g=0;g<a.length;g++){if(g===h)continue;let d=a[g],f=d.width*d.height;if(!(f<=0||f>=p)&&d.left>=m.left-l&&d.right<=m.right+l&&d.top>=m.top-l&&d.bottom<=m.bottom+l)return!0}return!1};for(let h=0;h<i.length;h++){let m=i[h],p=a[h];if(p.width===0&&p.height===0||u&&c(h))continue;let g=m.tagName.toLowerCase(),d,f,b=m.getAttribute("data-cx"),w=m.getAttribute("data-cy");if(b!=null&&w!=null&&typeof m.getScreenCTM=="function"){let P=m.getScreenCTM(),A=parseFloat(b),M=parseFloat(w);if(P&&isFinite(A)&&isFinite(M)){let E=new n(A,M).matrixTransform(P);d=E.x,f=E.y}}if(d===void 0&&g==="path"&&typeof m.getPointAtLength=="function")try{let P=m.getTotalLength(),A=m.getScreenCTM();if(P>0&&A){let M=m.getAttribute("d")||"",E=/[Aa]/.test(M)&&!/[CcSsQqTt]/.test(M),U;if(E){let T=0,v=0;for(let C=0;C<24;C++){let O=m.getPointAtLength(P*C/24);T+=O.x,v+=O.y}let I=new n(T/24,v/24),D=!0;try{typeof m.isPointInFill=="function"&&(D=m.isPointInFill(I))}catch{D=!0}D&&(U=I)}U||(U=m.getPointAtLength(P/2));let F=U.matrixTransform(A);d=F.x,f=F.y}}catch{}if(d===void 0||f===void 0){let P=g==="rect";d=P?p.left+p.width*.8:p.left+p.width/2,f=P?p.top+p.height*.2:p.top+p.height/2}o?.at&&!o.at(m,d,f)||t.push({x:d-e.left,y:f-e.top})}}var Zae="lch-sel-glyph";function pz(r){if(r)for(;r.firstChild;)r.removeChild(r.firstChild)}function dz(r,e,t){let o=r.ownerDocument,n=o.createDocumentFragment(),i=Math.min(e.length,t.max??600);for(let a=0;a<i;a++){let s=e[a],l=o.createElement("span");l.className=Zae,l.textContent=t.symbol,l.style.position="absolute",l.style.left=s.x+"px",l.style.top=s.y+"px",l.style.transform="translate(-50%, -50%)",l.style.font="700 11px/1 system-ui, -apple-system, Segoe UI, sans-serif",l.style.color=t.color;let u=t.halo;l.style.textShadow=`-1px -1px 1px ${u}, 1px -1px 1px ${u}, -1px 1px 1px ${u}, 1px 1px 1px ${u}, 0 0 2px ${u}`,l.style.pointerEvents="none",n.appendChild(l)}return r.appendChild(n),i}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var ese=5e3,yz=Fk,tse=3,rse=400,ose=2e3,nse=32,ise="llm-lasso",ase="lch-lasso-surface",k7="lch-lasso-outline",sse="lch-lasso-count",lse="lch-lasso-note",use="lch-plot",cse="data-lch-lasso-mode",Jl="lasso",hse="__lchLassoAxes",Zp="__lchLasso",mse=Object.freeze(["select"]),E7="http://www.w3.org/2000/svg",fz=`.${Qo}[${to}]:not([${to}=""]), .${ql}, .${Pc}`,gz=r=>r?.lasso;function Pz(r){let e=Number(r?.rowCap);return Number.isFinite(e)&&e>=1?Math.floor(e):ese}function pse(r){let e=r?.actions;if(!Array.isArray(e))return[...mse];let t=[];for(let o of e)typeof o=="string"&&o.trim()&&!t.includes(o.trim())&&t.push(o.trim());return t}var dse="filter";function vz(r){return r?.effect==="highlight"?"highlight":dse}function yse(r,e){if(!r||r.capable!==!0)return"not-capable";if(r.enabled===!1)return"disabled";let t=Number(e);return Number.isFinite(t)&&t>Pz(r)?"over-cap":"on"}function C7(r,e){let t=1/0,o=1/0,n=-1/0,i=-1/0;for(let a of e)a.x<t&&(t=a.x),a.x>n&&(n=a.x),a.y<o&&(o=a.y),a.y>i&&(i=a.y);return{mode:r,pts:e,minX:t,minY:o,maxX:n,maxY:i}}function bz(r,e){return[{x:r.x,y:r.y},{x:e.x,y:r.y},{x:e.x,y:e.y},{x:r.x,y:e.y}]}function fse(r,e,t){let o=r.pts;if(o.length<3)return!1;let n=1/0,i=1/0,a=-1/0,s=-1/0;for(let u of o)u.x<n&&(n=u.x),u.x>a&&(a=u.x),u.y<i&&(i=u.y),u.y>s&&(s=u.y);if(e<n||e>a||t<i||t>s)return!1;if(r.mode==="rect")return!0;let l=!1;for(let u=0,c=o.length-1;u<o.length;c=u++){let h=o[u].x,m=o[u].y,p=o[c].x,g=o[c].y;m>t!=g>t&&e<(p-h)*(t-m)/(g-m)+h&&(l=!l)}return l}function gse(r,e){if(r.length<=e)return r;let t=r.length/e,o=[];for(let n=0;n<e;n++)o.push(r[Math.floor(n*t)]);return o.push(r[r.length-1]),o}function bse(r){let e=r.getBoundingClientRect(),t=o=>{let n=parseFloat(r.getAttribute(o)||"0");return Number.isFinite(n)?n:0};return{left:e.left,top:e.top,width:e.width,height:e.height,sx:t("x"),sy:t("y"),sw:t("width"),sh:t("height")}}var Nz=r=>r.width>0&&r.height>0,Sse=(r,e,t)=>Nz(r)&&e>=r.left&&e<=r.left+r.width&&t>=r.top&&t<=r.top+r.height,xz=(r,e)=>[r.sx+(r.width>0?(e.x-r.left)*r.sw/r.width:e.x-r.left),r.sy+(r.height>0?(e.y-r.top)*r.sh/r.height:e.y-r.top)],Ase=(r,e)=>({x:r.left+(r.sw>0?(e[0]-r.sx)*r.width/r.sw:e[0]-r.sx),y:r.top+(r.sh>0?(e[1]-r.sy)*r.height/r.sh:e[1]-r.sy)}),Sz=r=>{let e=r instanceof Date?+r:typeof r=="number"?r:NaN;return Number.isFinite(e)?e:NaN},Xk=r=>{if(!r||typeof r!="object")return null;let e=Sz(r[0]),t=Sz(r[1]);return Number.isFinite(e)&&Number.isFinite(t)?[e,t]:null};function Hk(r){let e=r[hse];return e&&typeof e.toData=="function"&&typeof e.toScreen=="function"?e:null}function Az(r,e,t){if(t)try{let i=[];for(let a of r){let s=[];for(let l of a.pts){let u=Xk(t.toData(xz(e,l)));if(!u)throw new Error("no data coordinate");s.push(u)}i.push({mode:a.mode,pts:s})}return{v:1,space:"data",shapes:i}}catch{}let o=e.width>0?e.width:1,n=e.height>0?e.height:1;return{v:1,space:"unit",shapes:r.map(i=>({mode:i.mode,pts:i.pts.map(a=>[(a.x-e.left)/o,(a.y-e.top)/n])}))}}function wse(r,e,t){try{if(!r||typeof r!="object")return[];let o=r,n=o.space==="data"?"data":o.space==="unit"?"unit":null;if(!n||!Array.isArray(o.shapes)||o.shapes.length===0||o.shapes.length>nse)return[];if(n==="data"&&!t)return[];if(!Nz(e))return[];let i=[];for(let a of o.shapes){if(!a||typeof a!="object"||!Array.isArray(a.pts))return[];let s=a.mode==="rect"?"rect":"free";if(a.pts.length<3||a.pts.length>ose)return[];if(s==="rect"&&a.pts.length!==4)return[];let l=[];for(let h of a.pts){let m=Xk(h);if(!m)return[];if(n==="unit")l.push({x:e.left+m[0]*e.width,y:e.top+m[1]*e.height});else{let p=Xk(t.toScreen(m));if(!p)return[];l.push(Ase(e,p))}}let u=C7(s,l);u.maxX<e.left||u.minX>e.left+e.width||u.maxY<e.top||u.minY>e.top+e.height||i.push(u)}return i}catch{return[]}}function zk(r){let e=[];for(let t of Array.from(r.querySelectorAll(`.${Qo}[${to}]`))){let o=Dk(t);if(!o.length)continue;let n=t.getBoundingClientRect();(n.width>0||n.height>0)&&e.push({x:n.left+n.width/2,y:n.top+n.height/2,el:t,rows:o})}return e}function Pse(r,e){try{let t=e?.getComputedStyle?.(r);return!!t&&(t.visibility==="hidden"||t.display==="none")}catch{return!1}}function x7(r,e,t,o=!0){let n=new Set;for(let i of r)if(e.some(a=>fse(a,i.x,i.y))&&!(o&&Pse(i.el,t)))for(let a of i.rows)n.add(a);return Array.from(n).sort((i,a)=>i-a)}var vse=(r,e)=>r.length===e.length&&r.every((t,o)=>t===e[o]),Nse=new Map([["select",r=>r.env.select(r.rows)]]);var vc=r=>!!r&&typeof r=="object"&&!Array.isArray(r);function Ez(r,e){let t=r?.uiState,o=vc(t)?t.knobs:void 0;if(vc(o)&&o[Jl]!==void 0)return o[Jl];let n=e.__lchKnobs;return vc(n)?n[Jl]:void 0}var wz="__lchLassoFor";function Yk(r,e,t){let o=r;if(!o)return!1;let n=!1;try{if(o[wz]!==e){let i=o.__lchKnobs;vc(i)&&i[Jl]!==void 0&&(delete i[Jl],n=!0);let a=vc(t)?t.knobs:void 0;if(vc(a)&&a[Jl]!==void 0){let s={...a};delete s[Jl],t.knobs=s,n=!0}}o[wz]=e}catch{}return n}function xse(r,e,t){let o=r;vc(o.__lchKnobs)||(o.__lchKnobs={});let n=o.__lchKnobs,i=n[Jl]!==void 0||Ez(e,r)!==void 0;if(t===null&&!i||(t===null?delete n[Jl]:n[Jl]=t,typeof e.setUiState!="function"))return;let a=vc(e.uiState)?e.uiState:{},s=o.__lchUiLiveOpts===e&&o.__lchUiLiveSeed===e.uiState?o.__lchUiLive:null,l=vc(s)?s:a,u={...l},c={...vc(l.knobs)?l.knobs:{},...n};t===null&&delete c[Jl],u.knobs=c,o.__lchUiLive=u,o.__lchUiLiveOpts=e,o.__lchUiLiveSeed=e.uiState;try{e.setUiState(u)}catch{}}function jk(r){let e=(r.getAttribute("viewBox")||"").trim().split(/[\s,]+/).map(Number);if(e.length===4&&e.every(Number.isFinite)&&e[2]>0&&e[3]>0)return{x:e[0],y:e[1],w:e[2],h:e[3]};let t=r.getBoundingClientRect();if(t.width>0&&t.height>0)return{x:0,y:0,w:t.width,h:t.height};let o=parseFloat(r.getAttribute("width")||""),n=parseFloat(r.getAttribute("height")||"");return o>0&&n>0?{x:0,y:0,w:o,h:n}:null}function Ese(r){let e=r.querySelector(`.${use}`),t=e?.tagName?.toLowerCase();if(e&&e.namespaceURI===E7&&(t==="g"||t==="svg")){if(t==="svg"){let s=jk(e);return s?{host:e,box:s}:null}try{let s=e.getBBox?.();if(s&&s.width>0&&s.height>0)return{host:e,box:{x:s.x,y:s.y,w:s.width,h:s.height}}}catch{}let i=e.ownerSVGElement??e.closest("svg"),a=i?jk(i):null;return a?{host:e,box:a}:null}let o=r.querySelector(`svg[${Zw}]`)??r.querySelector("svg"),n=o?jk(o):null;return o&&n?{host:o,box:n}:null}function Kk(r,e){try{return new Intl.NumberFormat(e||void 0).format(r)}catch{return String(r)}}function Cse(r,e,t){let{container:o}=r,n=o.ownerDocument,i=n.defaultView,a=r.options(),s=n.createElement("div");s.className=lse,s.setAttribute("role","note"),s.textContent=`Lasso selection is off at ${Kk(e,a?.cultureCode)} rows (limit ${Kk(t,a?.cultureCode)})`,Object.assign(s.style,{position:"absolute",right:"6px",bottom:"2px",font:"11px/1.2 system-ui, sans-serif",opacity:"0.75",pointerEvents:"none",whiteSpace:"nowrap",zIndex:"2",color:a?.themeFg||"inherit"});try{i?.getComputedStyle(o).position==="static"&&(o.style.position="relative")}catch{}o.appendChild(s);let l={surface:null,rows:()=>[],clear:()=>{},destroy:()=>{s.remove(),o[Zp]===l&&(o[Zp]=null)}};return o[Zp]=l,l}function Cz(r){let{container:e}=r,t=e.ownerDocument,o=t.defaultView??globalThis,n=e;try{n[Zp]?.destroy()}catch{}n[Zp]=null;let i=gz(r.options()),a=yse(i,r.rows);if(a==="not-capable"||a==="disabled")return null;if(a==="over-cap")return Cse(r,r.rows,Pz(i));let s=Ese(e);if(!s)return null;let l=t.createElementNS(E7,"rect");l.setAttribute("class",`${$p} ${ase}`),l.setAttribute("x",String(s.box.x)),l.setAttribute("y",String(s.box.y)),l.setAttribute("width",String(s.box.w)),l.setAttribute("height",String(s.box.h)),l.setAttribute("fill","transparent"),l.setAttribute("pointer-events","all"),l.setAttribute("tabindex","0"),l.setAttribute("aria-label","Selection area: drag to draw around marks, Escape to clear"),Object.assign(l.style,{cursor:"crosshair",touchAction:"none",userSelect:"none"}),s.host.insertBefore(l,s.host.firstChild);let u=t.createElementNS(E7,"path");u.setAttribute("class",k7),u.setAttribute("pointer-events","none"),u.setAttribute("fill-opacity","0.12"),u.setAttribute("stroke-width","1.5"),u.setAttribute("stroke-dasharray","5 3"),u.setAttribute("d","");let c=t.createElementNS(E7,"text");c.setAttribute("class",sse),c.setAttribute("pointer-events","none"),c.setAttribute("font-size","12"),c.setAttribute("x",String(s.box.x+6)),c.setAttribute("y",String(s.box.y+16)),Object.assign(c.style,{userSelect:"none"}),s.host.appendChild(u),s.host.appendChild(c);let h=()=>{let re=r.options(),pe=re?.themeFg||"currentColor";u.setAttribute("stroke",pe),u.setAttribute("fill",re?.themeAccent||pe),c.setAttribute("fill",pe)};h();let m=[],p=[],g=null,d=null,f=!1,b=[],w=()=>bse(l),P=()=>e.getAttribute(cse)==="rect"?"rect":"free",A=(re,pe)=>re.map(ae=>"M"+ae.pts.map(Ce=>xz(pe,Ce)).map(Ce=>`${M(Ce[0])} ${M(Ce[1])}`).join("L")+"Z").join(""),M=re=>Math.round(re*100)/100,E=()=>{u.setAttribute("d",m.length?A(m,w()):"")},U=re=>{c.textContent=re===null?"":`${Kk(re,r.options()?.cultureCode)} selected`},F=(re,pe,ae)=>{let ne=Az(pe,w(),Hk(e)),Ce=ne.shapes[ne.shapes.length-1];return{rows:re,polygon:Ce?Ce.pts:[],polygons:ne.shapes.map(ce=>ce.pts),mode:Ce?Ce.mode:P(),space:ne.space,source:ae}},L=re=>{let pe=o.CustomEvent??globalThis.CustomEvent;try{e.dispatchEvent(new pe(ise,{detail:re,bubbles:!0}))}catch{}},T=re=>{try{xse(e,r.options(),re?Az(re,w(),Hk(e)):null)}catch{}},v=(re,pe)=>{m=re,p=pe,E(),U(null),T(re);let ae={rows:pe.slice(),mode:re[re.length-1].mode,source:"user",env:r};for(let ne of pse(gz(r.options()))){let Ce=Nse.get(ne);if(Ce)try{Ce(ae)}catch{}}L(F(pe,re,"user"))},I=(re={})=>{let pe=m.length>0;if(g&&G(),m=[],p=[],E(),U(null),re.publish!==!1)try{r.clearSelection()}catch{}pe&&(T(null),L(F([],[],re.source??"user")))},D=(re,pe,ae)=>{let ne=re;if(!ne||ne.nodeType!==1||ne!==l&&(!s.host.contains(ne)||ne.closest?.(fz)||N7(ne,e)))return!1;try{let Ce=t.elementsFromPoint?.(pe,ae);if(Ce){for(let ce of Ce)if(ce!==l&&e.contains(ce)&&ce.closest?.(fz))return!1}}catch{}return!0},C=re=>re.preventDefault(),O=re=>{let pe=re?"addEventListener":"removeEventListener";t[pe]("pointermove",X),t[pe]("pointerup",ue),t[pe]("pointercancel",Q),t[pe]("selectstart",C)},G=()=>{if(!g)return;let re=g.dragging;g=null,O(!1),b=[],U(null),re&&(f=!0,E())},j=re=>re.mode==="rect"?C7("rect",bz(re.start,re.end)):C7("free",[...re.pts,re.end]),Y=re=>{let pe=w(),ae=j(re),ne=re.additive?[...m,ae]:[ae];u.setAttribute("d",A(ne,pe)),U(x7(b,ne,o,!1).length)};function z(re){f=!1;let pe=Number(re.clientX),ae=Number(re.clientY);if(!Number.isFinite(pe)||!Number.isFinite(ae)||(d={x:pe,y:ae},g||re.button!=null&&re.button!==0||re.isPrimary===!1))return;let ne=w();if(!(!Sse(ne,pe,ae)||!D(re.target,pe,ae))){g={id:re.pointerId,start:{x:pe,y:ae},pts:[{x:pe,y:ae}],end:{x:pe,y:ae},additive:!!(re.ctrlKey||re.metaKey||re.shiftKey),mode:P(),dragging:!1};try{re.pointerId!=null&&typeof l.setPointerCapture=="function"&&l.setPointerCapture(re.pointerId)}catch{}O(!0)}}function X(re){let pe=g;if(!pe||pe.id!=null&&re.pointerId!=null&&re.pointerId!==pe.id)return;let ae={x:Number(re.clientX),y:Number(re.clientY)};if(!(!Number.isFinite(ae.x)||!Number.isFinite(ae.y))){if(!pe.dragging){if(!oP(pe.start,ae,yz))return;pe.dragging=!0,b=zk(e),h()}if(pe.end=ae,pe.mode==="free"){let ne=pe.pts[pe.pts.length-1];Math.hypot(ae.x-ne.x,ae.y-ne.y)>=tse&&pe.pts.push(ae)}Y(pe)}}function ue(re){let pe=g;if(!pe||pe.id!=null&&re.pointerId!=null&&re.pointerId!==pe.id)return;if(!pe.dragging){G();return}let ae=Number(re.clientX),ne=Number(re.clientY);Number.isFinite(ae)&&Number.isFinite(ne)&&(pe.end={x:ae,y:ne});let Ce=pe.additive,ce=pe.mode,De=ce==="rect"?bz(pe.start,pe.end):[...pe.pts,pe.end];if(G(),ce==="free"){if(De.length<3)return;De=gse(De,rse)}let Je=C7(ce,De),Qe=zk(e),tt=x7(Qe,[Je],o);if(!tt.length)return;let oe=Ce?[...m,Je]:[Je],_e=Ce?x7(Qe,oe,o):tt;if(!(Ce&&vse(_e,p))){v(oe,_e);try{l.focus?.({preventScroll:!0})}catch{}}}function Q(re){let pe=g;!pe||pe.id!=null&&re.pointerId!=null&&re.pointerId!==pe.id||G()}function ye(re){let pe=f||Number(re.detail)>0&&!!d&&oP(d,{x:Number(re.clientX),y:Number(re.clientY)},yz);f=!1,d=null,!(re.target!==l||pe)&&(re.ctrlKey||re.metaKey||re.shiftKey||I({publish:!0,source:"user"}))}function J(re){if(!(re.key!=="Escape"||re.defaultPrevented)){if(g){G(),re.preventDefault?.();return}m.length&&(I({publish:!0,source:"user"}),re.preventDefault?.())}}e.addEventListener("pointerdown",z,!0),e.addEventListener("click",ye,!0),e.addEventListener("keydown",J);let ve={surface:l,rows:()=>p.slice(),clear:I,destroy(){g&&(g=null,O(!1)),e.removeEventListener("pointerdown",z,!0),e.removeEventListener("click",ye,!0),e.removeEventListener("keydown",J),l.remove(),u.remove(),c.remove(),n[Zp]===ve&&(n[Zp]=null)}};n[Zp]=ve;let Me=wse(Ez(r.options(),e),w(),Hk(e));if(Me.length){let re=x7(zk(e),Me,o);re.length&&(m=Me,p=re,E(),L(F(re,Me,"restore")))}return ve}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var qk="http://www.w3.org/2000/svg",kz="data-lch-hit",kse=5e3,Mz=new WeakMap;function Mse(r,e){if(!r||typeof r!="object")return!1;let t=Mz.get(r);if(t!==void 0)return t;let o=!1;try{let n=r.documentElement,i=r.createElementNS(qk,"svg"),a=r.createElementNS(qk,"rect");a.setAttribute("fill","none"),i.appendChild(a),n.appendChild(i);try{o=String(e.getComputedStyle(a).fill??"").trim().toLowerCase()==="none"}finally{n.removeChild(i)}}catch{o=!1}return Mz.set(r,o),o}function Lz(r,e){let t={tagged:0,hitRects:0,peFlips:0,peStrokeOnly:0};try{if(!r||typeof r.querySelectorAll!="function")return t;let o=r.querySelectorAll(`.${Qo}, .${ql}, .${Pc}`);if(t.tagged=o.length,o.length===0||o.length>kse)return t;let n=e??r.ownerDocument,i=n?.defaultView,a=s=>{try{return i?.getComputedStyle?i.getComputedStyle(s):null}catch{return null}};for(let s of Array.from(o))if(String(s.tagName||"").toLowerCase()==="g"){if(!s.hasAttribute?.(to)||s.querySelector?.(`rect[${kz}="1"]`))continue;let u=s.getAttribute?.("class")||"";if(!(u.indexOf(ql)>=0||u.indexOf(Pc)>=0)){let p=!1,g=s.querySelectorAll?.("*")??[];for(let d of Array.from(g)){let f=String(d.tagName||"").toLowerCase();if(f==="g"||f==="tspan"||f==="title"||f==="defs")continue;let b=a(d);if(!b||b.pointerEvents!=="none"){p=!0;break}}if(p)continue}let h=null;try{h=s.getBBox?.()}catch{h=null}if(!h||!(h.width>0)||!(h.height>0))continue;let m=n.createElementNS(qk,"rect");m.setAttribute("x",String(h.x)),m.setAttribute("y",String(h.y)),m.setAttribute("width",String(h.width)),m.setAttribute("height",String(h.height)),m.setAttribute("fill","transparent"),m.setAttribute(kz,"1"),m.style&&(m.style.pointerEvents="all",m.style.cursor="pointer"),s.insertBefore(m,s.firstChild),t.hitRects++}else{let u=a(s);if(u&&u.pointerEvents==="none"){let c=String((Mse(n,i)?u.fill:s.getAttribute?.("fill")??u.fill)??"").trim().toLowerCase(),h=c==="none"||c==="transparent"||c==="rgba(0, 0, 0, 0)";s.style&&(s.style.pointerEvents=h?"stroke":"all"),t.peFlips++,h&&t.peStrokeOnly++}}}catch{}return t}var Tz=8,Tse=5e3,M7={openStrokes:0,interactive:0,hairline:0,uncovered:0,widestPx:0},Wse=new Set(["path","line","polyline"]);function Lse(r,e){try{let t=e?.defaultView;return t?.getComputedStyle?t.getComputedStyle(r):null}catch{return null}}function Wz(r,e,t){let o=r.getAttribute?.(e);if(o!=null&&String(o).trim()!=="")return String(o).trim();let n=t?.[e==="stroke-width"?"strokeWidth":e];return n==null?"":String(n).trim()}function Ise(r){let e=r.toLowerCase();return e==="none"||e==="transparent"||e==="rgba(0, 0, 0, 0)"||e==="rgba(0,0,0,0)"}function Rse(r){let e=/^(-?\d+(?:\.\d+)?)\s*(px)?$/i.exec(r);if(!e)return NaN;let t=parseFloat(e[1]);return isFinite(t)?t:NaN}function Iz(r,e){if(!r||typeof r.querySelectorAll!="function")return M7;try{let t=Array.from(r.querySelectorAll(`.${Qo}, [${to}]`));if(t.length===0||t.length>Tse)return M7;let o=e??r.ownerDocument,n=new Map,i=[];for(let s of t){let l=String(s.tagName||"").toLowerCase();if(!Wse.has(l))continue;let u=Lse(s,o),c=Ise(Wz(s,"fill",u)),h=Rse(Wz(s,"stroke-width",u)||"1"),m=String(s.getAttribute?.("d")??"")||`${l}#${String(s.getAttribute?.(to)??"")}`,p=String(u?.pointerEvents??s.style?.pointerEvents??"")==="none";if(i.push({el:s,geom:m,w:h,open:c,inert:p}),isFinite(h)){let g=n.get(m);(g===void 0||h>g)&&n.set(m,h)}}let a={...M7};for(let s of i){if(!s.open||(a.openStrokes++,s.inert)||(a.interactive++,isFinite(s.w)&&s.w>a.widestPx&&(a.widestPx=Math.round(s.w)),!(s.w<Tz)))continue;a.hairline++;let l=n.get(s.geom);(l===void 0||l<Tz)&&a.uncovered++}return a}catch{return M7}}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var iP=8;function nP(r,e,t=iP){return!isFinite(r)||!isFinite(e)||r<=0||e<=0?!1:r-e>t}function Dz(r){if(!r||r.length===0)return{w:0,h:0,source:"none"};let e=r.filter(a=>a&&isFinite(a.right)&&isFinite(a.bottom)&&(a.right>0||a.bottom>0));if(e.length===0)return{w:0,h:0,source:"none"};let t=e.filter(a=>!a.floating),o=t.length>0?t:e,n=0,i=0;for(let a of o)a.right>n&&(n=a.right),a.bottom>i&&(i=a.bottom);return{w:n,h:i,source:t.length>0?"in-flow":"all-floating"}}function _se(r,e,t,o,n=iP){return{overflowX:nP(r,t,n)?"auto":"hidden",overflowY:nP(e,o,n)?"auto":"hidden"}}var Use="text, .d3-mark, .d3-legend-mark",Rz=.95;function Bse(r,e,t,o){return r>t*Rz||e>o*Rz}var Dse=20;function Ose(r,e,t,o,n=iP,i=Dse){let a=u=>({grow:!1,heightPx:e,viewBoxH:t,reason:u});if(!isFinite(r)||!isFinite(e)||e<=0)return a("unmeasurable");if(!nP(r,e,n))return a("fits");if(r>e*i)return a("beyond-ceiling");let s=Math.ceil(r),l=s-e;return t>0?!(o>0)||!isFinite(o)?a("no-scale"):{grow:!0,heightPx:s,viewBoxH:t+l/o,reason:"grow"}:{grow:!0,heightPx:s,viewBoxH:t,reason:"grow-no-viewbox"}}var Fse=2,Gse=2,Vse=.4,Hse=12;function zse(r){if(!r||r.length<2)return!1;let e=1/0,t=-1/0,o=1/0,n=-1/0;for(let i of r){let a=(i.left+i.right)/2,s=(i.top+i.bottom)/2;if(!isFinite(a)||!isFinite(s))return!1;a<e&&(e=a),a>t&&(t=a),s<o&&(o=s),s>n&&(n=s)}return t-e>n-o}function jse(r,e=[],t=Gse,o=Hse){if(!r||r.length===0)return null;let n=1/0,i=-1/0;for(let a of r)!isFinite(a.top)||!isFinite(a.bottom)||(a.top<n&&(n=a.top),a.bottom>i&&(i=a.bottom));if(!isFinite(n)||!isFinite(i)||i<=n)return null;for(let a of e||[])!isFinite(a.top)||!isFinite(a.bottom)||(a.bottom<n?n-a.bottom:a.top>i?a.top-i:0)>o||(a.top<n&&(n=a.top),a.bottom>i&&(i=a.bottom));return{top:n-t,bottom:i+t}}function Xse(r,e,t=Fse,o=Vse){let n=l=>({pin:!1,index:-1,band:null,reason:l});if(!isFinite(e)||e<=0)return n("unmeasurable");let i=!1,a=null;for(let l of r||[])!l||!l.labels||l.labels.length<t||(i=!0,zse(l.labels)&&(!a||l.labels.length>a.labels.length)&&(a=l));if(!a)return n(i?"vertical-only":"no-axis");let s=jse(a.labels,a.tracks||[]);return s?s.bottom-s.top>e*o?n("band-too-tall"):{pin:!0,index:a.index,band:s,reason:"pinned"}:n("unmeasurable")}function Kse(r,e,t){return!r||!isFinite(r.top)||!isFinite(r.bottom)||!isFinite(e)||!isFinite(t)||t<=0?null:r.top<e?"top":r.bottom>e+t?"bottom":null}var T7=r=>typeof r=="number"&&isFinite(r)&&r>0?r:0;function Yse(r,e,t){if(!r||e===void 0||e===null||r.key!==e)return{x:0,y:0};let o=(n,i)=>Math.max(0,T7(n)-T7(i));return{x:t.overflowX==="auto"?Math.min(T7(r.x),o(t.scrollWidth,t.clientWidth)):0,y:t.overflowY==="auto"?Math.min(T7(r.y),o(t.scrollHeight,t.clientHeight)):0}}var qse=8e3;function Jse(r){if(!r)return 0;let e=Math.hypot(r.a,r.b);return isFinite(e)&&e>0?e:0}function $se(r){try{let e=r.getBoundingClientRect();if(!(e.width>0)||!(e.height>0))return null;let t=r.querySelectorAll(Use),o=Qse(r),n=-1/0,i=-1/0,a=0;for(let s=0;s<t.length&&a<qse;s++){let l=t[s].getBoundingClientRect();if(l.width<=0&&l.height<=0||Bse(l.width,l.height,e.width,e.height))continue;let u=l.right,c=l.bottom,h=o(t[s]);if(h){if(l.left>=h.right||l.top>=h.bottom)continue;u=Math.min(u,h.right),c=Math.min(c,h.bottom)}a++,u>n&&(n=u),c>i&&(i=c)}return a===0?null:{right:n-e.left,bottom:i-e.top}}catch{return null}}function W7(r){try{let e=/url\(\s*['"]?#([^'")\s]+)['"]?\s*\)/.exec(r.getAttribute("clip-path")||""),t=e?(r.closest("svg")??r.ownerDocument).querySelector(`clipPath[id="${e[1].replace(/"/g,'\\"')}"]`):null,o=t?r.getScreenCTM?.():null;if(!t||!o||t.getAttribute("clipPathUnits")==="objectBoundingBox")return null;let n=1/0,i=1/0,a=-1/0,s=-1/0;for(let l=0;l<t.children.length;l++){let u=t.children[l].getBBox?.();if(!(!u||!(u.width>0)||!(u.height>0)))for(let[c,h]of[[u.x,u.y],[u.x+u.width,u.y],[u.x,u.y+u.height],[u.x+u.width,u.y+u.height]]){let m=o.a*c+o.c*h+o.e,p=o.b*c+o.d*h+o.f;n=Math.min(n,m),i=Math.min(i,p),a=Math.max(a,m),s=Math.max(s,p)}}return isFinite(a)&&isFinite(s)?{left:n,top:i,right:a,bottom:s}:null}catch{return null}}function Qse(r){let e=new Map,t=o=>(e.has(o)||e.set(o,W7(o)),e.get(o));return o=>{let n=null;for(let i=o;i&&i!==r;i=i.parentElement){let a=t(i);a&&(n=n?{right:Math.min(n.right,a.right),bottom:Math.min(n.bottom,a.bottom)}:a)}return n}}function Oz(r,e){let t=[];if(!r||!r.children)return t;let o=r.ownerDocument&&r.ownerDocument.defaultView||globalThis,n=r.getBoundingClientRect();for(let i=0;i<r.children.length;i++){let a=r.children[i],s=!1;try{let h=o.getComputedStyle(a);if(h.display==="none")continue;s=h.position==="absolute"||h.position==="fixed"}catch{}let l=a.getBoundingClientRect(),u=l.right-n.left-r.clientLeft+r.scrollLeft,c=l.bottom-n.top-r.clientTop+r.scrollTop;if(e)try{let h=e(a);if(h){let m=l.left-n.left-r.clientLeft+r.scrollLeft,p=l.top-n.top-r.clientTop+r.scrollTop;isFinite(h.right)&&(u=Math.max(u,m+h.right)),isFinite(h.bottom)&&(c=Math.max(c,p+h.bottom))}}catch{}t.push({right:u,bottom:c,floating:s})}return t}function Zse(r,e,t=iP,o){if(!e)return null;let n=e.clientWidth,i=e.clientHeight;if(!(n>0)||!(i>0))return null;let a=Oz(e,o),s=Dz(a),l=s.source==="none"?e.scrollWidth:s.w,u=s.source==="none"?e.scrollHeight:s.h;return!isFinite(l)||!isFinite(u)?null:{lane:r,contentW:Math.round(l),contentH:Math.round(u),viewW:n,viewH:i,overflowsX:nP(l,n,t),overflowsY:nP(u,i,t),extentSource:s.source,boxes:a.length,floating:a.filter(c=>c.floating).length,scrollW:e.scrollWidth,scrollH:e.scrollHeight}}var nl=r=>({pinned:!1,reason:r,bandPx:0,axisAt:"",labels:0,carried:0,edge:null}),Jk="__bicAxisPin",_z="http://www.w3.org/2000/svg",ele=12;function ed(r){if(!r)return;let e=r[Jk];if(e){try{r.removeEventListener("scroll",e.onScroll)}catch{}try{e.overlay.parentNode&&e.overlay.parentNode.removeChild(e.overlay)}catch{}try{delete r[Jk]}catch{}}}function $k(r,e){if(r)try{let t=r;if(t[CS]||r.querySelector(".llm-mm-scroll"))return;let o=r.scrollLeft,n=r.scrollTop;(o>0||n>0)&&(t[CS]={key:e,x:o,y:n})}catch{}}function Fz(r){if(!r)return null;try{let e=r,t=e[CS]??null;return delete e[CS],t}catch{return null}}function Uz(r,e){if(r.getAttribute("display")==="none"||r.getAttribute("visibility")==="hidden")return!0;try{let t=e.getComputedStyle(r);if(t&&(t.display==="none"||t.visibility==="hidden"))return!0}catch{}return!1}function tle(r,e,t,o){try{let n=r.querySelectorAll("rect");for(let i=0;i<n.length&&i<6;i++){let a=n[i];if(a.closest(".d3-mark"))continue;let s=a.getBoundingClientRect();if(s.width>=o.width*.9&&s.height>=o.height*.9){let l="";try{l=t.getComputedStyle(a).fill||""}catch{}if((!l||l==="none")&&(l=a.getAttribute("fill")||""),l&&l!=="none"&&l!=="transparent")return l;break}}}catch{}try{let n=e;for(let i=0;n&&i<12;i++,n=n.parentElement){let a=t.getComputedStyle(n).backgroundColor;if(a&&a!=="transparent"&&a!=="rgba(0, 0, 0, 0)")return a}}catch{}return"#ffffff"}function Bz(r,e,t){let o=[],n=r.parentElement;for(;n&&n!==e;)o.unshift(n),n=n.parentElement;let i=t;for(let s of o){let l=s.cloneNode(!1);i.appendChild(l),i=l}i.appendChild(r.cloneNode(!0));let a=t.querySelectorAll("[id]");for(let s=0;s<a.length;s++)a[s].removeAttribute("id")}function rle(r,e){if(ed(r),!r)return nl("no-container");if(!e)return nl("no-svg");try{let t=e.ownerDocument,o=t&&t.defaultView||globalThis,n=e.getBoundingClientRect();if(!(n.width>0)||!(n.height>0))return nl("unmeasurable");let i=typeof e.getScreenCTM=="function"?e.getScreenCTM():null;if(!i||!(i.a>0)||!(i.d>0)||!isFinite(i.e)||!isFinite(i.f))return nl("no-ctm");let a=r.clientHeight;if(!(a>0))return nl("unmeasurable");let s=z=>({left:z.left-n.left,top:z.top-n.top,right:z.right-n.left,bottom:z.bottom-n.top}),l=e.querySelectorAll(".tick"),u=new Map;for(let z=0;z<l.length;z++){let X=l[z];if(X.closest("svg")!==e)continue;let ue=X.parentElement;if(!ue)continue;let Q=u.get(ue);Q?Q.push(X):u.set(ue,[X])}let c=[],h=[];u.forEach((z,X)=>{let ue=[];for(let ye of z){let J=ye.querySelector("text");if(!J||Uz(J,o))continue;let ve=J.getBoundingClientRect();!(ve.width>0)||!(ve.height>0)||ue.push(s(ve))}let Q=[];for(let ye=0;ye<X.children.length;ye++){let J=X.children[ye];if(J.tagName.toLowerCase()!=="path"||!(J.getAttribute("class")||"").split(/\s+/).includes("domain"))continue;let ve=J.getBoundingClientRect();ve.width>0&&ve.height<=4&&Q.push(s(ve))}h.push({index:c.length,labels:ue,tracks:Q}),c.push(X)});let m=Xse(h,a);if(!m.pin||!m.band)return nl(m.reason);let p=c[m.index],g={top:Math.max(0,m.band.top),bottom:Math.min(n.height,m.band.bottom)},d=g.bottom-g.top;if(!(d>0))return nl("unmeasurable");let f=[],b=e.querySelectorAll("text");for(let z=0;z<b.length&&f.length<ele;z++){let X=b[z];if(X.closest("svg")!==e||X.closest(".tick")||X.closest(".d3-mark")||X.closest(".d3-legend-mark")||p.contains(X)||Uz(X,o))continue;let ue=s(X.getBoundingClientRect());!(ue.right>ue.left)||!(ue.bottom>ue.top)||ue.top>=g.top&&ue.bottom<=g.bottom&&f.push(X)}let w=t.createElementNS(_z,"svg");for(let z of["font-family","font-size","font-weight","font","fill","color","text-rendering"]){let X=e.getAttribute(z);X&&w.setAttribute(z,X)}let P=e.querySelectorAll("style");for(let z=0;z<P.length;z++)w.appendChild(P[z].cloneNode(!0));let A=(n.left-i.e)/i.a,M=(n.top+g.top-i.f)/i.d,E=n.width/i.a,U=d/i.d;w.setAttribute("viewBox",`${A} ${M} ${E} ${U}`),w.setAttribute("preserveAspectRatio","none"),w.setAttribute("width",String(n.width)),w.setAttribute("height",String(d)),w.setAttribute("aria-hidden","true"),w.style.display="block",w.style.pointerEvents="none";let F=t.createElementNS(_z,"rect");F.setAttribute("x",String(A)),F.setAttribute("y",String(M)),F.setAttribute("width",String(E)),F.setAttribute("height",String(U)),F.setAttribute("fill",tle(e,r,o,n)),w.appendChild(F),Bz(p,e,w);for(let z of f)Bz(z,e,w);let L=t.createElement("div");L.setAttribute("data-bic-axis-pin","1");let T=L.style;T.position="absolute",T.margin="0",T.padding="0",T.border="0",T.width=`${n.width}px`,T.height=`${d}px`,T.overflow="hidden",T.pointerEvents="none",T.zIndex="3",T.display="none",L.appendChild(w);try{let z=o.getComputedStyle(r),X=z&&z.position||r.style.position;(!X||X==="static")&&(r.style.position="relative")}catch{r.style.position=r.style.position||"relative"}let v=r.getBoundingClientRect(),I=n.left-v.left-r.clientLeft+r.scrollLeft,D=n.top-v.top-r.clientTop+r.scrollTop,C={top:D+g.top,bottom:D+g.bottom},O=()=>{let z=r.scrollTop,X=r.clientHeight,ue=Kse(C,z,X);return ue?(T.display="block",T.left=`${I}px`,T.top=`${ue==="top"?z:z+X-d}px`,ue):(T.display="none",null)},G=()=>{try{if(!L.isConnected){ed(r);return}O()}catch{}};r.appendChild(L),r.addEventListener("scroll",G,{passive:!0}),r[Jk]={overlay:L,onScroll:G};let j=O(),Y=(g.top+g.bottom)/2/n.height;return{pinned:!0,reason:"pinned",bandPx:Math.round(d),axisAt:Y<1/3?"top":Y>2/3?"bottom":"middle",labels:h[m.index].labels.length,carried:f.length,edge:j}}catch{return ed(r),nl("threw")}}function Gz(r,e={}){let t=e.slackPx??iP,o={grew:!1,growFrom:0,growTo:0,growReason:"no-container",overflowX:"hidden",overflowY:"hidden",reading:null,axisPin:nl("no-container"),scrolledTo:null};if(!r)return o;try{let n=r.querySelector(`svg[${Zw}]`);for(let d=0;d<r.children.length&&!n;d++){let f=r.children[d];f.tagName&&f.tagName.toLowerCase()==="svg"&&(n=f)}n||(n=r.querySelector("svg"));let i,a=d=>(i===void 0&&(i=$se(d)),i),s=d=>d&&d.tagName&&d.tagName.toLowerCase()==="svg"?a(d):null;if(n&&e.grow!==!1)try{let d=a(n),f=n.getBoundingClientRect().height,b=n.viewBox&&n.viewBox.baseVal?n.viewBox.baseVal.height:0,w=typeof n.getScreenCTM=="function"?n.getScreenCTM():null,P=Ose(d?d.bottom:NaN,f,b,Jse(w),t);if(o.growFrom=Math.round(f),o.growTo=P.heightPx,o.growReason=P.reason,P.grow){if(n.setAttribute("height",String(P.heightPx)),b>0){let A=n.viewBox.baseVal;n.setAttribute("viewBox",`${A.x} ${A.y} ${A.width} ${P.viewBoxH}`)}o.grew=!0}}catch{o.growReason="grow-threw"}else n?o.growReason="grow-disabled":o.growReason="no-svg";let l=Zse(e.lane??"chart",r,t,s);o.reading=l;let u=Oz(r,s),c=Dz(u),h=n?n.getBoundingClientRect():null,m=c.source==="none"?Math.max(r.scrollWidth,h?h.width:0):c.w,p=c.source==="none"?Math.max(r.scrollHeight,h?h.height:0):c.h,g=_se(m,p,r.clientWidth,r.clientHeight,t);if(o.overflowX=g.overflowX,o.overflowY=g.overflowY,e.applyOverflow!==!1){if(r.style.overflowX=g.overflowX,r.style.overflowY=g.overflowY,e.restoreScroll){let d=Yse(e.restoreScroll.memory,e.restoreScroll.key,{scrollWidth:r.scrollWidth,scrollHeight:r.scrollHeight,clientWidth:r.clientWidth,clientHeight:r.clientHeight,overflowX:g.overflowX,overflowY:g.overflowY});r.scrollLeft!==d.x&&(r.scrollLeft=d.x),r.scrollTop!==d.y&&(r.scrollTop=d.y),o.scrolledTo=d}g.overflowY!=="auto"?(ed(r),o.axisPin=nl("not-scrolling")):e.pinAxis===!1?(ed(r),o.axisPin=nl("disabled")):o.axisPin=rle(r,n)}else ed(r),o.axisPin=nl("overflow-not-applied")}catch{}return o}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var Vz=new Set(["USA","CAN","MEX","GTM","BLZ","SLV","HND","NIC","CRI","PAN","CUB","JAM","HTI","DOM","BHS","PRI","TTO"]),Hz=75;function ole(r,e){let t=[],o=r.length;for(let n=0;n<o;n++){let i=r[n],a=r[(n+o-1)%o],s=i[1]<=e,l=a[1]<=e;if(s!==l){let u=i[1]-a[1],c=u===0?0:(e-a[1])/u;t.push([a[0]+c*(i[0]-a[0]),e])}s&&t.push(i)}return t.length&&(t[0][0]!==t[t.length-1][0]||t[0][1]!==t[t.length-1][1])&&t.push(t[0]),t}function zz(r,e){let t=r&&r.geometry;if(!t)return null;let o=n=>{let i=n.map(a=>ole(a,e)).filter(a=>a.length>=4);return i.length&&i[0].length>=4?i:null};if(t.type==="Polygon"){let n=o(t.coordinates);return n?{...r,geometry:{type:"Polygon",coordinates:n}}:null}if(t.type==="MultiPolygon"){let n=t.coordinates.map(o).filter(i=>i!==null);return n.length?{...r,geometry:{type:"MultiPolygon",coordinates:n}}:null}return r}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var nle=new Map,ile=new Map,Qk;function ale(r){if(!r)return null;let e=r.toLowerCase();return/^country/.test(e)||e==="north-america"||e==="world"?"world":e==="us-state-code"||e==="us-state-name"?"us-states":e==="us-zip5"?"us-zip3":null}var Zk;function sle(r){return Zk||(Zk={type:"FeatureCollection",features:r.features.filter(e=>e?.geometry&&e.geometry.type!=="Point")}),Zk}function lle(r){return Qk||(Qk={type:"FeatureCollection",features:r.features.filter(e=>Vz.has(e?.id)&&e?.geometry&&e.geometry.type!=="Point").map(e=>zz(e,Hz)).filter(e=>e!==null)}),Qk}function ule(r){let e=ale(r);if(!e)return;let t=ile.get(e);if(t)return r==="north-america"?lle(t):r==="world"?sle(t):t}function jz(r){if(!r)return;let e=r.toLowerCase();return nle.get(e)??ule(e)}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */function cle(r){if(typeof r!="string")return null;let e=r.trim(),t=e.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i);if(t)return[parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3]),t[4]!==void 0?parseFloat(t[4]):1];let o=e.replace(/^#/,"");return o.length===3&&(o=o.split("").map(n=>n+n).join("")),o.length===6&&/^[0-9a-fA-F]{6}$/.test(o)?[parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16),1]:null}var dP="#111111",yP="#ffffff",wM=3,mj=.5,fP=.05,Y7=.85,G7=2;function pj(r){return r>=fP&&r<Y7}var dj=.6;function yj(r,e){return!(e>0)||!isFinite(r)||r<=0?!1:r/e>=dj}var fj=.5;function gj(r,e){return!(e>0)||!isFinite(r)||r<=0?!1:r/e>=fj}function bj(r){return typeof r=="string"&&/(^|\s)lch-deck-panel(\s|$)/.test(r)}var Xz={white:[255,255,255,1],black:[0,0,0,1],none:[0,0,0,0],transparent:[0,0,0,0]};function ys(r){if(typeof r!="string")return null;let e=r.trim().toLowerCase();return e in Xz?Xz[e]:cle(r)}function Qh(r,e){let t=Math.max(0,Math.min(1,r[3]));return[Math.round(r[0]*t+e[0]*(1-t)),Math.round(r[1]*t+e[1]*(1-t)),Math.round(r[2]*t+e[2]*(1-t))]}function rd(r){let e=r.map(t=>{let o=t/255;return o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4)});return .2126*e[0]+.7152*e[1]+.0722*e[2]}function hP(r,e){let t=Math.max(r,e),o=Math.min(r,e);return(t+.05)/(o+.05)}function Sj(r,e,t,o,n=wM,i=!1){let a=ys(e);if(!a)return{fix:!1,color:"",reason:"fill-unparsed"};let s=ys(o)||[255,255,255,1],l=[s[0],s[1],s[2]],u=[a[0],a[1],a[2],a[3]*mle(t)],c=Qh(u,l),h=rd(c),m=Math.abs(c[0]-l[0])<=G7&&Math.abs(c[1]-l[1])<=G7&&Math.abs(c[2]-l[2])<=G7,p=i&&!m,g=ys(r);if(!p&&g){let w=Qh(g,c);if(hP(rd(w),h)>=n)return{fix:!1,color:"",reason:"ok"}}let d=hP(rd(Kz(dP)),h),f=hP(rd(Kz(yP)),h),b=h<=mj;return b&&f<n&&d>=n&&(b=!1),!b&&d<n&&f>=n&&(b=!0),b?{fix:!0,color:yP,reason:"fixed-light"}:{fix:!0,color:dP,reason:"fixed-dark"}}var Aj=3;function wj(r,e=Aj){let t=[];if(!r||!(r.width>0)||!(r.height>0)||!(e>=1))return t;let o=Math.floor(e);for(let n=0;n<o;n++)for(let i=0;i<o;i++)t.push({x:r.left+r.width*(n+.5)/o,y:r.top+r.height*(i+.5)/o});return t}var cM=8,hM=2,Pj=.125,PM=4.5,vM=.9;function NM(r){let e=[];if(!r||!(r.width>0)||!(r.height>0))return e;for(let t=0;t<cM;t++)for(let o=0;o<hM;o++)e.push({x:r.left+r.width*(t+.5)/cM,y:r.top+r.height*(o+.5)/hM});return e}function hle(r,e=8){let t=[];for(let o of r||[]){let n=t.find(i=>Math.abs(i.rgb[0]-o[0])<=e&&Math.abs(i.rgb[1]-o[1])<=e&&Math.abs(i.rgb[2]-o[2])<=e);n?n.n++:t.push({rgb:[o[0],o[1],o[2]],n:1})}return t.sort((o,n)=>n.n-o.n)}function vj(r){if(!r||r.length<2)return!1;let e=hle(r);return e.length>=2&&e[1].n/r.length>=Pj}function mP(r,e){let t=ys(r);if(!t||!e||!e.length)return 0;let o=1/0;for(let n of e){let i=Qh(t,n);o=Math.min(o,hP(rd(i),rd(n)))}return o}function Nj(r,e,t=PM){let o=mP(r,e);if(o>=t)return{color:String(r),contrast:o,keep:!0};let n=mP(dP,e),i=mP(yP,e),a=n>=i?{color:dP,contrast:n}:{color:yP,contrast:i};return a.contrast>o?{...a,keep:!1}:{color:String(r),contrast:o,keep:!0}}function mle(r){return typeof r!="number"||!isFinite(r)?1:Math.max(0,Math.min(1,r))}function Kz(r){let e=ys(r);return[e[0],e[1],e[2]]}function eM(r){let e=r/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}var xj=.95047,Ej=1,Cj=1.08883,mM=216/24389,V7=24389/27;function tM(r){return r>mM?Math.cbrt(r):(V7*r+16)/116}function ple(r,e,t){let o=eM(r),n=eM(e),i=eM(t),a=.4124564*o+.3575761*n+.1804375*i,s=.2126729*o+.7151522*n+.072175*i,l=.0193339*o+.119192*n+.9503041*i,u=tM(a/xj),c=tM(s/Ej),h=tM(l/Cj);return{L:116*c-16,a:500*(u-c),b:200*(c-h)}}function Nf(r){let e=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(r.trim());if(!e)return null;let t=e[1].length===3?e[1][0]+e[1][0]+e[1][1]+e[1][1]+e[1][2]+e[1][2]:e[1];return ple(parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16))}var MS=Math.PI/180,Yz=180/Math.PI,L7=1e-4;function X7(r,e){let t=Math.hypot(r.a,r.b),o=Math.hypot(e.a,e.b),n=(t+o)/2,i=Math.pow(n,7),a=.5*(1-Math.sqrt(i/(i+Math.pow(25,7)))),s=(1+a)*r.a,l=(1+a)*e.a,u=Math.hypot(s,r.b),c=Math.hypot(l,e.b),h=u<L7||c<L7,m=u<L7?0:(Math.atan2(r.b,s)*Yz+360)%360,p=c<L7?0:(Math.atan2(e.b,l)*Yz+360)%360,g=e.L-r.L,d=c-u,f;h?f=0:Math.abs(p-m)<=180?f=p-m:p-m>180?f=p-m-360:f=p-m+360;let b=2*Math.sqrt(u*c)*Math.sin(f/2*MS),w=(r.L+e.L)/2,P=(u+c)/2,A;h?A=m+p:Math.abs(m-p)<=180?A=(m+p)/2:m+p<360?A=(m+p+360)/2:A=(m+p-360)/2;let M=1-.17*Math.cos((A-30)*MS)+.24*Math.cos(2*A*MS)+.32*Math.cos((3*A+6)*MS)-.2*Math.cos((4*A-63)*MS),E=30*Math.exp(-Math.pow((A-275)/25,2)),U=Math.pow(P,7),L=-(2*Math.sqrt(U/(U+Math.pow(25,7))))*Math.sin(2*E*MS),T=Math.pow(w-50,2),v=1+.015*T/Math.sqrt(20+T),I=1+.045*P,D=1+.015*P*M,C=g/v,O=d/I,G=b/D;return Math.sqrt(C*C+O*O+G*G+L*O*G)}function uP(r){let e=u=>{let c=u*u*u;return c>mM?c:(116*u-16)/V7},t=(r.L+16)/116,o=t+r.a/500,n=t-r.b/200,i=xj*e(o),a=Ej*(r.L>V7*mM?t*t*t:r.L/V7),s=Cj*e(n);return"#"+[3.2404542*i-1.5371385*a-.4985314*s,-.969266*i+1.8760108*a+.041556*s,.0556434*i-.2040259*a+1.0572252*s].map(u=>{let c=Math.max(0,Math.min(1,u)),h=c<=.0031308?12.92*c:1.055*Math.pow(c,1/2.4)-.055;return Math.round(h*255).toString(16).padStart(2,"0")}).join("")}var xM=5,pM=4,dle=.15,qz=24,yle=5e3,fle=48,rM=32,Af={marks:0,distinctFills:0,crowdShare:0,spanDeltaE:0};function gle(r,e){try{let t=e?.defaultView;return t?.getComputedStyle?t.getComputedStyle(r):null}catch{return null}}function ble(r,e){let t=r.getAttribute?.("fill");if(t!=null&&String(t).trim()!=="")return String(t).trim();let o=e?.fill;return o==null?"":String(o).trim()}function Sle(r){let e=r.trim().toLowerCase();if(!e||e==="none"||e==="transparent")return null;let t=/^#([0-9a-f]{3}|[0-9a-f]{6})$/.exec(e);if(t){let n=t[1],i=n.length===3?n[0]+n[0]+n[1]+n[1]+n[2]+n[2]:n;return[parseInt(i.slice(0,2),16),parseInt(i.slice(2,4),16),parseInt(i.slice(4,6),16)]}let o=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)\s*(?:[,/]\s*([\d.]+)\s*)?\)$/.exec(e);return!o||o[4]!==void 0&&parseFloat(o[4])===0?null:[Math.round(parseFloat(o[1])),Math.round(parseFloat(o[2])),Math.round(parseFloat(o[3]))]}function Ale(r){return[Math.round(r[0]/rM),Math.round(r[1]/rM),Math.round(r[2]/rM)].join(",")}function wle(r){return"#"+r.map(e=>Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0")).join("")}function kj(r,e){if(!r||typeof r.querySelectorAll!="function")return Af;try{let t=Array.from(r.querySelectorAll(`.${Qo}, [${to}]`));if(t.length===0||t.length>yle)return Af;let o=e??r.ownerDocument,n=[];for(let M of t){let E=Sle(ble(M,gle(M,o)));E&&n.push({rgb:E,tag:String(M.tagName||"").toLowerCase()})}let i=new Map;for(let M of n){let E=i.get(M.tag)??{fills:new Set,n:0};E.fills.add(M.rgb.join(",")),E.n++,i.set(M.tag,E)}let a=new Set([...i].filter(([,M])=>M.fills.size===1&&M.n>=qz).map(([M])=>M)),l=new Set([...i].filter(([M])=>!a.has(M)).flatMap(([,M])=>[...M.fills])).size>1?n.filter(M=>!a.has(M.tag)):n,u=new Set,c=new Map,h=0;for(let{rgb:M}of l){h++,u.add(M.join(","));let E=Ale(M),U=c.get(E);U?U.n++:c.set(E,{rgb:M,n:1})}if(h<qz||u.size<pM)return Af;let m=[...c.values()].sort((M,E)=>E.n-M.n).slice(0,fle),p=m.map(M=>Nf(wle(M.rgb))).filter(M=>M!==null);if(p.length<pM)return Af;let g=p.map(()=>new Array(p.length).fill(0)),d=0,f=0,b=1;for(let M=0;M<p.length;M++)for(let E=M+1;E<p.length;E++){let U=X7(p[M],p[E]);g[M][E]=U,g[E][M]=U,U>d&&(d=U,f=M,b=E)}if(d<=0)return Af;let w=0,P=0;for(let M=0;M<p.length;M++)M===f||M===b||(w+=(g[f][M]+g[M][b])/d-1,P++);if(P<2||w/P>dle)return Af;let A=0;for(let M=0;M<p.length;M++){let E=0;for(let U=0;U<p.length;U++)(M===U||g[M][U]<=xM)&&(E+=m[U].n);E>A&&(A=E)}return{marks:h,distinctFills:u.size,crowdShare:Math.round(A/h*100),spanDeltaE:Math.round(d)}}catch{return Af}}var Mj=7,EM=.5,Tj=2.3,Ple="#3182bd",vle=20,Nle=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;function td(r){if(typeof r!="string")return null;let e=Nle.exec(r.trim());return e?"#"+(e[1].length===3?e[1].split("").map(o=>o+o).join(""):e[1]).toLowerCase():null}function dM(r,e,t){return{L:r.L+(e.L-r.L)*t,a:r.a+(e.a-r.a)*t,b:r.b+(e.b-r.b)*t}}function Wj(r,e,t){let o=[1,3,5].map(a=>parseInt(r.slice(a,a+2),16)),n=[1,3,5].map(a=>parseInt(e.slice(a,a+2),16)),i=o.map((a,s)=>Math.round(a*t+n[s]*(1-t))).map(a=>a.toString(16).padStart(2,"0"));return Nf("#"+i.join(""))}function Lj(r,e,t,o=Mj,n=EM){let i=Nf(r),a=Nf(e),s=td(t);if(!i||!a||!s||o<2)return NaN;let l=null,u=1/0;for(let c=0;c<o;c++){let h=Wj(uP(dM(i,a,c/(o-1))),s,n);l&&(u=Math.min(u,X7(l,h))),l=h}return u}function Ij(r){return td(r.backgroundColor)??td(r.themeBg)??"#ffffff"}var Jz="",oM={low:"",high:""};function yM(r){let e=Ij(r),t=Array.isArray(r.palette)?r.palette:[],o=[e,r.isHighContrast?1:0,r.themeAccent??"",r.themeFg??"",t.join(",")].join("|");if(o===Jz)return oM;let n=Nf(e),i=n.L<50,a=d=>{let f=d?Nf(d):null;return!!f&&X7(f,n)>=vle},l=(r.isHighContrast?[td(r.themeAccent),td(r.themeFg)]:[...t.map(td),td(r.themeAccent),td(r.themeFg)]).find(a)??Ple,u=Nf(l),c=.1,h=dM(n,u,c);for(;c<.6&&X7(Wj(uP(h),e,EM),n)<xM;)c+=.02,h=dM(n,u,c);let m=uP(h),p={...u},g=uP(p);for(let d=0;d<80&&Lj(m,g,e)<Tj;d++){let f=Math.max(4,Math.min(98,p.L+(i?1:-1)));if(f===p.L)break;p={...p,L:f},g=uP(p)}return Jz=o,oM={low:m,high:g},oM}var K7=Object.freeze(["xlsx","csv"]),Rj="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",_j="text/csv",xle=1048576,Ele=16384,$z=32767;function q7(r){return r==null||typeof r=="string"&&r.trim()===""}function CM(r){if(q7(r)||typeof r=="boolean"||r instanceof Date)return null;let e=typeof r=="number"?r:Number(String(r).trim());return Number.isFinite(e)?e:null}function kM(r){if(q7(r)||typeof r=="boolean")return null;if(r instanceof Date){let n=r.getTime();return Number.isFinite(n)?n:null}if(typeof r=="number")return Number.isFinite(r)?r:null;let e=String(r).trim(),t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(t)return Date.UTC(+t[1],+t[2]-1,+t[3]);let o=Date.parse(e);return Number.isFinite(o)?o:null}function Uj(r){if(r===!0||r===!1)return r;if(q7(r))return null;let e=String(r).trim().toLowerCase();return e==="true"||e==="1"||e==="yes"?!0:e==="false"||e==="0"||e==="no"?!1:null}function H7(r){return r==null?"":r instanceof Date?Number.isFinite(r.getTime())?r.toISOString():"":String(r)}var z7=864e5;function Cle(r){return(r%z7+z7)%z7!==0}function pP(r){return r<10?"0"+r:String(r)}function MM(r){let e=new Date(r);return e.getUTCFullYear()+"-"+pP(e.getUTCMonth()+1)+"-"+pP(e.getUTCDate())}function Bj(r){let e=new Date(r);return MM(r)+" "+pP(e.getUTCHours())+":"+pP(e.getUTCMinutes())+":"+pP(e.getUTCSeconds())}function Dj(r){let e=r/z7+25569;return e<61?e-1:e}var kle=Date.UTC(1900,0,1);function Mle(r){let e=String(Math.abs(r));if(/e/i.test(e))return 0;let t=e.indexOf(".");return t<0?0:Math.min(15,e.length-t-1)}var Tle=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Wle(r){let e=Tle.exec(r.trim());if(!e)return null;let t=e[3]||"",o=e[4]||"",n=!!e[7],i=!!e[9],a=e[10]||"",s=e[8]?parseInt(e[8].slice(1),10):null,l={prefix:o==="$"?"$":"",suffix:"",group:n,minD:0,maxD:0,percent:!1,plus:t==="+",parens:t==="(",scientific:!1};if(a==="f"){let u=s===null?6:s;return{...l,maxD:u,minD:i?0:u}}if(a==="%"){let u=s===null?6:s;return{...l,percent:!0,maxD:u,minD:i?0:u}}if(a==="d")return l;if(a==="e"){let u=s===null?6:s;return{...l,scientific:!0,maxD:u,minD:u}}return(a===""||a==="n"||a==="g"||a==="r")&&(n||a==="n")?{...l,group:!0,maxD:15,minD:0}:null}function Lle(r){let e=r.split(";"),t=e[0],o=(/\[\$([^\-\]]+)/.exec(t)||[])[1]||"",n=t.replace(/\[[^\]]*\]/g,""),i=n.replace(/"[^"]*"/g,"").replace(/\\./g,""),a=i.indexOf("%")>=0;if(!a&&!/[0#]/.test(i))return null;let s=o,l=!1;if(!s){let m=/"([^"]*[$\u20AC\u00A3\u00A5][^"]*)"/.exec(n),p=m?null:/\\?([$\u20AC\u00A3\u00A5])/.exec(n);m?s=m[1].trim():p&&(s=p[1])}if(s){let m=n.search(/[0#]/),p=n.indexOf(s);l=p>=0&&m>=0&&p>m}let u=/\.([0#]+)/.exec(i),c=u?u[1].length:0,h=u?u[1].replace(/#/g,"").length:0;return{prefix:s&&!l?s:"",suffix:s&&l?s:"",group:i.indexOf(",")>=0,minD:h,maxD:Math.min(15,c),percent:a,plus:/^\s*\+/.test(i),parens:e.length>1&&/\(/.test(e[1])&&/\)/.test(e[1]),scientific:!1}}function Qz(r){return r?'"'+r.replace(/"/g,"")+'"':""}function Ile(r,e){let t=Math.max(r.minD,Math.min(r.maxD,e));if(r.scientific)return"0"+(t>0?"."+"0".repeat(t):"")+"E+00";let o=(r.group?"#,##0":"0")+(t>0?"."+"0".repeat(t):"")+(r.percent?"%":""),n=Qz(r.prefix)+o+Qz(r.suffix);if(!r.plus&&!r.parens)return n==="0"?null:n;let i=(r.plus?"+":"")+n,a=r.parens?"("+n+")":"-"+n;return i+";"+a+";"+n}function Oj(r,e=[]){let t=null;if(typeof r.d3Format=="string"&&r.d3Format.trim()?t=Wle(r.d3Format):typeof r.modelFormat=="string"&&r.modelFormat.trim()&&(t=Lle(r.modelFormat)),!t)return null;let o=0;for(let n of e){let i=Mle(t.percent?Math.round(n*100*1e9)/1e9:n);i>o&&(o=i)}return Ile(t,o)}var Rle=/^[=+\-@\t\r]/;function I7(r){return/[",\r\n]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function Fj(r,e){for(let t of r.rows){let o=kM(t[e]);if(o!==null&&Cle(o))return!0}return!1}function Gj(r){let e=r.columns,t=e.map((n,i)=>n.type==="date"&&Fj(r,i)),o=[e.map(n=>I7(R7(n.name))).join(",")];for(let n of r.rows){let i=[];for(let a=0;a<e.length;a++){let s=e[a],l=n[a];if(s.type==="number"){let u=CM(l);i.push(u===null?"":String(u));continue}if(s.type==="date"){let u=kM(l);i.push(u===null?I7(R7(H7(l))):t[a]?Bj(u):MM(u));continue}if(s.type==="boolean"){let u=Uj(l);i.push(u===null?I7(R7(H7(l))):u?"TRUE":"FALSE");continue}i.push(I7(R7(H7(l))))}o.push(i.join(","))}return"\uFEFF"+o.join(`\r
|
|
251
|
+
`,'"',u.BYTE_ORDER_MARK],u.WORKERS_SUPPORTED=!i&&!!o.Worker,u.NODE_STREAM_INPUT=1,u.LocalChunkSize=10485760,u.RemoteChunkSize=5242880,u.DefaultDelimiter=",",u.Parser=w,u.ParserHandle=f,u.NetworkStreamer=m,u.FileStreamer=p,u.StringStreamer=g,u.ReadableStreamStreamer=d,o.jQuery&&((n=o.jQuery).fn.parse=function(L){var T=L.config||{},v=[];return this.each(function(C){if(!(n(this).prop("tagName").toUpperCase()==="INPUT"&&n(this).attr("type").toLowerCase()==="file"&&o.FileReader)||!this.files||this.files.length===0)return!0;for(var O=0;O<this.files.length;O++)v.push({file:this.files[O],inputElem:this,instanceConfig:n.extend({},T)})}),I(),this;function I(){if(v.length===0)F(L.complete)&&L.complete();else{var C,O,G,j,Y=v[0];if(F(L.before)){var z=L.before(Y.file,Y.inputElem);if(typeof z=="object"){if(z.action==="abort")return C="AbortError",O=Y.file,G=Y.inputElem,j=z.reason,void(F(L.error)&&L.error({name:C},O,G,j));if(z.action==="skip")return void D();typeof z.config=="object"&&(Y.instanceConfig=n.extend(Y.instanceConfig,z.config))}else if(z==="skip")return void D()}var X=Y.instanceConfig.complete;Y.instanceConfig.complete=function(ue){F(X)&&X(ue,Y.file,Y.inputElem),D()},u.parse(Y.file,Y.instanceConfig)}}function D(){v.splice(0,1),I()}}),a&&(o.onmessage=function(L){L=L.data,u.WORKER_ID===void 0&&L&&(u.WORKER_ID=L.workerId),typeof L.input=="string"?o.postMessage({workerId:u.WORKER_ID,results:u.parse(L.input,L.config),finished:!0}):(o.File&&L.input instanceof File||L.input instanceof Object)&&(L=u.parse(L.input,L.config))&&o.postMessage({workerId:u.WORKER_ID,results:L,finished:!0})}),(m.prototype=Object.create(h.prototype)).constructor=m,(p.prototype=Object.create(h.prototype)).constructor=p,(g.prototype=Object.create(g.prototype)).constructor=g,(d.prototype=Object.create(h.prototype)).constructor=d,u})}});/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Wie="6th of October City|giza|EG|31.05|29.82|368|W|,A Coruna|galicia|ES|-8.4|43.37|250|W|corunha;la coruna;coruna;la corogne;the groyne,Aachen|north rhine westphalia|DE|6.08|50.78|265|W|aix la chapelle;aquisgrao;aken;akwizgran;aquisgrana;aquisgrano;aquisgran;cachy;kreisfreie stadt aachen,Aalborg|north denmark|DK|9.92|57.05|142|W|alborg,Aba|abia state|NG|7.37|5.11|1160|W|,Abadan|khuzestan|IR|48.3|30.34|231|W|,Abaetetuba|para|BR|-48.88|-1.72|158|W|,Abakaliki|ebonyi state|NG|8.11|6.32|134|W|,Abakan|khakasiya republic|RU|91.43|53.72|184|W|,Abasolo|MX11|MX|-101.53|20.45|27|N|,Abbotsford|BC|CA|-122.25|49.06|141|NW|,Abbottabad|khyber pakhtunkhwa|PK|73.21|34.15|275|W|,Abeche|ouadai|TD|20.83|13.83|139|W|,Abengourou|comoe district|CI|-3.5|6.73|130|W|,Abeokuta|ogun state|NG|3.35|7.16|735|W|,Aberdeen|scotland|GB|-2.1|57.14|198|W|,Aberdeen|southern district|HK|114.15|22.25|157|W|aberdeen harbour,Aberdeen|SD|US|-98.49|45.46|28|N|,Abha|asir region|SA|42.51|18.22|210|W|,Abidjan|abidjan autonomous district|CI|-4|5.35|6321|W|abican;abidzan;abiyan,Abiko|chiba|JP|140.02|35.87|131|W|,Abilene|TX|US|-99.73|32.45|125|N|,Abington|PA|US|-75.12|40.12|55|N|abington township;municipio de abington,Abobo|abidjan autonomous district|CI|-4.02|5.42|1340|W|,Abohar|punjab|IN|74.2|30.14|145|W|,Abomey-Calavi|atlantique|BJ|2.36|6.45|385|W|,Abu al-Kahsib|basra|IQ|47.88|30.44|357|W|,Abu Dhabi|abu dhabi|AE|54.4|24.45|1807|W|abou dabi;abu dabi;abu zabi,Abu Ghurayb|baghdad|IQ|44.18|33.31|900|W|abou ghraib;abu ghraib;abu ghuraib,Abu Kabir|sharqia|EG|31.67|30.73|154|W|,Abuja|fct|NG|7.5|9.06|2690|W|abudza;abuya,Acambaro|MX11|MX|-100.72|20.03|57|N|,Acapulco de Juarez|MX12|MX|-99.91|16.85|658|NW|acapulco,Acarigua|portuguesa|VE|-69.2|9.55|188|W|,Acatzingo|MX21|MX|-97.78|18.98|25|N|san juan acatzingo,Acayucan|MX30|MX|-94.91|17.95|50|N|,Accra|greater accra|GH|-0.2|5.56|1963|W|acra;akra,Acheng|heilongjiang|CN|126.95|45.55|144|W|,Actopan|MX13|MX|-98.94|20.27|32|N|,Ad-Damazin|blue nile|SD|34.36|11.79|186|W|damazin,Ad-Dawahy|port said|EG|32.28|31.24|148|W|al dawahi,Adachi|tokyo|JP|139.81|35.76|695|W|adachi city,Adana|adana|TR|35.33|36.99|1816|W|antioch on sarus,Adapazari|sakarya|TR|30.4|40.78|286|W|,Addis Ababa|addis ababa|ET|38.75|9.02|3860|W|addis abeba;adis abeba,Addison|IL|US|-87.99|41.93|37|N|,Adelaide|south australia|AU|138.6|-34.93|1469|W|adelaida;adelajda,Adelanto|CA|US|-117.41|34.58|33|N|,Aden|aden|YE|45.04|12.78|1079|W|adem,Adiwerna|central java|ID|109.13|-6.94|134|W|,Adiyaman|adiyaman province|TR|38.28|37.76|290|W|adiyamanska,Admiralteisky|st petersburg|RU|30.3|59.92|157|W|,Ado-Ekiti|ekiti state|NG|5.22|7.62|435|W|,Adoni|andhra pradesh|IN|77.27|15.63|184|W|,Afyonkarahisar|afyonkarahisar province|TR|30.54|38.76|251|W|afyon;afyonkarahissar,Agadez|agadez|NE|7.99|16.97|149|W|agades,Agadir|souss massa|MA|-9.6|30.42|698|W|santa cruz,Agartala|tripura|IN|91.28|23.84|400|W|,Agawam|MA|US|-72.61|42.07|28|N|,Agege|lagos|NG|3.33|6.62|683|W|,Ageo|saitama|JP|139.61|35.97|226|W|,Agincourt North|ON|CA|-79.28|43.8|29|N|,Agra|uttar pradesh|IN|78.02|27.18|1430|W|,Agua Caliente|CA|US|-122.49|38.32|27|N|,Agua Dulce|MX30|MX|-94.15|18.14|36|N|,Agua Prieta|MX26|MX|-109.54|31.32|77|N|,Aguas Lindas de Goias|goias|BR|-48.28|-15.76|245|W|,Aguascalientes|MX01|MX|-102.28|21.88|722|NW|aguascalientes city;aguascalientes by,Ahilyanagar|maharashtra|IN|74.74|19.09|367|W|,Ahmadpur East|punjab|PK|71.26|29.14|196|W|ahmedpur east;ahmedpur sharqia;ahmedpur sarki,Ahmedabad|gujarat|IN|72.59|23.03|6357|W|ahmadabad,Ahuntsic-Cartierville|QC|CA|-73.67|45.57|135|NW|,Ahvaz|khuzestan|IR|48.68|31.32|841|W|ahwas;ahwaz,Ahwatukee Foothills|AZ|US|-111.98|33.34|83|N|,Aihara|kanagawa|JP|139.32|35.6|725|W|,Aihui|heilongjiang|CN|127.48|49.98|192|W|,Aiken|SC|US|-81.72|33.56|30|N|,Airdrie|AB|CA|-114.04|51.3|90|N|,Airport|HI|US|-157.93|21.34|28|N|,Ait Melloul|souss massa|MA|-9.5|30.34|187|W|,Aix-en-Provence|provence alpes cote d azur|FR|5.45|43.53|146|W|,Aizawl|mizoram|IN|92.72|23.73|293|W|aijal;aizol;aizwal,Ajalpan|MX21|MX|-97.26|18.38|28|N|,Ajax|ON|CA|-79.03|43.85|119|N|,Ajdabiya|al wahat|LY|20.23|30.76|131|W|adjdabia;adschdabiya;adzdabija;adzedabija;ajdabiyah;ecdebiye,Ajegunle|lagos|NG|3.33|6.45|550|W|,Ajman|ajman|AE|55.48|25.4|490|W|acman;adschman;adzman;ajman city;ajma;ujman,Ajmer|rajasthan|IN|74.64|26.45|542|W|adzmer,Akashi|hyogo|JP|135.01|34.66|303|W|,Akhmim|sohag|EG|31.75|26.56|151|W|,Akita|akita|JP|140.12|39.72|307|W|akita shi,Akola|maharashtra|IN|77|20.71|428|W|,Akowonjo|lagos|NG|3.31|6.61|308|W|,Akron|OH|US|-81.52|41.08|197|NW|,Aksaray|aksaray|TR|34.03|38.37|327|W|,Aktau|mangystau|KZ|51.17|43.66|147|W|aktaou;aktav;aqtau;aqtaw;shevchenko,Aktobe|aktobe|KZ|57.21|50.28|500|W|aktioube;aktiube;aqtobe;aktyubinsk,Akure|ondo state|NG|5.19|7.25|730|W|,Al Ahmadi|al ahmadi|KW|48.08|29.08|637|W|el ahmedi,Al Ain City|abu dhabi|AE|55.76|24.19|846|W|al ain;al ajn;al ayn,Al Ajaylat|an nuqat al khams|LY|12.38|32.76|130|W|,Al 'Amarah|maysan|IQ|47.14|31.84|323|W|amarah;amara,Al 'Ashir min Ramadan|sharqia|EG|31.75|30.3|246|W|cidade do ramadao;citta del decimo ramadan,Al Bab|aleppo|SY|37.52|36.37|130|W|,Al Basrah al Qadimah|basra|IQ|47.82|30.5|2015|W|,Al Diwaniyah|al qadisiyah|IQ|44.93|31.99|318|W|ad diwaniyah;diwaniya;diwaniyya;divanija;ed divaniye,Al Fallujah|anbar|IQ|43.79|33.35|190|W|al falludza;al falluja;falloujah;falludscha;falluja;fallujah;falludza;faluja;faluya;felluce,Al Fayyum|faiyum|EG|30.84|29.31|519|W|el fayum;faijum;fajum;fayoum;fayyum;fayun,Al Hasakah|al hasakah|SY|40.75|36.5|422|W|al hasaka;hasaka;hasakah;haseke;hassake,Al Hawamidiyah|giza|EG|31.25|29.9|155|W|,Al Hillah|babil|IQ|44.42|32.46|455|W|hillah;al hilla;el hille;hilla,Al Hindiyah|karbala|IQ|44.22|32.54|139|W|,Al Hoceima|tanger tetouan al hoceima|MA|-3.94|35.25|395|W|al husajma;alhucemas;villa alhucemas;villa sanjurjo,Al Hudaydah|al hudaydah|YE|42.95|14.8|734|W|el hudeyda,Al Hufuf|eastern province|SA|49.59|25.36|293|W|hofuf;al hofuf;hufuf,Al Jubayl|eastern province|SA|49.62|27.02|237|W|jubail;al jubail;al dschubail;al dzubajl;el cubeyl,Al-Junaynah|western darfur|SD|22.45|13.45|162|W|geneina;al dschunaina;al dzunajna;el geneina,Al Kharj|riyadh region|SA|47.33|24.16|425|W|al khardj;el harc,Al Khums|al marqab|LY|14.26|32.65|201|W|al jums;al chums;el hums;qabilat al khums,Al Khusus|qalyubia|EG|31.32|30.15|488|W|,Al-Kut|wasit|IQ|45.82|32.51|315|W|kut;al koet,Al Madinah|basra|IQ|47.27|30.96|255|W|,Al Mahallah al Kubra|gharbia|EG|31.17|30.97|592|W|,Al Mahmudiyah|baghdad|IQ|44.37|33.06|350|W|,Al Mansurah|dakahlia|EG|31.38|31.04|621|W|al mansura;el mansura;mansourah;mansura,Al Matariyah|dakahlia|EG|32.03|31.18|162|W|,Al Mawsil al Jadidah|nineveh|IQ|43.11|36.33|2065|W|,Al'met'yevsk|tatarstan republic|RU|52.32|54.9|140|W|almetjevsk;almetjewsk,Al Miqdadiyah|diyala|IQ|44.94|33.98|155|W|,Al Mubarraz|eastern province|SA|49.59|25.41|290|W|,Al Muharraq|muharraq|BH|50.61|26.26|176|W|al muharrak;muharraq,Al Qadarif|al qadarif|SD|35.38|14.03|363|W|gedaref;al kadarif;el gadarif;gadaref;gadarif,Al Qahirah al Jadidah||EG|31.44|30.04|313|W|,Al Qamishli|al hasakah|SY|41.23|37.05|184|W|kamischli;kamishli;kamishlie;kamisli;qamichli;qamischli,Al Qurnah|basra|IQ|47.43|31.02|134|W|,Al-'Ubur|qalyubia|EG|31.48|30.23|138|W|,Alabaster|AL|US|-86.82|33.24|32|N|,Alafaya|FL|US|-81.21|28.56|78|N|,Alagoinhas|bahia|BR|-38.42|-12.14|161|W|,Alameda|CA|US|-122.26|37.77|78|N|,Alamo|MX30|MX|-97.68|20.91|25|N|,Alamogordo|NM|US|-105.96|32.9|30|N|,Alandur|tamil nadu|IN|80.21|13|164|W|,Alanya|antalya|TR|32|36.54|364|W|,Alappuzha|kerala|IN|76.33|9.49|240|W|alleppey,Albacete|castille la mancha|ES|-1.86|38.99|173|W|,Albany|NY|US|-73.76|42.65|101|N|,Albany|GA|US|-84.16|31.58|74|N|albania,Albany|OR|US|-123.11|44.64|52|N|,Albany Park|IL|US|-87.72|41.97|52|N|,Albuquerque|NM|US|-106.65|35.08|564|NW|alburquerque;methville,Alcala de Henares|madrid|ES|-3.36|40.48|193|W|compluto,Alcorcon|madrid|ES|-3.82|40.35|172|W|,Aleppo|aleppo|SY|37.16|36.2|2098|W|alep;alepo;halep,Alexandra|gauteng|ZA|28.1|-26.11|179|W|,Alexandria|alexandria|EG|29.92|31.2|5263|W|alejandria;aleksandria;alessandria d egitto;alexandrie;iskandariyah;iskenderiye,Alexandria|VA|US|-77.05|38.8|159|NW|,Alexandria|LA|US|-92.45|31.31|47|N|,Aley|mount lebanon|LB|35.6|33.81|130|W|alayh,Algiers|algiers|DZ|3.09|36.73|2364|W|alger;algeri;algier;aljir;alzir;argel;cezayir,Algonquin|IL|US|-88.29|42.17|30|N|,Alhambra|AZ|US|-112.13|33.5|127|N|,Alhambra|CA|US|-118.13|34.1|85|N|,Aliamanu / Salt Lakes / Foster Village|HI|US|-157.92|21.36|38|N|salt lake,Aliayabiagba|lagos|NG|3.33|6.45|228|W|,Alicante|valencia|ES|-0.48|38.35|348|W|alacante,Alief|TX|US|-95.6|29.71|98|N|,Aligarh|uttar pradesh|IN|78.07|27.88|753|W|,Alimosho|lagos|NG|3.3|6.61|308|W|,Aliso Viejo|CA|US|-117.73|33.57|50|N|,Allapattah|FL|US|-80.22|25.81|54|N|,Allen|TX|US|-96.67|33.1|98|N|,Allen Park|MI|US|-83.21|42.26|27|N|,Allentown|PA|US|-75.49|40.61|120|N|,Allston|MA|US|-71.13|42.36|28|N|,Alma|QC|CA|-71.65|48.55|29|N|,Almaty|almaty|KZ|76.91|43.25|1977|W|almati;alma ata;werny,Almendares|havana|CU|-82.42|23.11|240|W|,Almere Stad|flevoland|NL|5.21|52.37|176|W|almere,Almeria|andalusia|ES|-2.46|36.84|196|W|,Aloha|OR|US|-122.87|45.49|49|N|,Alor Setar|kedah|MY|100.36|6.12|417|W|alor star,Alpharetta|GA|US|-84.29|34.08|63|N|,Altadena|CA|US|-118.13|34.19|42|N|,Altamira|para|BR|-52.21|-3.2|138|W|,Altamira|MX28|MX|-97.94|22.39|59|N|,Altamonte Springs|FL|US|-81.37|28.66|43|N|,Alto Barinas|barinas|VE|-70.23|8.59|284|W|,Alto Hospicio|tarapaca|CL|-70.1|-20.27|142|W|,Alton|IL|US|-90.18|38.89|27|N|,Altona|hamburg|DE|9.93|53.55|250|W|arrondissement daltona;bezirk altona;distretto di altona;hamburgo altona,Altoona|PA|US|-78.39|40.52|45|N|,Alvaro Obregon|MX09|MX|-99.2|19.36|726|NW|,Alvin|TX|US|-95.24|29.42|25|N|,Alvorada|rio grande do sul|BR|-51.08|-30|187|W|,Alwar|rajasthan|IN|76.62|27.56|322|W|,Amadora|lisbon|PT|-9.23|38.75|178|W|,Amagasaki|hyogo|JP|135.42|34.72|459|W|,Amarapura|mandalay region|MM|96.05|21.91|237|W|,Amarillo|TX|US|-101.83|35.22|198|NW|,Ambala|haryana|IN|76.8|30.36|195|W|,Ambarnath|maharashtra|IN|73.17|19.2|253|W|,Ambato|tungurahua province|EC|-78.62|-1.25|387|W|,Ambattur|tamil nadu|IN|80.16|13.1|466|W|,Ambon|maluku|ID|128.18|-3.7|347|W|ambon city;kota ambon,Ameca|MX14|MX|-104.05|20.55|36|N|municipio ameca,Amecameca|MX15|MX|-98.77|19.12|31|N|amecameca de juarez,American Fork|UT|US|-111.8|40.38|28|N|,Americana|sao paulo|BR|-47.33|-22.74|246|W|,Amersfoort|utrecht|NL|5.39|52.16|139|W|,Ames|IA|US|-93.62|42.03|65|N|,Amherst|NY|US|-78.8|42.98|122|N|,Amherst|MA|US|-72.52|42.37|39|N|,Amiens|hauts de france|FR|2.3|49.9|143|W|,Amman|amman|JO|35.95|31.96|1275|W|aman;ama,Amol|mazandaran|IR|52.35|36.47|237|W|,Amozoc de Mota|MX21|MX|-98.05|19.05|95|N|amozoc,Amravati|maharashtra|IN|77.75|20.93|647|W|,Amritsar|punjab|IN|74.88|31.62|1159|W|,Amroha|uttar pradesh|IN|78.47|28.9|176|W|,Amsterdam|north holland|NL|4.89|52.37|741|W|amesterda;amesterdao;amseutereudam;amsterda;amsterodam;amsut erudam;amusuterudamu;aemstelredamme;aemsterdam,An Nhon|gia lai|VN|109.11|13.89|308|W|,Anaco|anzoategui|VE|-64.46|9.43|139|W|,Anaheim|CA|US|-117.91|33.84|350|NW|,Anand|gujarat|IN|72.96|22.55|209|W|,Ananindeua|para|BR|-48.37|-1.37|535|W|,Anantapur|andhra pradesh|IN|77.61|14.68|267|W|,Anantnag|jammu and kashmir|IN|75.15|33.73|150|W|,Anapolis|goias|BR|-48.95|-16.33|319|W|,Anbu|guangdong|CN|116.68|23.45|162|W|,Ancaster|ON|CA|-79.99|43.22|40|N|,Anchorage|AK|US|-149.9|61.22|289|NW|,Anda|heilongjiang|CN|125.3|46.45|181|W|,Anderlecht|brussels capital|BE|4.31|50.84|160|W|,Anderson|IN|US|-85.68|40.11|55|N|,Anderson|SC|US|-82.65|34.5|27|N|,Andijon|andijan region|UZ|72.35|40.78|747|W|andican;andijan;andisjan;andizan;andizjan,Andimeshk|khuzestan|IR|48.35|32.46|135|W|,Andong|gyeongsangbuk do|KR|128.72|36.57|153|W|,Andover|MN|US|-93.29|45.23|32|N|,Ang Mo Kio New Town||SG|103.84|1.38|159|W|,Angarsk|irkutsk oblast|RU|103.91|52.56|243|W|,Angeles City|central luzon|PH|120.58|15.15|483|W|,Angers|pays de la loire|FR|-0.55|47.47|168|W|,Angono|calabarzon|PH|121.15|14.53|134|W|,Angra dos Reis|rio de janeiro|BR|-44.32|-23.01|179|W|,Angren|tashkent region|UZ|70.14|41.02|191|W|,Anjo|aichi|JP|137.08|34.96|188|W|,Ankang|shaanxi|CN|109.02|32.68|870|W|,Ankara|ankara|TR|32.85|39.92|3517|W|ancara;angora,Ankeny|IA|US|-93.61|41.73|56|N|,Ann Arbor|MI|US|-83.74|42.28|117|N|,Annaba|annaba|DZ|7.77|36.9|342|W|bone,Annandale|VA|US|-77.2|38.83|41|N|,Annapolis|MD|US|-76.49|38.98|40|N|,Annex|ON|CA|-79.4|43.67|30|N|,Anqing|anhui|CN|117.05|30.51|804|W|an khanh;an cching;anking,Anqiu|shandong|CN|119.19|36.43|364|W|,Ansan-si|gyeonggi do|KR|126.82|37.32|623|W|ansan,Anshan|liaoning|CN|122.99|41.12|1450|W|an son;an san,Anshun|guizhou|CN|105.93|26.25|765|W|an sun,Antakya|hatay|TR|36.16|36.21|399|W|antioche;antiochia am orontes;antiochia di siria;antiochia vid orontes;antiochie;antiokia;antioquia;antioch;teopolis,Antalya|antalya|TR|30.7|36.91|1335|W|antalia,Antananarivo|analamanga|MG|47.54|-18.91|1349|W|antananarywa;tananarive,Antelope|CA|US|-121.33|38.71|45|N|,Antioch|CA|US|-121.81|38|110|N|,Antipolo|calabarzon|PH|121.12|14.63|913|W|antipolo city,Antofagasta|antofagasta|CL|-70.4|-23.65|401|W|,Antsirabe|vakinankaratra|MG|47.03|-19.87|260|W|,Antsiranana|diana|MG|49.29|-12.32|136|W|diego suarez,Antwerp|flanders|BE|4.4|51.22|529|W|amberes;antuerpia;antverpy;antwerpen;antwerpia;anvers;anversa;kota antwerpen,Anyama|abidjan autonomous district|CI|-4.05|5.49|133|W|,Anyang|henan|CN|114.38|36.1|1146|W|an duong;an jang,Anyang-si|gyeonggi do|KR|126.93|37.39|595|W|anyang,Aomori|aomori|JP|140.73|40.82|298|W|,Apache Junction|AZ|US|-111.55|33.42|38|N|,Apan|MX13|MX|-98.45|19.71|26|N|,Aparecida de Goiania|goias|BR|-49.24|-16.82|527|W|,Apaseo el Alto|MX11|MX|-100.62|20.46|27|N|,Apaseo el Grande|MX11|MX|-100.69|20.55|26|N|,Apatzingan|MX16|MX|-102.36|19.09|102|N|,Apeldoorn|gelderland|NL|5.97|52.21|136|W|,Apex|NC|US|-78.85|35.73|45|N|,Apizaco|MX29|MX|-98.14|19.41|49|N|ciudad de apizaco,Apopka|FL|US|-81.51|28.68|48|N|,Apple Valley|CA|US|-117.19|34.5|72|N|,Apple Valley|MN|US|-93.22|44.73|51|N|,Appleton|WI|US|-88.42|44.26|74|N|,Apucarana|parana|BR|-51.46|-23.55|134|W|,Aqsu|xinjiang|CN|80.28|41.18|535|W|aksou;aksu;ciudad de aksu,Ar Ramtha|irbid|JO|36.01|32.56|155|W|,Ar Raqqah|raqqa|SY|39.01|35.95|531|W|raqqa;rakka,Ar Rayyan|baladiyat ar rayyan|QA|51.42|25.29|272|W|al rayyan,Arabi|somali|ET|42.49|9.96|148|W|,Aracaju|sergipe|BR|-37.07|-10.91|664|W|,Aracatuba|sao paulo|BR|-50.43|-21.21|208|W|,Arad|arad county|RO|21.32|46.18|169|W|,Araguaina|tocantins|BR|-48.21|-7.19|183|W|,Arak|markazi|IR|49.7|34.09|503|W|,Arakawa|tokyo|JP|139.78|35.74|216|W|arakawa city,Arandas|MX14|MX|-102.35|20.71|52|N|,Arapiraca|alagoas|BR|-36.66|-9.75|243|W|,Arar|northern borders region|SA|41.04|30.98|148|W|,Araraquara|sao paulo|BR|-48.18|-21.79|168|W|,Araras|sao paulo|BR|-47.38|-22.36|135|W|,Araruama|rio de janeiro|BR|-42.34|-22.87|137|W|,Araucaria|parana|BR|-49.41|-25.59|162|W|,Araure|portuguesa|VE|-69.24|9.58|181|W|,Arba Minch|south ethiopia regional state|ET|37.55|6.03|201|W|,Arcadia|CA|US|-118.04|34.14|58|N|,Arcahaie|ouest|HT|-72.51|18.77|130|W|,Archway|england|GB|-0.13|51.57|215|W|,Arcola East|SK|CA|-104.54|50.43|33|N|,Ardabil|ardabil province|IR|48.29|38.25|410|W|ardebil;erdebil,Arden-Arcade|CA|US|-121.38|38.6|92|N|,Ardmore|OK|US|-97.14|34.17|25|N|,Arequipa|arequipa|PE|-71.54|-16.4|1195|W|,Arganzuela|madrid|ES|-3.7|40.4|148|W|,Arhus|central jutland|DK|10.21|56.16|285|W|aarhus,Arica|arica y parinacota region|CL|-70.3|-18.48|241|W|,Arif Wala|balochistan|PK|66.3|26.32|157|W|,Arifwala|punjab|PK|73.07|30.29|854|W|,Arish|north sinai|EG|33.8|31.13|199|W|al arisch;al arish;al arisz;alarixe;aris;el arish;el aris;el arich;city of cut noses,Arkhangel'sk|arkhangelskaya|RU|40.55|64.55|349|W|arkhangelsk;arcangelo;archangelsk;arcangel;arkangeli,Arlington|TX|US|-97.11|32.74|388|NW|,Arlington|VA|US|-77.1|38.88|207|NW|,Arlington|MA|US|-71.16|42.42|42|N|,Arlington Heights|IL|US|-87.98|42.09|75|N|,Armavir|krasnodar krai|RU|41.11|45|199|W|armawir,Armenia|quindio department|CO|-75.67|4.54|304|W|armenien;armenie;ermenistan,Arnavutkoey|istanbul|TR|28.74|41.18|198|W|arnavutkoy,Arnhem|gelderland|NL|5.91|51.98|162|W|arnheim;arnhemia,Arrah|bihar|IN|84.66|25.56|261|W|,Arroyo Naranjo|havana|CU|-82.38|23.04|210|W|,Artux|xinjiang|CN|76.18|39.71|285|W|,Arusha|arusha|TZ|36.68|-3.37|617|W|,Arvada|CO|US|-105.09|39.8|115|N|,As Salimiyah|hawalli|KW|48.08|29.33|147|W|,As Samawah|muthanna|IQ|45.29|31.33|152|W|samawa;samawah;semave,Asahikawa|hokkaido|JP|142.36|43.77|333|W|,Asaka|saitama|JP|139.6|35.8|141|W|,Asansol|west bengal|IN|86.98|23.68|504|W|,Asela|oromiya|ET|39.13|7.95|139|W|,Ash Sharqat|salah ad din|IQ|43.23|35.52|160|W|,Ash Shatrah|dhi qar|IQ|46.17|31.41|182|W|,Ashaiman|greater accra|GH|-0.03|5.7|190|W|ashiaman,Ashburn|VA|US|-77.49|39.04|43|N|,Ashburn|IL|US|-87.71|41.75|42|N|,Ashdod|southern district|IL|34.65|31.79|226|W|aschdod;asdod;asdode;ashdod yam;asjdod;aszdod,Asheboro|NC|US|-79.81|35.71|26|N|,Asheville|NC|US|-82.55|35.6|95|N|,Ashgabat|ashgabat|TM|58.38|37.95|1030|W|achgabat;aschgabat;asgabate;ashkabad;ashkhabad;asjabad;asjchabad;asjkhabad;aszchabad;asgabat;askabat;aschabad,Ashikaga|tochigi|JP|139.45|36.33|144|W|,Ashkelon|southern district|IL|34.57|31.67|144|W|ashqelon;ashquelon,Ashmont|MA|US|-71.07|42.28|30|N|,Ashuganj City|chittagong|BD|91.01|24.04|210|W|,Asmara|maekel|ER|38.93|15.34|563|W|,Aspen Hill|MD|US|-77.07|39.08|48|N|,Assiut|asyut|EG|31.18|27.18|528|W|asyut,Astana|astana|KZ|71.45|51.18|1544|W|akmolinsk;noer soeltan;nour soultan;nur sultan;tselinograd,Astanajapura|west java|ID|108.63|-6.8|148|W|,Astoria|NY|US|-73.93|40.77|150|NW|,Astrakhan|astrakhan oblast|RU|48.04|46.35|533|W|astrachan;astracan;astraca;astrahan,Asuncion|asuncion|PY|-57.65|-25.29|1482|W|assuncao,Aswan|aswan|EG|32.9|24.09|379|W|assouan;assuan;assuao;asuan;asvan,Atani|anambra|NG|6.75|6.01|230|W|,Atascadero|CA|US|-120.67|35.49|29|N|,Atascocita|TX|US|-95.18|30|65|N|,Atasehir|istanbul|TR|29.12|40.98|361|W|,Athens|attica|GR|23.73|37.98|664|W|ateena;aten;atena;atenas;atene;ateny;athen;athena;athene;athenes;atheny;athinai;atina;kota athena,Athens|GA|US|-83.38|33.96|127|N|,Athens|OH|US|-82.1|39.33|25|N|,Athlone|western cape|ZA|18.5|-33.97|237|W|,Atibaia|sao paulo|BR|-46.55|-23.12|158|W|,Atlanta|GA|US|-84.39|33.75|510|NW|,Atlantic City|NJ|US|-74.42|39.36|39|N|kota atlantic,Atlixco|MX21|MX|-98.44|18.91|86|N|,Atotonilco el Alto|MX14|MX|-102.51|20.55|26|N|,Atsiaman|greater accra|GH|-0.33|5.7|202|W|achiaman;ashaiman,Atsugi|kanagawa|JP|139.37|35.44|223|W|acugi,Attleboro|MA|US|-71.29|41.94|44|N|,Attock City|punjab|PK|72.36|33.77|141|W|,Atwater|CA|US|-120.61|37.35|29|N|,Atyrau|atyrau oblisi|KZ|51.88|47.1|290|W|atyraou;atyraw;atirau;atirav;atiraw,Auburn|WA|US|-122.23|47.31|77|N|,Auburn|AL|US|-85.48|32.61|62|N|,Auburn|NY|US|-76.57|42.93|26|N|,Auburn Gresham|IL|US|-87.65|41.74|45|N|,Auckland|auckland|NZ|174.76|-36.85|1547|W|,Augsburg|bavaria|DE|10.9|48.37|301|W|augsbourg;augsburg innenstadt;augsburgo;augusta,Augusta|GA|US|-81.97|33.47|43|N|,Aurangabad|maharashtra|IN|75.34|19.88|1175|W|,Aurora|CO|US|-104.83|39.73|359|NW|,Aurora|IL|US|-88.32|41.76|200|NW|,Aurora|ON|CA|-79.47|44|55|N|,Austin|TX|US|-97.74|30.27|974|NW|,Austintown|OH|US|-80.76|41.1|29|N|,Autlan de Navarro|MX14|MX|-104.37|19.77|45|N|,Avadi|tamil nadu|IN|80.11|13.11|345|W|,Avellaneda|buenos aires|AR|-58.37|-34.66|367|W|,Aventura|FL|US|-80.14|25.96|37|N|,Avondale|AZ|US|-112.35|33.44|80|N|,Avondale|IL|US|-87.71|41.94|39|N|,Avtozavodskyi|poltava|UA|33.43|49.1|157|W|avtozavodskyi rayon;avtozavodskyy;avtozavodskyy rayon,Awasa|sidama region|ET|38.48|7.06|422|W|awassa,Awka|anambra|NG|7.07|6.21|167|W|avka,Ayacucho|ayacucho|PE|-74.22|-13.16|140|W|,Aydin|aydin|TR|27.84|37.85|163|W|tralleis;tralli,Aylmer|QC|CA|-75.81|45.4|56|N|,Az Zawiyah|az zawiyah|LY|12.73|32.76|200|W|ez zaviye;zawiyah,Az-Zuhur|port said|EG|32.26|31.27|266|W|al zohur,Azcapotzalco|MX09|MX|-99.19|19.49|414|NW|,Azusa|CA|US|-117.91|34.13|49|N|,Ba Dinh|hanoi|VN|105.83|21.04|221|W|,Ba Vi|hanoi|VN|105.38|21.08|282|W|,Bab Ezzouar|algiers|DZ|3.18|36.73|275|W|,Babol|mazandaran|IR|52.68|36.55|202|W|,Bac Giang|bac ninh|VN|106.19|21.27|450|W|,Bac Lieu|ca mau|VN|105.73|9.29|156|W|,Bac Ninh|bac ninh|VN|106.08|21.19|287|W|,Bac Tu Liem|hanoi|VN|105.75|21.07|340|W|,Bacau|bacau county|RO|26.91|46.57|136|W|,Bachuan|chongqing|CN|106.05|29.85|208|W|,Back Mountain|PA|US|-76|41.34|26|N|,Bacolod City|western visayas|PH|122.95|10.67|454|W|bacolod,Bacoor|calabarzon|PH|120.94|14.46|356|W|,Badajoz|extremadura|ES|-6.97|38.88|150|W|badajos,Badalona|catalonia|ES|2.25|41.45|217|W|,Bade|taiwan|TW|121.28|24.93|209|W|bade district,Badlapur|maharashtra|IN|73.27|19.16|174|W|,Bafoussam|west|CM|10.42|5.48|373|W|bafousam;bafusam;befoussam,Bagcilar|istanbul|TR|28.86|41.04|740|W|,Bagerhat|khulna division|BD|89.79|22.66|266|W|,Baghdad|baghdad|IQ|44.4|33.34|7216|W|bagdad;bagda;bagdat,Bago|bago region|MM|96.48|17.34|244|W|pegu;pegou,Bago City|western visayas|PH|122.83|10.53|192|W|bago,Bagong Silang|national capital region|PH|121.04|14.78|261|W|,Baguio|cordillera|PH|120.59|16.42|272|W|baguio city;kota baguio,Bahadurgarh|haryana|IN|76.94|28.69|170|W|,Baharampur|west bengal|IN|88.25|24.1|180|W|,Baharkah|erbil|IQ|44.04|36.32|130|W|,Bahawalnagar|punjab|PK|73.25|30|241|W|bahawalpur,Bahawalpur|punjab|PK|71.68|29.4|903|W|,Bahcelievler|istanbul|TR|28.86|41|576|W|,Bahia Blanca|buenos aires|AR|-62.27|-38.72|299|W|,Bahir Dar|amhara|ET|37.39|11.59|350|W|bahar dar;baher dar;bahyr dar,Bahraigh|uttar pradesh|IN|81.59|27.57|182|W|bahraich,Baicheng|jilin|CN|122.83|45.62|316|W|paj ccheng,Baise|guangxi|CN|106.63|23.89|686|W|baise city,Baishan|jilin|CN|126.42|41.94|183|W|paj san,Baiyin|gansu|CN|104.17|36.55|294|W|paj jin,Bakersfield|CA|US|-119.02|35.37|373|NW|,Baku|baki|AZ|49.89|40.38|2351|W|bacu;bakoe;bakou,Balakovo|saratov oblast|RU|47.8|52.03|199|W|balakowo,Balashikha|moscow oblast|RU|37.95|55.79|150|W|balachikha;balaschicha;balasjicha;balasjikha;balasiha;balasicha;balaszycha,Balasore|odisha|IN|86.93|21.49|144|W|baleshwar;baleswar,Balbala|djibouti|DJ|43.11|11.56|554|W|,Balch Springs|TX|US|-96.62|32.73|25|N|,Balcon de la Lisa|havana|CU|-82.45|23.05|147|W|,Baldwin Park|CA|US|-117.96|34.09|77|N|,Bali|west bengal|IN|88.34|22.65|296|W|,Balikesir|balikesir|TR|27.89|39.65|238|W|,Balikpapan|east kalimantan|ID|116.83|-1.27|695|W|kota balikpapan,Baliuag|central luzon|PH|120.9|14.95|135|W|,Ballari|karnataka|IN|76.92|15.14|410|W|bellary,Ballwin|MO|US|-90.55|38.6|30|N|,Balneario Camboriu|santa catarina|BR|-48.63|-26.99|139|W|camboriu,Baltimore|MD|US|-76.61|39.29|585|NW|baltimora,Balurghat|west bengal|IN|88.78|25.22|153|W|,Balvanera|buenos aires f d|AR|-58.4|-34.61|152|W|,Bamako|bamako|ML|-7.98|12.61|4227|W|,Bamenda|north west|CM|10.15|5.96|420|W|,Ban Khlong Prawet|bangkok|TH|100.68|13.72|160|W|,Banan|chongqing|CN|106.54|29.38|508|W|,Banbury-Don Mills|ON|CA|-79.35|43.74|27|N|,Banda|uttar pradesh|IN|80.33|25.48|152|W|,Banda Aceh|aceh|ID|95.33|5.54|267|W|banda acheh;banda achem;banda atjeh;kota banda aceh,Bandar Abbas|hormozgan|IR|56.28|27.19|352|W|bandar e abbas;bender abbas;cambarao;gombroon;gumrun;port comorao,Bandar Bukit Raja|selangor|MY|101.43|3.09|146|W|,Bandar-e Mahshahr|khuzestan|IR|49.19|30.56|162|W|,Bandar Lampung|lampung|ID|105.26|-5.43|1166|W|bandarlampung;kota bandar lampung,Bandar Seri Alam|johor|MY|103.88|1.5|220|W|seri alam city,Bandar Sunway|selangor|MY|101.61|3.07|200|W|sunway city,Bandar Tasik Puteri|selangor|MY|101.47|3.29|150|W|puteri lake city,Bandar Utama|kuala lumpur|MY|101.61|3.15|200|W|,Bandarban|chittagong|BD|92.22|22.2|495|W|,Bandundu Province|kwilu|CD|17.38|-3.32|202|W|bandundu;bandundu bolgesi;provincia de bandundu;provincia di bandundu;provinsi bandundu;provinz bandundu,Bandung|west java|ID|107.61|-6.92|2528|W|kota bandung,Bang Kapi|bangkok|TH|100.65|13.77|147|W|,Bang Khae|bangkok|TH|100.41|13.69|193|W|,Bang Khun Thian|bangkok|TH|100.43|13.66|165|W|,Bangkok|bangkok|TH|100.5|13.75|5104|W|banguecoque;bancoque,Bangor|ME|US|-68.77|44.8|32|N|,Bangui|bangui|CF|18.55|4.36|812|W|bangi,Banha|qalyubia|EG|31.18|30.46|182|W|,Bani Suwayf|beni suweif|EG|31.1|29.07|273|W|,Banja Luka|srpska|BA|17.21|44.78|221|W|bania luka;banya luka,Banjar|west java|ID|107.43|-7.2|209|W|,Banjaran|west java|ID|107.59|-7.05|164|W|,Banjarbaru|south kalimantan|ID|114.84|-3.44|293|W|bandjarbaru,Banjarmasin|south kalimantan|ID|114.59|-3.32|657|W|,Bankura|west bengal|IN|87.07|23.23|133|W|,Banning|CA|US|-116.88|33.93|30|N|,Bannu|khyber pakhtunkhwa|PK|70.6|32.99|1357|W|,Banqiao|taipei|TW|121.47|25.01|551|W|banqiao district;banciao;banciao district,Bao'an|guangdong|CN|113.88|22.55|4476|W|,Bao Loc|lam dong|VN|107.81|11.55|170|W|,Baoding|hebei|CN|115.46|38.87|2739|W|prefettura di baoding,Baoji|shaanxi|CN|107.24|34.37|1437|W|,Baoshan|shanghai|CN|121.49|31.41|2265|W|,Baoshan|yunnan|CN|99.16|25.12|935|W|pao san,Baotou|inner mongolia|CN|109.84|40.65|2150|W|pao tchou,Baqubah|diyala|IQ|44.61|33.75|152|W|bakouba;bakuba;baquba,Barakpur|west bengal|IN|88.36|22.77|148|W|,Baranagar|west bengal|IN|88.38|22.64|260|W|barahanagore,Baranovichi|brest|BY|26.01|53.13|170|W|baranavitsjy;baranawitschy;baranovitchi;baranovitsi;baranowicze,Barasat|west bengal|IN|88.48|22.72|298|W|,Barberton|OH|US|-81.61|41.01|26|N|,Barcarena|para|BR|-48.63|-1.51|139|W|,Barcelona|catalonia|ES|2.16|41.39|1686|W|barcellona;barcelone;barselona;la ciudad condal,Barcelona|anzoategui|VE|-64.69|10.14|815|W|barselona,Barddhaman|west bengal|IN|87.86|23.26|301|W|bardhaman;burdwan,Bareilly|uttar pradesh|IN|79.43|28.37|745|W|bareli,Bari|apulia|IT|16.87|41.12|316|W|,Bariadi|simiyu|TZ|33.98|-2.8|260|W|,Barinas|barinas|VE|-70.23|8.62|397|W|,Barishal|barisal division|BD|90.37|22.7|202|W|,Barking|england|GB|0.08|51.53|218|W|barking town,Barnaul|altai krai|RU|83.73|53.36|632|W|barnaoel;barnaoul,Barnstable|MA|US|-70.3|41.7|47|N|,Barquisimeto|lara|VE|-69.36|10.06|1240|W|,Barra da Tijuca|rio de janeiro|BR|-43.37|-23|421|W|kiki,Barra Mansa|rio de janeiro|BR|-44.17|-22.54|181|W|,Barrancabermeja|santander department|CO|-73.85|7.07|191|W|barracana bermeja,Barranquilla|atlantico|CO|-74.78|10.97|1206|W|barranquilha,Barreiras|bahia|BR|-44.99|-12.15|171|W|,Barrie|ON|CA|-79.67|44.4|147|NW|,Bartlesville|OK|US|-95.98|36.75|36|N|,Bartlett|TN|US|-89.87|35.2|58|N|,Bartlett|IL|US|-88.19|42|41|N|,Barueri|sao paulo|BR|-46.88|-23.51|316|W|tambore,Baruta|miranda|VE|-66.88|10.43|244|W|,Barysaw|minsk|BY|28.5|54.23|133|W|borisov,Basaksehir|istanbul|TR|28.79|41.11|193|W|,Basel|basel city|CH|7.57|47.56|177|W|basilea;basileia;basilej;bazel;bazylea;bale,Basildon|england|GB|0.46|51.57|144|W|,Basirhat City|west bengal|IN|88.85|22.66|143|W|,Basrah|basra|IQ|47.78|30.51|1326|W|basra;al basra;basora;bassora;bassorah;bacora,Basuo|hainan|CN|108.67|19.1|444|W|,Bata|litoral|GQ|9.77|1.86|173|W|,Batala|punjab|IN|75.2|31.81|158|W|,Batam|riau|ID|104.02|1.15|1296|W|kota batam,Batang|central java|ID|110.71|-6.48|139|W|,Batangas|calabarzon|PH|121.06|13.76|237|W|,Batavia|IL|US|-88.31|41.85|26|N|,Bath Beach|NY|US|-74|40.6|33|N|,Bathinda|punjab|IN|74.94|30.21|285|W|,Batikent|ankara|TR|32.73|39.97|300|W|,Batman|batman|TR|41.13|37.89|452|W|,Batna|batna|DZ|6.17|35.56|289|W|batina;batna city;batnah,Baton Rouge|LA|US|-91.19|30.44|227|NW|,Battagram|khyber pakhtunkhwa|PK|73.02|34.68|700|W|battagram city,Battle Creek|MI|US|-85.18|42.32|51|N|,Batu|east java|ID|112.53|-7.87|225|W|kota batu,Batu Caves|selangor|MY|101.68|3.24|254|W|,Batu Pahat|johor|MY|102.93|1.85|156|W|,Batumi|adjara|GE|41.63|41.64|186|W|bat umi;batoemi;batoumi;batum,Baturaja|south sumatra|ID|104.17|-4.13|134|W|,Baubau|southeast sulawesi|ID|122.6|-5.46|161|W|bau bau,Bauchi|bauchi|NG|9.84|10.31|693|W|bauczi,Bauru|sao paulo|BR|-49.06|-22.31|392|W|,Bawshar|muscat|OM|58.4|23.58|383|W|,Bay City|MI|US|-83.89|43.59|33|N|kota bay,Bay Shore|NY|US|-73.25|40.73|26|N|,Bay Street Corridor|ON|CA|-79.39|43.66|25|N|,Bayamo|granma province|CU|-76.64|20.37|192|W|,Bayamon|bayamon|PR|-66.16|18.4|203|W|,Bayan Lepas|penang|MY|100.26|5.3|130|W|,Bayan Nur|inner mongolia|CN|107.39|40.74|1760|W|,Bayji|salah ad din|IQ|43.49|34.93|173|W|,Bayonne|NJ|US|-74.11|40.67|66|N|,Bayside|NY|US|-73.78|40.77|66|N|,Baytown|TX|US|-94.98|29.74|76|N|,Bayview-Hunters Point|CA|US|-122.38|37.73|34|N|,Bazhong|sichuan|CN|106.74|31.87|2712|W|,Beaumont|TX|US|-94.1|30.09|115|N|,Beaumont|CA|US|-116.98|33.93|43|N|,Beauport|QC|CA|-71.19|46.86|81|N|montmorency,Beavercreek|OH|US|-84.06|39.71|46|N|beaver creek,Beaverton|OR|US|-122.8|45.49|96|N|,Beawar|rajasthan|IN|74.32|26.1|151|W|,Bechar|bechar|DZ|-2.22|31.62|165|W|basyar;baszszar,Bedford|TX|US|-97.14|32.84|49|N|,Bedok New Town||SG|103.94|1.33|276|W|,Beed|maharashtra|IN|75.76|18.99|146|W|,Beersheba|southern district|IL|34.79|31.25|186|W|be er scheva;be er sheva;beer sheba;beer szewa;beer seva;beer sheva;beerseba;beerseva;berseba;bersyeba;beer sjeva,Begoua|ombella m poko|CF|18.53|4.45|264|W|,Begusarai|bihar|IN|86.13|25.42|252|W|,Bei'an|heilongjiang|CN|126.6|48.27|436|W|,Beibei|chongqing|CN|106.44|29.83|247|W|,Beihai|guangxi|CN|109.12|21.48|525|W|pej chaj,Beijing|beijing|CN|116.4|39.91|18960|W|pechino;pekin;peking;pequim,Beiliu|guangxi|CN|110.35|22.71|199|W|,Beining|liaoning|CN|121.79|41.6|152|W|,Beipiao|liaoning|CN|120.78|41.79|190|W|,Beira|sofala|MZ|34.84|-19.84|687|W|,Beirut|beirut|LB|35.5|33.89|1916|W|beiroet;beirute;bejrut;beyrouth;beyrut,Bejaia|bejaia|DZ|5.08|36.76|176|W|bidschaya;bijaya;bougie;bugia,Bekasi|west java|ID|106.99|-6.23|2648|W|kota bekasi,Bel Air North|MD|US|-76.37|39.55|30|N|,Bel Air South|MD|US|-76.32|39.51|47|N|,Belagavi|karnataka|IN|74.5|15.85|490|W|belgaum,Belem|para|BR|-48.5|-1.46|1499|W|,Belfast|northern ireland|GB|-5.93|54.6|348|W|belfast city,Belford Roxo|rio de janeiro|BR|-43.4|-22.76|518|W|,Belgorod|belgorod oblast|RU|36.58|50.6|345|W|bielgorod;bilhorod;bilhorod dnistrovskyi,Belgrade|central serbia|RS|20.47|44.8|1273|W|belgrad;belgrado;beograd;belehrad,Belgrano|buenos aires f d|AR|-58.46|-34.56|138|W|barrio belgrano,Bell|CA|US|-118.19|33.98|36|N|,Bell Gardens|CA|US|-118.15|33.97|43|N|,Bella Vista|nacional|DO|-69.95|18.46|175|W|,Bella Vista|AR|US|-94.27|36.48|27|N|,Belleville|ON|CA|-77.38|44.17|50|N|,Belleville|IL|US|-89.98|38.52|42|N|,Belleville|NJ|US|-74.15|40.79|36|N|,Bellevue|WA|US|-122.2|47.61|139|NW|,Bellevue|NE|US|-95.89|41.14|55|N|,Bellflower|CA|US|-118.12|33.88|78|N|,Bellingham|WA|US|-122.49|48.76|85|N|,Bello|antioquia|CO|-75.56|6.34|392|W|,Belmont|CA|US|-122.28|37.52|27|N|,Belmont Cragin|IL|US|-87.77|41.93|79|N|,Belo Horizonte|minas gerais|BR|-43.94|-19.92|2721|W|b h;belo hte;bhte,Beloit|WI|US|-89.03|42.51|36|N|,Beltline|AB|CA|-114.07|51.04|25|N|,Belvidere|IL|US|-88.84|42.26|25|N|,Ben Cat|ho chi minh city hcmc|VN|106.6|11.15|364|W|,Bend|OR|US|-121.32|44.06|87|N|,Bendale|ON|CA|-79.25|43.77|29|N|,Benfica|luanda|AO|13.16|-8.94|191|W|,Bengaluru|karnataka|IN|77.59|12.97|8495|W|bangalore,Bengbu|anhui|CN|117.36|32.94|972|W|,Benghazi|banghazi|LY|20.07|32.11|757|W|banghazi;bengasi;bengazi;bingazi,Bengkulu|bengkulu|ID|102.27|-3.8|397|W|,Benguela|benguela|AO|13.4|-12.58|555|W|,Beni|north kivu|CD|29.47|0.49|140|W|new beni;nouveau beni,Beni Mellal|beni mellal khenifra|MA|-6.35|32.34|210|W|bani mallal;beni melal,Benicia|CA|US|-122.16|38.05|28|N|,Benin City|edo state|NG|5.63|6.34|1782|W|benim;benin;benin by;benin stadt;ciudad de benin;kota benin,Benito Juarez|MX09|MX|-99.16|19.37|385|NW|,Benoni|gauteng|ZA|28.32|-26.19|605|W|,Bensalem|PA|US|-74.95|40.1|60|N|bensalem township;municipio de bensalem;xa bensalem,Bensonhurst|NY|US|-73.99|40.6|60|N|,Benton|AR|US|-92.59|34.56|34|N|,Bentonville|AR|US|-94.21|36.37|44|N|,Benxi|liaoning|CN|123.77|41.29|987|W|pen si,Berazategui|buenos aires|AR|-58.21|-34.77|180|W|,Berbera|woqooyi galbeed|SO|45.01|10.44|242|W|,Bercham|perak|MY|101.14|4.64|150|W|,Berezniki|perm krai|RU|56.82|59.41|167|W|beresniki;bieriezniki,Bergen|vestland|NO|5.32|60.39|294|W|,Bergenfield|NJ|US|-74|40.93|27|N|,Berkeley|CA|US|-122.27|37.87|120|N|,Berlin|state of berlin|DE|13.41|52.52|3426|W|berliini;berlijn;berlim;berlino,Berrechid|casablanca settat|MA|-7.59|33.27|149|W|,Berriozabal|MX05|MX|-93.27|16.8|28|N|,Bertoua|east|CM|13.68|4.58|137|W|,Berwyn|IL|US|-87.79|41.85|56|N|,Bessemer|AL|US|-86.95|33.4|26|N|,Bethel Park|PA|US|-80.04|40.33|32|N|,Bethesda|MD|US|-77.1|38.98|60|N|,Bethlehem|PA|US|-75.37|40.63|74|N|,Betim|minas gerais|BR|-44.2|-19.97|384|W|,Bettendorf|IA|US|-90.52|41.52|35|N|,Bettiah|bihar|IN|84.5|26.8|132|W|,Beverly|MA|US|-70.88|42.56|41|N|,Beverly Cove|MA|US|-70.85|42.55|40|N|,Beverly Hills|CA|US|-118.4|34.07|34|N|,Bexley|england|GB|0.15|51.44|228|W|london borough of bexley,Beylikduezue|istanbul|TR|28.64|40.98|415|W|beylikduzu,Bhadravati|karnataka|IN|75.71|13.85|163|W|,Bhagalpur|bihar|IN|86.97|25.24|400|W|,Bhakkar|punjab|PK|71.06|31.63|131|W|,Bhalswa Jahangirpur|delhi|IN|77.17|28.74|197|W|,Bharatpur|bagmati province|NP|84.44|27.68|369|W|,Bharatpur|rajasthan|IN|77.49|27.22|252|W|,Bharuch|gujarat|IN|72.98|21.69|169|W|,Bhatara|dhaka division|BD|90.45|23.8|324|W|,Bhatpara|west bengal|IN|88.4|22.87|483|W|,Bhavnagar|gujarat|IN|72.15|21.76|605|W|,Bhawana|punjab|PK|72.65|31.57|373|W|bhanawa,Bhayandar|maharashtra|IN|72.85|19.3|809|W|,Bhetia|jharkhand|IN|86.14|22.79|174|W|,Bhilai|chhattisgarh|IN|81.43|21.21|627|W|bhilai nagar;bhilaj nagar,Bhilwara|rajasthan|IN|74.64|25.35|359|W|,Bhimavaram|andhra pradesh|IN|81.52|16.54|146|W|,Bhind|madhya pradesh|IN|78.79|26.57|197|W|,Bhisho|eastern cape|ZA|27.44|-32.85|137|W|bisho,Bhiwandi|maharashtra|IN|73.06|19.3|874|W|,Bhiwani|haryana|IN|76.14|28.79|196|W|,Bhopal|madhya pradesh|IN|77.4|23.25|1798|W|,Bhubaneswar|odisha|IN|85.83|20.27|885|W|bhubaneshwar,Bhuj|gujarat|IN|69.67|23.25|148|W|,Bhusawal|maharashtra|IN|75.79|21.04|187|W|,Bialystok|podlasie|PL|23.16|53.13|295|W|,Bibirevo|moscow|RU|37.6|55.88|159|W|,Bida|niger state|NG|6.01|9.08|400|W|,Bidar|karnataka|IN|77.52|17.91|216|W|,Bielany|mazovia|PL|20.94|52.29|131|W|,Bielefeld|north rhine westphalia|DE|8.53|52.03|331|W|,Bielsko-Biala|silesia|PL|19.05|49.82|176|W|bielitz biala;bilsko bela,Bien Hoa|dong nai|VN|106.82|10.94|1272|W|bienhoa,Big Spring|TX|US|-101.48|32.25|28|N|,Bihar Sharif|bihar|IN|85.52|25.2|297|W|,Bijie|guizhou|CN|105.29|27.3|1137|W|pi tie;prefecture de bijie,Bikaner|rajasthan|IN|73.31|28.02|644|W|,Bila Tserkva|kyiv oblast|UA|30.12|49.8|207|W|belaya tserkov;biala cerkiew;bila cerkva;bila zerkwa;bila terkva,Bilaspur|chhattisgarh|IN|82.16|22.08|365|W|,Bilbao|basque country|ES|-2.93|43.26|347|W|bilbau;el bocho,Bilbeis|sharqia|EG|31.56|30.42|185|W|bilbajs;bilbays;bilbeys,Bilimora|gujarat|IN|72.96|20.77|510|W|,Billerica|MA|US|-71.27|42.56|39|N|,Billings|MT|US|-108.5|45.78|117|N|,Biloxi|MS|US|-88.89|30.4|45|N|,Bilqas|dakahlia|EG|31.36|31.21|137|W|,Bima|west nusa tenggara|ID|118.73|-8.46|165|W|,Bimbo|ombella m poko|CF|18.42|4.26|348|W|,Binan|calabarzon|PH|121.08|14.34|300|W|binan city;kota binan,Binangonan|calabarzon|PH|121.19|14.46|219|W|,Binghamton|NY|US|-75.92|42.1|46|N|,Binh Thanh|ho chi minh city hcmc|VN|106.71|10.81|552|W|,Binjai|north sumatra|ID|98.49|3.6|279|W|kota binjai,Bintulu|sarawak|MY|113.03|3.17|151|W|,Binzhou|shandong|CN|118.02|37.37|682|W|pin cou;tan chau,Biratnagar|koshi|NP|87.27|26.46|244|W|,Birendranagar|karnali pradesh|NP|81.62|28.6|154|W|birendra nagar;birendranagara,Birganj|madhesh|NP|84.88|27.02|268|W|birgunj,Birjand|south khorasan province|IR|59.22|32.87|196|W|birdschand,Birkenhead|england|GB|-3.01|53.39|325|W|,Birmingham|england|GB|-1.9|52.48|1157|W|,Birmingham|AL|US|-86.8|33.52|196|NW|,Biryulevo|moscow|RU|37.68|55.59|144|W|,Bishan|chongqing|CN|106.22|29.59|204|W|,Bishkek|bishkek|KG|74.59|42.87|900|W|bichkek;bischkek;bisjkek;biskek;bisqueque;biszkek,Bishoftu|oromiya|ET|38.98|8.75|207|W|,Biskra|biskra|DZ|5.73|34.85|204|W|biskira,Bismarck|ND|US|-100.78|46.81|75|N|bismarck i nord dakota,Bissau|bissau|GW|-15.6|11.86|439|W|bisau,Bitung|north sulawesi|ID|125.13|1.44|225|W|kota bitung,Biysk|altai krai|RU|85.2|52.53|215|W|biejsk;bijsk,Bizerte|bizerte governorate|TN|9.87|37.27|138|W|biserta;bizert;bizerta,Blackburn|england|GB|-2.48|53.75|146|W|,Blackpool|england|GB|-3.05|53.82|145|W|,Blacksburg|VA|US|-80.41|37.23|44|N|,Blagoveshchensk|amur oblast|RU|127.53|50.28|225|W|blagovesjtsjensk;blagovechtchensk;blagoveschensk;blagovesjtjensk;blagovescensk;blagovestsensk;blagoweschtschensk;blagowieszczensk,Blaine|MN|US|-93.23|45.16|62|N|,Blainville|QC|CA|-73.88|45.67|46|N|,Blantyre|southern region|MW|35.01|-15.78|902|W|,Blida|blida|DZ|2.83|36.47|331|W|al bulajda;buleyde,Blitar|east java|ID|112.17|-8.1|161|W|kota blitar,Bloemfontein|free state|ZA|26.21|-29.12|556|W|,Bloomfield|NJ|US|-74.19|40.81|49|N|,Bloomington|MN|US|-93.3|44.84|86|N|,Bloomington|IN|US|-86.53|39.17|84|N|,Bloomington|IL|US|-88.99|40.48|78|N|,Blue Springs|MO|US|-94.28|39.02|54|N|,Blumenau|santa catarina|BR|-49.07|-26.92|361|W|,Bnei Brak|tel aviv|IL|34.83|32.08|214|W|benai beraq;bene berak;bene beraq;benei beraq;beney beraq;bnei berak;bnej brak;bney brak;bne beraq,Bo|southern province|SL|-11.74|7.96|233|W|,Boa Vista|roraima|BR|-60.67|2.82|419|W|,Boardman|OH|US|-80.66|41.02|35|N|,Bobo-Dioulasso|hauts bassins|BF|-4.29|11.18|904|W|,Bobruysk|mogilev|BY|29.21|53.15|205|W|babroejsk;babruisk;babrujsk;babruysk;bobruisk;bobrujsk,Boca Raton|FL|US|-80.08|26.36|93|N|boca de ratones;wta boca raton,Bochum|north rhine westphalia|DE|7.22|51.48|385|W|,Bocoio|benguela|AO|14.14|-12.47|164|W|,Bogor|west java|ID|106.79|-6.59|1078|W|kota bogor,Bogota|bogota d c|CO|-74.08|4.61|7674|W|santafe de bogota,Bogra|rajshahi division|BD|89.37|24.85|210|W|,Bohuniya|zhytomyr oblast|UA|28.61|50.28|147|W|bohunia;bohuniia;bohunskyi;bohunskyi rayon,Boisbriand|QC|CA|-73.83|45.62|26|N|,Boise|ID|US|-116.2|43.61|235|NW|,Bojnurd|north khorasan|IR|57.33|37.47|192|W|bojnourd,Bokaro|jharkhand|IN|86.15|23.67|564|W|bokaro steel city,Boksburg|gauteng|ZA|28.26|-26.21|445|W|,Bole|xinjiang|CN|82.07|44.89|235|W|,Bolingbrook|IL|US|-88.07|41.7|74|N|,Bologna|emilia romagna|IT|11.34|44.49|394|W|bologne;bolonha;bolonia;bolonya,Bolton|england|GB|-2.43|53.58|141|W|,Bolton|ON|CA|-79.74|43.88|26|N|,Bolu|bolu|TR|31.61|40.74|184|W|,Boma|bas congo|CD|13.05|-5.85|297|W|,Bondoukou|zanzan district|CI|-2.8|8.04|141|W|,Bonita Springs|FL|US|-81.78|26.34|51|N|,Bonn|north rhine westphalia|DE|7.1|50.73|330|W|bona,Bontang|east kalimantan|ID|117.49|0.13|194|W|kota bontang,Borama|awdal|SO|43.18|9.94|597|W|boorama,Bordeaux|new aquitaine|FR|-0.58|44.84|265|W|bordeus;burdeos,Bordj Bou Arreridj|bordj bou arreridj|DZ|4.76|36.07|158|W|burdz bu urajridz,Borivli|maharashtra|IN|72.86|19.23|609|W|borivali,Borough Park|NY|US|-74|40.63|149|NW|,Borshchahivka|kyiv city|UA|30.39|50.43|179|W|,Borujerd|lorestan province|IR|48.75|33.9|251|W|,Boshan|shandong|CN|117.83|36.48|153|W|,Bossier City|LA|US|-93.73|32.52|68|N|,Boston|MA|US|-71.06|42.36|653|NW|,Botad|gujarat|IN|71.67|22.17|130|W|,Bothell|WA|US|-122.21|47.76|42|N|,Botshabelo|free state|ZA|26.73|-29.27|309|W|,Botucatu|sao paulo|BR|-48.45|-22.89|145|W|,Bouake|vallee du bandama district|CI|-5.03|7.69|832|W|,Boucherville|QC|CA|-73.44|45.59|39|N|,Boulder|CO|US|-105.27|40.01|106|N|,Bountiful|UT|US|-111.88|40.89|43|N|,Bournemouth|england|GB|-1.88|50.72|163|W|,Bowie|MD|US|-76.73|38.94|58|N|bowie station;huntington city;huntington station,Bowling Green|KY|US|-86.44|36.99|63|N|,Bowling Green|OH|US|-83.65|41.37|31|N|,Bowmanville|ON|CA|-78.68|43.92|39|N|,Boyeros|havana|CU|-82.4|23.01|188|W|,Boyle Heights|CA|US|-118.21|34.03|92|N|,Boynton Beach|FL|US|-80.07|26.53|73|N|,Bozeman|MT|US|-111.04|45.68|43|N|,Bozhou|anhui|CN|115.77|33.88|1409|W|po cou,Bradenton|FL|US|-82.57|27.5|54|N|,Bradford|england|GB|-1.75|53.79|366|W|,Braga|braga|PT|-8.42|41.55|193|W|,Braganca|para|BR|-46.77|-1.05|132|W|,Braganca Paulista|sao paulo|BR|-46.54|-22.95|176|W|,Brahmanbaria|chittagong|BD|91.11|23.97|264|W|,Brahmapur|odisha|IN|84.79|19.31|356|W|,Braila|braila county|RO|27.97|45.27|154|W|berail;ibrail;brillago;drinago,Braintree|MA|US|-71|42.2|37|N|,Brakpan|gauteng|ZA|28.37|-26.24|305|W|,Brampton|ON|CA|-79.77|43.68|656|NW|,Brandon|FL|US|-82.29|27.94|103|N|,Brandon|MB|CA|-99.95|49.85|48|N|,Branford|CT|US|-72.82|41.28|29|N|,Brant|ON|CA|-80.35|43.13|34|N|,Brantford|ON|CA|-80.27|43.13|104|N|,Brasilandia|sao paulo|BR|-46.69|-23.45|243|W|,Brasilia|federal district|BR|-47.93|-15.78|2207|W|,Brasov|brasov county|RO|25.61|45.65|253|W|kronstadt;braszow,Bratislava|bratislava region|SK|17.11|48.15|423|W|bratyslawa;presbourg;pressburg,Bratsk|irkutsk oblast|RU|101.61|56.13|256|W|brack,Braunschweig|lower saxony|DE|10.53|52.27|244|W|brunswick;brunszwik,Brawley|CA|US|-115.53|32.98|25|N|,Brazzaville|brazzaville|CG|15.28|-4.27|1982|W|brazavil,Brea|CA|US|-117.9|33.92|41|N|,Breda|north brabant|NL|4.78|51.59|184|W|,Bremen|bremen|DE|8.81|53.08|546|W|brema;bremy;breme,Bremerton|WA|US|-122.63|47.57|39|N|,Brent|england|GB|-0.3|51.55|329|W|london borough of brent,Brentwood|NY|US|-73.25|40.78|60|N|,Brentwood|CA|US|-121.7|37.93|58|N|,Brentwood|TN|US|-86.78|36.03|41|N|,Brentwood Estates|TN|US|-86.78|36.03|31|N|,Brescia|lombardy|IT|10.21|45.54|200|W|,Brest|brest|BY|23.72|52.11|347|W|brest nad bugem;brest litovsk;brzesc;brest litowsk,Brest|brittany|FR|-4.49|48.39|144|W|,Briarwood|NY|US|-73.82|40.71|53|N|,Brick|NJ|US|-74.14|40.06|76|N|,Bridgeport|CT|US|-73.19|41.18|147|NW|,Bridgeport|IL|US|-87.65|41.84|33|N|,Bridgeton|NJ|US|-75.23|39.43|25|N|,Bridgewater|NJ|US|-74.65|40.6|44|N|,Brighouse-City Centre|BC|CA|-123.13|49.17|62|N|brighouse;richmond brighouse,Brighton|england|GB|-0.14|50.83|283|W|,Brighton|MA|US|-71.16|42.35|45|N|,Brighton|CO|US|-104.82|39.99|37|N|,Brighton|NY|US|-77.55|43.15|36|N|,Brighton Beach|NY|US|-73.96|40.58|31|N|,Brighton Park|IL|US|-87.7|41.82|44|N|,Brisbane|queensland|AU|153.03|-27.47|2780|W|brisbane city,Bristol|england|GB|-2.6|51.46|479|W|,Bristol|CT|US|-72.95|41.67|60|N|,Bristol|TN|US|-82.19|36.6|26|N|,Brno|south moravian|CZ|16.61|49.2|379|W|brunn,Brockton|MA|US|-71.02|42.08|95|N|,Broken Arrow|OK|US|-95.79|36.05|106|N|,Brookfield|WI|US|-88.11|43.06|38|N|,Brookhaven|GA|US|-84.34|33.86|51|N|north atlanta,Brooklin|ON|CA|-78.96|43.96|25|N|,Brookline|MA|US|-71.12|42.33|58|N|,Brooklyn|NY|US|-73.95|40.65|2736|NW|borough of brooklyn,Brooklyn Center|MN|US|-93.33|45.08|30|N|,Brooklyn Park|MN|US|-93.36|45.09|79|N|,Broomfield|CO|US|-105.09|39.92|65|N|,Brossard|QC|CA|-73.47|45.45|69|N|,Brownsville|TX|US|-97.5|25.9|186|NW|,Brownsville|NY|US|-73.92|40.66|74|N|,Brunswick|OH|US|-81.84|41.24|34|N|,Brusque|santa catarina|BR|-48.91|-27.1|155|W|,Brussels|brussels capital|BE|4.35|50.85|1019|W|brussel;bruxelles;bruksela;brusel;bruselas;bruxelas;bryssel;bruksel;citta di bruxelles;city of brussels;kota brusel,Bryan|TX|US|-96.37|30.67|82|N|,Bryansk|bryansk oblast|RU|34.32|53.27|427|W|brjansk;breansk;briansk;brianski,Bucaramanga|santander department|CO|-73.12|7.12|581|W|,Bucharest|bucharest|RO|26.11|44.43|1877|W|boekarest;bucarest;bucareste;bucuresti;bukarest;bukareszt;bukurest;bukres,Bucheon-si|gyeonggi do|KR|126.78|37.5|850|W|bucheon,Buckeye|AZ|US|-112.58|33.37|50|N|,Buda|budapest|HU|19.03|47.5|510|W|altofen;boeda;budin;ofen,Budapest|budapest|HU|19.04|47.5|1741|W|boedapest;budapesta;budapeste;budapeszt;ofen pest,Budapest XI. keruelet|budapest|HU|19.04|47.48|139|W|budapest xi kerulet;ujbuda,Budaun|uttar pradesh|IN|79.13|28.04|161|W|badaun,Budta|autonomous region in muslim mindanao|PH|124.44|7.2|1273|W|,Buea|south west|CM|9.24|4.15|140|W|,Buena Park|CA|US|-118|33.87|83|N|,Buenaventura|valle del cauca department|CO|-77|3.58|432|W|,Buenaventura Lakes|FL|US|-81.35|28.34|26|N|,Buenavista|MX15|MX|-99.17|19.61|216|NW|,Bueng Kum|bangkok|TH|100.67|13.79|145|W|ban bueng kum;ban cum,Buenos Aires|buenos aires f d|AR|-58.38|-34.61|2891|W|santa maria del buen ayre,Bueyuekcekmece|istanbul|TR|28.59|41.02|163|W|buyukcekmece,Buffalo|NY|US|-78.88|42.89|258|NW|bufalo,Buffalo Grove|IL|US|-87.96|42.15|41|N|,Buguma|rivers state|NG|6.86|4.74|135|W|,Bujumbura|bujumbura mairie|BI|29.36|-3.38|769|W|buyumbura;buzumbura,Bukan|west azerbaijan|IR|46.21|36.52|193|W|,Bukavu|south kivu|CD|28.84|-2.49|816|W|costermansstad;costermansville,Bukhara|bukhara|UZ|64.43|39.77|280|W|boukhara;bucara;buchara;buhara;bujara,Bukit Batok New Town||SG|103.76|1.36|158|W|,Bukit Jalil|kuala lumpur|MY|101.68|3.05|200|W|,Bukit Merah Estate||SG|103.82|1.28|151|W|,Bukit Mertajam|penang|MY|100.47|5.36|212|W|bukit mertarajam,Bukit Panjang New Town||SG|103.76|1.38|138|W|,Bukit Rahman Putra|selangor|MY|101.56|3.22|607|W|,Bukoba|kagera|TZ|31.81|-1.33|144|W|,Bulandshahr|uttar pradesh|IN|77.86|28.4|198|W|bulendsehr,Bulaon|central luzon|PH|120.66|15.08|131|W|,Bulawayo|bulawayo|ZW|28.58|-20.15|665|W|,Bullhead City|AZ|US|-114.57|35.15|39|N|,Bumba|mongala|CD|22.47|2.19|154|W|,Bunamwaya|central region|UG|32.56|0.25|413|W|,Bunda|mara|TZ|33.87|-2.02|182|W|,Bunia|ituri|CD|30.25|1.56|399|W|,Bunkyo|kanagawa|JP|139.42|35.53|240|W|bunkyo city,Buon Ma Thuot|dak lak|VN|108.04|12.67|434|W|,Burari|delhi|IN|77.2|28.76|146|W|,Buraydah|al qassim region|SA|43.97|26.33|745|W|buraidah;burajda;burayda,Burbank|CA|US|-118.31|34.18|105|N|,Burbank|IL|US|-87.78|41.73|29|N|,Burewala|punjab|PK|72.65|30.17|361|W|,Burgas|burgas|BG|27.47|42.51|210|W|boergas;bourgas;burgaz,Burgos|castille and leon|ES|-3.7|42.34|176|W|,Burhanpur|madhya pradesh|IN|76.23|21.31|210|W|,Burien|WA|US|-122.35|47.47|50|N|,Burke|VA|US|-77.27|38.79|41|N|,Burleson|TX|US|-97.32|32.54|43|N|,Burlingame|CA|US|-122.37|37.58|30|N|,Burlington|ON|CA|-79.84|43.39|186|NW|,Burlington|NC|US|-79.44|36.1|52|N|,Burlington|VT|US|-73.21|44.48|42|N|,Burlington|IA|US|-91.11|40.81|25|N|,Burnaby|BC|CA|-122.95|49.27|249|NW|,Burnley|england|GB|-2.23|53.8|149|W|,Burnsville|MN|US|-93.28|44.77|61|N|,Bursa|bursa province|TR|29.06|40.2|3101|W|,Burton|MI|US|-83.62|43|28|N|,Busan|busan|KR|129.03|35.1|3285|W|busan si;pusan,Bush|beni suweif|EG|31.13|29.15|136|W|,Bushehr|bushehr|IR|50.84|28.97|165|W|bandar bushehr;buschehr;bushire;busehr,Bushwick|NY|US|-73.92|40.69|112|N|,Business Bay|dubai|AE|55.27|25.19|191|W|,Bustleton|PA|US|-75.03|40.08|32|N|,Butembo|north kivu|CD|29.29|0.14|286|W|,Butte|MT|US|-112.53|46|34|N|,Butuan|caraga|PH|125.54|8.95|309|W|butuan city;city of butuan;kota butuan,Butwal|lumbini province|NP|83.45|27.69|195|W|,Bydgoszcz|kujawsko pomorskie|PL|18.01|53.12|330|W|bromberg;bydhost,Bytom|silesia|PL|18.93|50.35|189|W|beuthen,Ca Mau|ca mau|VN|105.15|9.18|226|W|,Caala|huambo|AO|15.56|-12.85|130|W|,Cabanatuan City|central luzon|PH|120.97|15.49|343|W|cabanatuan,Cabimas|zulia|VE|-71.45|10.4|351|W|,Cabinda|cabinda|AO|12.19|-5.56|550|W|,Cabo de Santo Agostinho|pernambuco|BR|-35.03|-8.29|216|W|,Cabo Frio|rio de janeiro|BR|-42.03|-22.89|238|W|,Cabo San Lucas|MX03|MX|-109.91|22.89|202|NW|,Cabot|AR|US|-92.02|34.97|25|N|,Cabuyao|calabarzon|PH|121.13|14.27|308|W|cabuyao city,Cachoeirinha|sao paulo|BR|-46.66|-23.45|143|W|,Cachoeirinha|rio grande do sul|BR|-51.09|-29.95|141|W|,Cachoeiro de Itapemirim|espirito santo|BR|-41.11|-20.85|198|W|,Cacuaco|luanda|AO|13.37|-8.78|146|W|,Cadereyta|MX19|MX|-99.98|25.58|67|N|,Cadereyta Jimenez|MX19|MX|-100|25.59|68|N|,Cagayan de Oro|northern mindanao|PH|124.65|8.48|741|W|,Cagliari|sardinia|IT|9.12|39.23|149|W|casteddu,Cai Lay|dong thap|VN|106.12|10.4|143|W|,Cainta|calabarzon|PH|121.12|14.58|283|W|,Cairns|queensland|AU|145.77|-16.92|153|W|,Cairo|cairo|EG|31.25|30.06|9606|W|el cairo;kairo;le caire;il cairo;kahire;kair;kahira,Cajamarca|cajamarca department|PE|-78.5|-7.16|201|W|,Calabar|cross river state|NG|8.33|4.96|540|W|,Calabozo|guarico|VE|-67.43|8.92|168|W|,Calama|antofagasta|CL|-68.92|-22.46|166|W|,Calamba|calabarzon|PH|121.17|14.21|575|W|calamba city;kota calamba,Caldwell|ID|US|-116.69|43.66|51|N|,Caledon|ON|CA|-79.99|43.87|76|N|,Calexico|CA|US|-115.5|32.68|40|N|,Calgary|AB|CA|-114.09|51.05|1306|NW|,Cali|valle del cauca department|CO|-76.52|3.43|2392|W|santiago de cali,Callao|callao|PE|-77.13|-12.05|1226|W|el callao,Caloocan|national capital region|PH|120.97|14.65|1712|W|caloocan city;lungsod ng caloocan,Calpulalpan|MX29|MX|-98.57|19.59|33|N|,Calumbo|bengo|AO|13.42|-9.15|652|W|,Calumet City|IL|US|-87.53|41.62|37|N|calumet,Cam Pha|quang ninh|VN|107.27|21.01|190|W|,Cam Pha Mines|quang ninh|VN|107.3|21.02|135|W|,Cam Ranh|khanh hoa|VN|109.16|11.92|146|W|,Camacari|bahia|BR|-38.32|-12.7|321|W|,Camagueey|camaguey|CU|-77.92|21.38|347|W|camaguey,Camama|luanda|AO|13.27|-8.94|667|W|,Camaragibe|pernambuco|BR|-34.98|-8.02|160|W|,Camarillo|CA|US|-119.04|34.22|67|N|,Camayenne|conakry|GN|-13.69|9.54|1871|W|,Cambridge|england|GB|0.12|52.2|145|W|,Cambridge|ON|CA|-80.31|43.36|129|N|,Cambridge|MA|US|-71.11|42.38|110|N|,Camden|NJ|US|-75.12|39.93|76|N|,Cameta|para|BR|-49.5|-2.24|134|W|,Campbell|CA|US|-121.95|37.29|41|N|,Campbell River|BC|CA|-125.24|50.02|33|N|,Campeche|MX04|MX|-90.52|19.84|220|NW|san francisco de campeche,Campina Grande|paraiba|BR|-35.88|-7.23|443|W|,Campinas|sao paulo|BR|-47.06|-22.91|1031|W|campinas e regiao;regiao de campinas,Campo Grande|mato grosso do sul|BR|-54.65|-20.44|906|W|,Campo Largo|parana|BR|-49.53|-25.46|144|W|,Campo Limpo|sao paulo|BR|-46.77|-23.64|236|W|,Campos dos Goytacazes|rio de janeiro|BR|-41.33|-21.75|483|W|,Can Giuoc|tay ninh|VN|106.67|10.61|152|W|,Can Tho|can tho city|VN|105.79|10.04|1507|W|,Canakkale|canakkale|TR|26.41|40.16|143|W|,Cananea|MX26|MX|-110.3|30.98|31|N|heroica ciudad de cananea,Canarsie|NY|US|-73.9|40.64|87|N|,Canberra|australian capital territory|AU|149.13|-35.28|367|W|camberra;kanberra,Cancun|MX23|MX|-86.85|21.17|888|NW|ciudad cancun,Candelaria|calabarzon|PH|121.42|13.93|137|W|,Cangaiba|sao paulo|BR|-46.52|-23.5|141|W|,Cangzhou|hebei|CN|116.85|38.31|527|W|cchang cou;thuong chau,Cankaya|ankara|TR|32.86|39.92|792|W|,Canoas|rio grande do sul|BR|-51.18|-29.92|328|W|,Canoga Park|CA|US|-118.6|34.2|60|N|,Canton|MI|US|-83.48|42.31|86|N|,Canton|OH|US|-81.38|40.8|71|N|,Canton|GA|US|-84.49|34.24|25|N|,Cantonment|FL|US|-87.34|30.61|26|N|,Canyon Country|CA|US|-118.47|34.42|59|N|,Cao Lanh|dong thap|VN|105.63|10.46|211|W|,Cap-Haitien|nord|HT|-72.2|19.76|134|W|cabo haitiano,Capao Redondo|sao paulo|BR|-46.78|-23.67|270|W|,Capas|central luzon|PH|120.59|15.33|162|W|,Cape Coast|central|GH|-1.25|5.11|212|W|,Cape Coral|FL|US|-81.95|26.56|175|NW|cabo coral,Cape Girardeau|MO|US|-89.52|37.31|39|N|cap girardeau,Cape Town|western cape|ZA|18.42|-33.93|4772|W|citta del capo;cidade do cabo;ciudad del cabo;el cabo;kaapstad;kapkaupunki;kapske mesto;kapstaden;kapstadt;kapsztad;le cap,Capiata|central department|PY|-57.45|-25.36|198|W|,Carabanchel|madrid|ES|-3.72|40.39|253|W|,Caracas|distrito federal|VE|-66.88|10.49|3000|W|karakas,Carapicuiba|sao paulo|BR|-46.84|-23.52|386|W|,Carbondale|IL|US|-89.22|37.73|26|N|,Cardenas|MX27|MX|-93.38|18|91|N|,Cardiff|wales|GB|-3.18|51.48|372|W|,Cariacica|espirito santo|BR|-40.42|-20.26|376|W|,Carletonville|gauteng|ZA|27.4|-26.36|182|W|,Carlsbad|CA|US|-117.35|33.16|114|N|,Carlsbad|NM|US|-104.23|32.42|28|N|,Carmel|IN|US|-86.12|39.98|88|N|,Carmichael|CA|US|-121.33|38.62|61|N|,Carney|MD|US|-76.52|39.39|29|N|,Carol City|FL|US|-80.25|25.94|63|N|,Carol Stream|IL|US|-88.13|41.91|40|N|,Carolina|carolina|PR|-65.96|18.38|170|W|caroline,Carpentersville|IL|US|-88.26|42.12|38|N|,Carrefour|ouest|HT|-72.4|18.53|511|W|,Carrollton|TX|US|-96.89|32.95|133|NW|,Carrollton|GA|US|-85.08|33.58|26|N|,Carrollwood|FL|US|-82.49|28.05|33|N|,Carrollwood Village|FL|US|-82.52|28.07|40|N|,Carson|CA|US|-118.28|33.83|93|N|,Carson City|NV|US|-119.77|39.16|58|N|kota carson,Cartagena|bolivar|CO|-75.49|10.4|914|W|carthagene;cartagena de indias;cartagena das indias;carthagene des indes,Cartagena|murcia|ES|-0.98|37.6|213|W|carthagene;kartagena,Cartago|valle del cauca department|CO|-75.91|4.75|134|W|,Cartierville|QC|CA|-73.7|45.53|34|N|,Caruaru|pernambuco|BR|-35.98|-8.28|402|W|,Carupano|sucre|VE|-63.25|10.67|167|W|,Cary|NC|US|-78.78|35.79|159|NW|,Casa Grande|AZ|US|-111.76|32.88|51|N|,Casablanca|casablanca settat|MA|-7.61|33.59|3665|W|dar ul beyda;kazablanka;white house,Casas Adobes|AZ|US|-111|32.32|66|N|,Cascavel|parana|BR|-53.46|-24.96|368|W|ular derik,Casper|WY|US|-106.31|42.87|60|N|,Casselberry|FL|US|-81.33|28.68|27|N|,Castanhal|para|BR|-47.93|-1.29|192|W|,Castello de la Plana|valencia|ES|-0.05|39.99|171|W|castellon;castellon de la plana,Castle Rock|CO|US|-104.86|39.37|55|N|,Castlewood|CO|US|-104.9|39.58|25|N|,Castro Valley|CA|US|-122.09|37.69|61|N|,Catacamas|olancho department|HN|-85.89|14.85|140|W|,Catalina Foothills|AZ|US|-110.92|32.3|50|N|,Catamarca|catamarca|AR|-65.79|-28.47|159|W|,Catania|sicily|IT|15.07|37.49|311|W|catane;katania,Catemaco|MX30|MX|-95.11|18.42|27|N|,Cathedral City|CA|US|-116.47|33.78|53|N|,Catonsville|MD|US|-76.73|39.27|41|N|,Cau Giay|hanoi|VN|105.8|21.03|292|W|,Caucaia|ceara|BR|-38.65|-3.74|378|W|,Caxias|maranhao|BR|-43.36|-4.86|163|W|,Caxias do Sul|rio grande do sul|BR|-51.18|-29.17|479|W|,Cazenga|luanda|AO|13.28|-8.84|394|W|,Cebu City|central visayas|PH|123.89|10.32|965|W|cebu;ciudad de cebu;cebu sehri;cidade de cebu;city of cebu;kota cebu,Cedar City|UT|US|-113.06|37.68|30|N|,Cedar Falls|IA|US|-92.45|42.53|41|N|,Cedar Hill|TX|US|-96.96|32.59|48|N|,Cedar Park|TX|US|-97.82|30.51|65|N|,Cedar Rapids|IA|US|-91.64|42.01|130|NW|,Ceilandia|federal district|BR|-48.13|-15.81|287|W|,Celaya|MX11|MX|-100.81|20.52|340|NW|,Celina|TX|US|-96.78|33.32|64|N|,Centennial|CO|US|-104.88|39.58|109|N|,Center City|PA|US|-75.16|39.95|57|N|centro de filadelfia,Centereach|NY|US|-73.1|40.86|31|N|,Central|LA|US|-91.04|30.55|28|N|,Central 14th Street / Spring Road|DC|US|-77.03|38.94|25|N|,Central City|AZ|US|-112.06|33.44|58|N|,Central Coast|new south wales|AU|151.37|-33.43|346|W|costa central,Central Islip|NY|US|-73.2|40.79|34|N|,Centralniy|st petersburg|RU|30.36|59.93|214|W|,Centre City|AB|CA|-114.07|51.05|41|N|,Centretown|ON|CA|-75.7|45.42|25|N|,Centreville|VA|US|-77.43|38.84|71|N|,Centro Familiar la Soledad|MX11|MX|-101.75|21.14|32|N|,Centro Habana|havana|CU|-82.37|23.13|158|W|,Centurion|gauteng|ZA|28.19|-25.86|236|W|,Ceres|CA|US|-120.96|37.59|47|N|,Cergy-Pontoise|ile de france|FR|2.08|49.04|183|W|,Cerritos|CA|US|-118.06|33.86|49|N|,Cerro|havana|CU|-82.38|23.11|132|W|,Ch'ongdan-up|south hwanghae|KP|125.94|37.97|142|W|,Chak Jhumra|punjab|PK|73.18|31.57|385|W|,Chakwama|jigawa state|NG|9.66|11.56|200|W|,Chalco|MX15|MX|-98.9|19.26|168|NW|,Chaman|balochistan|PK|66.45|30.92|130|W|caman,Chamartin|madrid|ES|-3.68|40.46|140|W|,Chamberi|madrid|ES|-3.7|40.43|145|W|,Chamblee|GA|US|-84.3|33.89|28|N|,Champaign|IL|US|-88.24|40.12|86|N|,Champoton|MX04|MX|-90.72|19.34|30|N|,Chanda|maharashtra|IN|79.3|19.95|328|W|chandrapur;candrapur,Chandannagar|west bengal|IN|88.37|22.86|180|W|chandernagor;chandernagore;candarnagar,Chandigarh|chandigarh|IN|76.79|30.74|970|W|czandigarh;candigarh,Chandler|AZ|US|-111.84|33.31|260|NW|,Chandpur|chittagong|BD|90.65|23.23|203|W|,Chang-hua|taiwan|TW|120.56|24.07|226|W|,Changam-ch'on|south hamgyong|KP|128.78|40.61|207|W|,Changchun|jilin|CN|125.32|43.88|4714|W|tschangtung;cangcun;cchang cchun,Changde|hunan|CN|111.7|29.03|1457|W|cchang te;changteh,Changhua|taiwan|TW|120.55|24.07|226|W|,Changji|xinjiang|CN|87.3|44.01|198|W|,Changle|shandong|CN|118.83|36.71|259|W|,Changning|shanghai|CN|121.42|31.22|694|W|,Changsha|hunan|CN|112.97|28.2|3093|W|cchang sa,Changsha|guangdong|CN|112.68|22.38|688|W|,Changshu|jiangsu|CN|120.74|31.65|1677|W|,Changwon|gyeongsangnam do|KR|128.68|35.23|1025|W|ch angwon;cchangwon,Changyi|shandong|CN|119.39|36.85|302|W|,Changyuan|chongqing|CN|105.59|29.4|186|W|,Changzheng|shanghai|CN|121.37|31.24|229|W|,Changzhi|shanxi|CN|113.11|36.18|1214|W|cchang c,Changzhou|jiangsu|CN|119.95|31.77|3290|W|cchang cou,Chanhassen|MN|US|-93.53|44.86|25|N|,Channelview|TX|US|-95.11|29.78|38|N|,Chaohu|anhui|CN|117.87|31.6|138|W|,Chaoyang|liaoning|CN|120.46|41.57|410|W|,Chaozhou|guangdong|CN|116.62|23.65|1750|W|cchao cou,Chapeco|santa catarina|BR|-52.62|-27.1|282|W|,Chapel Hill|NC|US|-79.06|35.91|59|N|,Chapra|bihar|IN|84.75|25.78|202|W|,Charleroi|wallonia|BE|4.44|50.41|200|W|,Charlesbourg|QC|CA|-71.31|46.9|82|N|,Charleston|SC|US|-79.93|32.78|132|NW|,Charleston|WV|US|-81.63|38.35|46|N|,Charlotte|NC|US|-80.84|35.23|911|NW|,Charlottesville|VA|US|-78.48|38.03|46|N|,Charlottetown|PE|CA|-63.13|46.23|38|N|,Chas|jharkhand|IN|86.17|23.64|141|W|,Chaska|MN|US|-93.6|44.79|25|N|,Chateauguay|QC|CA|-73.75|45.38|42|N|,Chatham|ON|CA|-82.18|42.41|43|N|,Chatham|IL|US|-87.61|41.74|31|N|,Chatsworth|CA|US|-118.6|34.26|41|N|,Chattanooga|TN|US|-85.31|35.05|181|NW|,Chattogram|chittagong|BD|91.83|22.34|3920|W|chittagong;cottogram;cattagram,Chatuchak|bangkok|TH|100.56|13.83|160|W|,Cheboksary|chuvash republic|RU|47.25|56.13|492|W|ceboksari;czeboksary;tcheboksary;tjeboksary;tscheboksary;tsjeboksary;tseboksary;ceboksary;supaskar,Cheektowaga|NY|US|-78.75|42.9|75|N|,Chelmsford|MA|US|-71.37|42.6|33|N|,Chelsea|MA|US|-71.03|42.39|39|N|,Chelyabinsk|chelyabinsk|RU|61.43|55.16|1202|W|tsjeljabinsk;celeabinsk;celiabinsc;cheliabinsk;czelabinsk;tcheliabinsk;tjeljabinsk;tscheljabinsk;tseljabinsk;celyabinsk;celjabinsk,Chemnitz|saxony|DE|12.93|50.84|247|W|saska kamenice,Chengde|hebei|CN|117.96|40.95|449|W|ccheng te,Chengdu|sichuan|CN|104.07|30.67|13568|W|thanh do;cengdu;ccheng tu,Chengguan Qu|tibet|CN|91.04|29.64|478|W|,Chenghua|guangdong|CN|116.77|23.46|152|W|,Chengzhong|hubei|CN|113.55|30.94|265|W|,Chennai|tamil nadu|IN|80.28|13.09|4681|W|cennaj;cennai;madras,Chenzhou|hunan|CN|113.03|25.8|822|W|,Cheonan|chungcheongnam do|KR|127.15|36.81|658|W|cchonan,Cheongju-si|north chungcheong|KR|127.49|36.64|852|W|cheongju,Cheras|selangor|MY|101.73|3.11|135|W|,Cherepovets|vologda oblast|RU|37.9|59.13|315|W|cerepovet;czerepowiec;tcherepovets;tjerepovets;tscherepowez;tsjerepovets;tserepovets;cerepovets;cerepovec,Cherkasy|cherkasy|UA|32.06|49.44|269|W|cerkasi;czerkasy;tcherkassy;tcherkassi;tjerkasy;tscherkassy;tsjerkasy;tserkasy;cerkassi;cerkasy;cherkassy,Chernihiv|chernihiv oblast|UA|31.29|51.51|282|W|cernigau;chernigov;czernihow;tchernihiv;tjernihiv;tschernihiw;tsjernihiv;tsernihiv;cernigiv;cernihiv;cernihov;cernigovia,Chernivtsi|chernivtsi|UA|25.93|48.29|264|W|cernivci;cernovizza;cernauti;czerniowce;czernowitz;tchernivtsi;tjernivtsi;tschernowitz;tsjernivtsi;tsernivtsi;cernivtsi;cernovice,Cherry Hill|NJ|US|-75.03|39.93|70|N|,Chertanovo Yuzhnoye|moscow|RU|37.6|55.59|142|W|,Chesapeake|VA|US|-76.27|36.82|235|NW|,Cheshire|CT|US|-72.9|41.5|29|N|,Chester|PA|US|-75.36|39.85|34|N|,Chesterfield|MO|US|-90.58|38.66|47|N|,Chestermere|AB|CA|-113.82|51.03|32|N|,Chetumal|MX23|MX|-88.3|18.52|169|NW|,Cheyenne|WY|US|-104.82|41.14|65|N|,Chhatarpur|madhya pradesh|IN|79.59|24.92|142|W|chhattarpur,Chhindwara|madhya pradesh|IN|78.94|22.06|175|W|,Chi Linh|hai phong|VN|106.32|21.07|220|W|,Chiapa de Corzo|MX05|MX|-93.01|16.71|45|N|,Chiayi City|taiwan|TW|120.45|23.48|263|W|jiayi shi,Chiba|chiba|JP|140.12|35.6|979|W|ciba,Chicago|IL|US|-87.65|41.85|2664|NW|sikago,Chicago Heights|IL|US|-87.64|41.51|30|N|,Chicago Lawn|IL|US|-87.7|41.78|55|N|,Chicago Loop|IL|US|-87.63|41.88|33|N|loop,Chichicastenango|quiche|GT|-91.11|14.94|141|W|,Chiclayo|lambayeque|PE|-79.85|-6.77|609|W|,Chico|CA|US|-121.84|39.73|121|N|,Chicoloapan|MX15|MX|-98.9|19.42|172|NW|san vicente chicoloapan,Chicopee|MA|US|-72.61|42.15|56|N|,Chicoutimi|QC|CA|-71.06|48.42|69|N|,Chifeng|inner mongolia|CN|118.96|42.27|346|W|tschifong;xich phong;cch feng,Chigasaki|kanagawa|JP|139.4|35.34|242|W|,Chihuahua|MX06|MX|-106.09|28.64|925|NW|chihuahua city;chihuahua by,Chilanzar|tashkent|UZ|69.18|41.28|260|W|,Chilapa de Alvarez|MX12|MX|-99.17|17.6|31|N|,Chillan|nuble|CL|-72.1|-36.61|150|W|,Chilliwack|BC|CA|-121.95|49.17|101|N|,Chilliwack-Downtown|BC|CA|-121.96|49.16|31|N|,Chillum|MD|US|-76.99|38.96|33|N|,Chilpancingo|MX12|MX|-99.5|17.55|187|NW|chilpancingo de los bravo,Chimbote|ancash|PE|-78.59|-9.08|316|W|,Chimoio|manica|MZ|33.48|-19.12|422|W|,Chinatown|CA|US|-122.41|37.8|100|N|,Chinatown|NY|US|-74|40.72|90|N|,Chincha Alta|ica|PE|-76.13|-13.41|153|W|,Chingola|copperbelt|ZM|27.88|-12.53|256|W|,Chiniot|punjab|PK|72.98|31.72|318|W|,Chinju|gyeongsangnam do|KR|128.08|35.19|307|W|jinju,Chino|CA|US|-117.69|34.01|85|N|,Chino Hills|CA|US|-117.76|33.99|78|N|,Chipata|eastern province|ZM|32.65|-13.63|327|W|,Chirchiq|tashkent region|UZ|69.58|41.47|162|W|circik;tchirtchik;tjirtjik;circig,Chishtian|punjab|PK|72.86|29.8|149|W|,Chisinau|chisinau municipality|MD|28.86|47.01|635|W|kishinev;kiszyniow;kisinev,Chita|zabaykalskiy transbaikal kray|RU|113.49|52.04|349|W|tsjita;tchita;tschita;tsita;cita,Chitato|luanda norte|AO|20.73|-7.3|246|W|,Chitradurga|karnataka|IN|76.4|14.22|145|W|,Chittoor|andhra pradesh|IN|79.1|13.21|160|W|chittur,Chitungwiza|harare|ZW|31.08|-18.01|371|W|,Chizhou|anhui|CN|117.48|30.66|615|W|,Chlef|chlef|DZ|1.33|36.17|178|W|ech cheliff;szalif;asch schalif;ash shalif;al asnam,Cho Lon|ho chi minh city hcmc|VN|106.65|10.75|561|W|,Choa Chu Kang New Town||SG|103.75|1.38|187|W|,Chofu|tokyo|JP|139.55|35.66|242|W|,Choloma|cortes department|HN|-87.95|15.61|139|W|,Cholula|MX21|MX|-98.3|19.06|292|NW|cholula de rivadavia;san pedro cholula,Chom Thong|bangkok|TH|100.48|13.68|158|W|,Chomedey|QC|CA|-73.75|45.53|94|N|,Chon Buri|chon buri|TH|100.98|13.36|219|W|,Chongjin|north hamgyong|KP|129.78|41.8|327|W|ch ongjin;cchongdzin,Chongming||CN|121.7|31.62|637|W|,Chongqing|chongqing|CN|106.56|29.56|7457|W|trung khanh;tsjoengking;congcing;cchung cching,Chongzuo|guangxi|CN|107.37|22.38|384|W|,Christchurch|canterbury|NZ|172.63|-43.53|419|W|,Chula Vista|CA|US|-117.08|32.64|265|NW|,Chuncheon|gangwon do|KR|127.73|37.87|284|W|cunceon;cchuncchon,Chungju|north chungcheong|KR|127.93|36.98|209|W|cungcu;cchungdzu,Chunian|punjab|PK|73.98|30.97|634|W|,Chuo|tokyo|JP|139.78|35.67|169|W|chuo city,Church-Yonge Corridor|ON|CA|-79.38|43.66|31|N|,Chuxiong|yunnan|CN|101.55|25.04|555|W|,Chuzhou|anhui|CN|118.3|32.32|782|W|cchu cou,Ciampea|west java|ID|106.7|-6.55|207|W|,Cianjur|west java|ID|107.14|-6.82|174|W|kabupaten de cianjur,Cibinong|west java|ID|106.85|-6.48|363|W|,Cibolo|TX|US|-98.23|29.56|33|N|,Cicero|IL|US|-87.75|41.85|83|N|,Cicero|NY|US|-76.12|43.18|31|N|,Cidade Ademar|sao paulo|BR|-46.66|-23.67|249|W|,Cidade Dutra|sao paulo|BR|-46.7|-23.73|182|W|,Cidade Lider|sao paulo|BR|-46.49|-23.56|136|W|,Cidade Tiradentes|sao paulo|BR|-46.4|-23.58|192|W|,Ciego de Avila|ciego de avila province|CU|-78.76|21.84|142|W|,Cienfuegos|cienfuegos province|CU|-80.45|22.15|186|W|,Cigli|izmir province|TR|27.07|38.5|214|W|,Cihuatlan|MX14|MX|-104.57|19.24|40|N|,Cikupa|west java|ID|106.51|-6.24|174|W|,Cilacap|central java|ID|109.01|-7.73|256|W|,Cilegon|banten|ID|106.05|-6.01|470|W|,Cileungsir|west java|ID|106.96|-6.39|289|W|,Cimahi|west java|ID|107.54|-6.87|581|W|kota cimahi,Cincinnati|OH|US|-84.51|39.13|311|NW|,Cintalapa de Figueroa|MX05|MX|-93.72|16.68|42|N|,Ciputat|west java|ID|106.7|-6.24|207|W|,Circoiscrizione II|piedmont|IT|7.64|45.05|141|W|,Circoiscrizione III|piedmont|IT|7.63|45.06|130|W|,Circoiscrizione VIII|piedmont|IT|7.67|45.04|134|W|,Cirebon|west java|ID|108.56|-6.71|344|W|kota cirebon,Citeureup|west java|ID|106.88|-6.49|214|W|,Citrus Heights|CA|US|-121.28|38.71|87|N|,City of Milford (balance)|CT|US|-73.06|41.22|51|N|,City of Sammamish|WA|US|-122.04|47.6|45|N|,City of Westminster|england|GB|-0.14|51.5|247|W|,Ciudad Acuna|MX07|MX|-100.95|29.32|216|NW|acuna,Ciudad Altamirano|MX12|MX|-100.67|18.36|25|N|,Ciudad Apodaca|MX19|MX|-100.19|25.78|467|NW|apodaca,Ciudad Benito Juarez|MX19|MX|-100.09|25.65|308|NW|,Ciudad Bolivar|bolivar|VE|-63.55|8.12|412|W|,Ciudad Camilo Cienfuegos|havana|CU|-82.33|23.16|178|W|,Ciudad Constitucion|MX03|MX|-111.66|25.03|40|N|,Ciudad de Allende|MX19|MX|-100.02|25.28|26|N|allende,Ciudad de Huajuapan de Leon|MX20|MX|-97.78|17.81|53|N|huajuapan;huajuapan de leon;huajuapam;huajuapam de leon,Ciudad de Villa de Alvarez|MX08|MX|-103.74|19.27|117|N|,Ciudad del Carmen|MX04|MX|-91.83|18.65|191|NW|cd carmen;cd del carmen;carmen,Ciudad del Este|alto parana department|PY|-54.65|-25.5|301|W|kota del este,Ciudad Delicias|MX06|MX|-105.47|28.19|148|NW|akitakata;delicias,Ciudad Fernandez|MX24|MX|-100.01|21.94|32|N|,Ciudad General Escobedo|MX19|MX|-100.32|25.8|454|NW|gral escobedo;general escobedo,Ciudad Guayana|bolivar|VE|-62.64|8.35|978|W|cidade guaiana;guayana,Ciudad Guzman|MX14|MX|-103.46|19.7|111|N|cd guzman,Ciudad Hidalgo|MX16|MX|-100.56|19.69|60|N|,Ciudad Juarez|MX06|MX|-106.46|31.72|1512|NW|juarez,Ciudad Lazaro Cardenas|MX16|MX|-102.2|17.96|196|NW|lazaro cardenas,Ciudad Lineal|madrid|ES|-3.65|40.45|228|W|,Ciudad Lopez Mateos|MX15|MX|-99.26|19.56|489|NW|adolfo lopez mateos,Ciudad Madero|MX28|MX|-97.84|22.25|197|NW|cd madero,Ciudad Mante|MX28|MX|-98.97|22.74|84|N|,Ciudad Melchor Muzquiz|MX07|MX|-101.52|27.88|35|N|,Ciudad Mendoza|MX30|MX|-97.18|18.81|35|N|,Ciudad Nezahualcoyotl|MX15|MX|-99.01|19.4|1077|NW|cd neza;cd nezahualcoyotl;ciudad neza;neza;nezahualcoyotl,Ciudad Obregon|MX26|MX|-109.94|27.49|329|NW|cd obregon,Ciudad Ojeda|zulia|VE|-71.31|10.2|240|W|,Ciudad Rio Bravo|MX28|MX|-98.09|25.99|95|N|,Ciudad Sabinas Hidalgo|MX19|MX|-100.18|26.5|33|N|,Ciudad Sahagun|MX13|MX|-98.57|19.78|28|N|,Ciudad Valles|MX24|MX|-99.01|22|124|N|,Ciudad Victoria|MX28|MX|-99.14|23.74|332|NW|cd victoria;victoria,Cixi|zhejiang|CN|121.25|30.18|1457|W|,Cizre|sirnak|TR|42.18|37.33|134|W|,Clairlea-Birchmount|ON|CA|-79.28|43.71|26|N|,Claremont|CA|US|-117.72|34.1|36|N|,Clarksville|TN|US|-87.36|36.53|166|NW|,Clay|NY|US|-76.17|43.19|58|N|,Clearfield|UT|US|-112.03|41.11|30|N|,Clearwater|FL|US|-82.8|27.97|117|N|,Cleburne|TX|US|-97.39|32.35|30|N|,Clermont|FL|US|-81.77|28.55|32|N|,Clermont-Ferrand|rhone alpes|FR|3.09|45.78|147|W|,Cleveland|OH|US|-81.7|41.5|365|NW|,Cleveland|TN|US|-84.88|35.16|43|N|,Cleveland Heights|OH|US|-81.56|41.52|44|N|,Clifton|NJ|US|-74.16|40.86|86|N|,Clifton Park|NY|US|-73.77|42.87|36|N|,Clinton|MD|US|-76.9|38.77|35|N|robeystown;surrats;surratsville;surratts;surrattsville,Clinton|IA|US|-90.19|41.84|26|N|,Clinton|MS|US|-90.32|32.34|25|N|,Clinton Township|MI|US|-82.92|42.59|99|N|,Cloverdale|BC|CA|-122.73|49.11|73|N|,Clovis|CA|US|-119.7|36.83|104|N|,Clovis|NM|US|-103.21|34.4|39|N|,Cluj-Napoca|cluj county|RO|23.6|46.77|286|W|klausenburg;clausenburg;kalosvar;kluz napoka;kluz;kolozsvar;clausemburgo,Coacalco|MX15|MX|-99.11|19.63|277|NW|coacalco de berriozaval;san francisco coacalco,Coachella|CA|US|-116.17|33.68|44|N|,Coatepec|MX30|MX|-96.96|19.45|53|N|,Coatzacoalcos|MX30|MX|-94.44|18.15|310|NW|puerto mexico;port of mexico,Coatzintla|MX30|MX|-97.47|20.49|34|N|,Coban|alta verapaz|GT|-90.37|15.47|212|W|,Cobbs Creek|PA|US|-75.24|39.95|33|N|,Cochabamba|cochabamba|BO|-66.16|-17.38|841|W|,Cochrane|AB|CA|-114.47|51.18|32|N|,Coconut Creek|FL|US|-80.18|26.25|59|N|,Cocula|MX14|MX|-103.82|20.37|29|N|,Coeur d'Alene|ID|US|-116.78|47.68|49|N|,Coimbatore|tamil nadu|IN|76.97|11.01|2136|W|koimbatur,Coimbra|coimbra|PT|-8.42|40.21|140|W|,Colchester|england|GB|0.9|51.89|130|W|,Colima|MX08|MX|-103.71|19.24|146|NW|,Colina|santiago metropolitan|CL|-70.67|-33.2|146|W|,College Park|MD|US|-76.94|38.98|32|N|,College Point|NY|US|-73.85|40.79|27|N|,College Station|TX|US|-96.33|30.63|107|N|,Colleyville|TX|US|-97.16|32.88|25|N|,Collierville|TN|US|-89.66|35.04|48|N|,Collinwood|OH|US|-81.57|41.56|34|N|,Colombo|western province|LK|79.85|6.94|648|W|kolombo,Colombo|parana|BR|-49.22|-25.29|232|W|,Colonia del Sol|MX03|MX|-109.93|22.91|48|N|,Colonia del Valle|MX09|MX|-99.16|19.39|250|NW|col del valle;del valle,Colonia Lindavista|MX15|MX|-99.12|19.49|100|N|col lindavista;lindavista,Colonia Nativitas|MX09|MX|-99.14|19.38|60|N|col nativitas;nativitas,Colorado Springs|CO|US|-104.82|38.83|456|NW|colorado spgs,Colton|CA|US|-117.31|34.07|54|N|,Columbia|SC|US|-81.03|34|142|NW|,Columbia|MO|US|-92.33|38.95|129|N|,Columbia|MD|US|-76.84|39.24|99|N|,Columbia|TN|US|-87.04|35.62|36|N|,Columbia Heights|DC|US|-77.03|38.93|38|N|meridian hill;meridian hill heights,Columbus|OH|US|-83|39.96|913|NW|,Columbus|GA|US|-84.99|32.46|206|NW|,Columbus|IN|US|-85.92|39.2|46|N|,Comalcalco|MX27|MX|-93.22|18.26|41|N|,Comilla|chittagong|BD|91.19|23.46|634|W|kumilla,Comitan|MX05|MX|-92.14|16.24|166|NW|comitan de dominguez,Commack|NY|US|-73.29|40.84|36|N|,Commerce City|CO|US|-104.93|39.81|53|N|,Commonwealth|national capital region|PH|121.08|14.7|215|W|,Comodoro Rivadavia|chubut|AR|-67.49|-45.86|140|W|,Compton|CA|US|-118.22|33.9|98|N|,Conakry|conakry|GN|-13.68|9.54|1928|W|conacri;konakry,Concepcion|biobio|CL|-73.05|-36.83|223|W|konsepsi,Concepcion|central luzon|PH|120.66|15.33|178|W|,Conception Bay South|NL|CA|-53|47.5|27|N|,Concord|CA|US|-122.03|37.98|128|N|,Concord|NC|US|-80.58|35.41|87|N|,Concord|NH|US|-71.54|43.21|43|N|,Concordia|entre rios|AR|-58.02|-31.39|145|W|,Coney Island|NY|US|-73.99|40.58|60|N|coney adasi,Confederation|SK|CA|-106.7|52.14|70|N|,Conroe|TX|US|-95.46|30.31|68|N|,Conselheiro Lafaiete|minas gerais|BR|-43.79|-20.66|138|W|,Constanta|constanta county|RO|28.63|44.18|317|W|konstanza;constanza;constanca;costanza;konstanca;kostence;kustence,Constantine|constantine|DZ|6.61|36.37|448|W|constantina,Contagem|minas gerais|BR|-44.05|-19.93|627|W|,Contla|MX29|MX|-98.17|19.33|27|N|,Conway|AR|US|-92.44|35.09|64|N|,Cookeville|TN|US|-85.5|36.16|32|N|,Coon Rapids|MN|US|-93.29|45.12|62|N|,Cooper City|FL|US|-80.27|26.06|35|N|,Copenhagen|capital region|DK|12.57|55.68|1153|W|copenaghen;copenhaga;copenhague;kodan;kopenhag;kopenhaga;kopenhagen;kopenhamn;koopenhamina;kobenhavn,Coppell|TX|US|-97.02|32.95|41|N|,Copperas Cove|TX|US|-97.9|31.12|33|N|,Coquimbo|coquimbo region|CL|-71.34|-29.95|161|W|,Coquitlam|BC|CA|-122.78|49.28|148|NW|,Coquitlam West|BC|CA|-122.88|49.26|25|N|,Coral Gables|FL|US|-80.27|25.72|51|N|,Coral Springs|FL|US|-80.27|26.27|129|N|,Coram|NY|US|-73|40.87|39|N|,Cordoba|cordoba|AR|-64.19|-31.41|2106|W|ciudad de cordoba;cordova,Cordoba|andalusia|ES|-4.77|37.89|325|W|cordoue;cordova;kordoba,Cordoba|MX30|MX|-96.93|18.88|204|NW|,Cordova|TN|US|-89.78|35.16|68|N|,Core Neighbourhoods|SK|CA|-106.67|52.13|36|N|,Cork|munster|IE|-8.47|51.9|224|W|cork city,Corlu|tekirdag|TR|27.8|41.16|202|W|,Cornelius|NC|US|-80.86|35.49|28|N|,Cornwall|ON|CA|-74.73|45.02|48|N|,Coro|falcon|VE|-69.68|11.41|246|W|,Corona|CA|US|-117.57|33.88|164|NW|,Corona|NY|US|-73.86|40.75|109|N|,Corpus Christi|TX|US|-97.4|27.8|316|NW|,Corrientes|corrientes|AR|-58.83|-27.47|346|W|ciudad de corrientes,Cortazar|MX11|MX|-100.96|20.48|61|N|,Corum|corum|TR|34.95|40.55|269|W|,Corvallis|OR|US|-123.26|44.56|55|N|,Cosamaloapan|MX30|MX|-95.8|18.37|30|N|,Costa Mesa|CA|US|-117.92|33.64|113|N|,Cotabato|autonomous region in muslim mindanao|PH|124.25|7.22|383|W|cotabato city,Cote-Saint-Luc|QC|CA|-73.67|45.47|31|N|,Cotia|sao paulo|BR|-46.92|-23.6|253|W|,Cotonou|littoral|BJ|2.42|6.37|679|W|cotonu;kotonu,Cottage Grove|MN|US|-92.94|44.83|35|N|,Cottonwood Heights|UT|US|-111.81|40.62|34|N|,Council Bluffs|IA|US|-95.86|41.26|62|N|co bluffs,Country Club|FL|US|-80.32|25.95|47|N|,Courtenay|BC|CA|-124.99|49.69|28|N|,Coventry|england|GB|-1.51|52.41|345|W|,Coventry|RI|US|-71.68|41.7|35|N|,Covina|CA|US|-117.89|34.09|48|N|,Covington|KY|US|-84.51|39.08|40|N|,Cox's Bazar|chittagong|BD|92.01|21.44|253|W|,Coyoacan|MX09|MX|-99.16|19.35|614|NW|,Coyotepec|MX15|MX|-99.21|19.78|35|N|,Coyula|MX14|MX|-103.23|20.66|29|N|,Cozumel|MX23|MX|-86.94|20.5|77|N|san miguel de cozumel,Craiova|dolj|RO|23.8|44.32|234|W|krajowa,Cranberry Township|PA|US|-80.11|40.68|28|N|,Cranston|RI|US|-71.44|41.78|81|N|,Crato|ceara|BR|-39.41|-7.23|139|W|,Criciuma|santa catarina|BR|-49.37|-28.68|227|W|,Crofton|MD|US|-76.69|39|27|N|,Croix-des-Bouquets|ouest|HT|-72.23|18.58|229|W|,Crown Point|IN|US|-87.37|41.42|28|N|,Croydon|england|GB|-0.1|51.38|173|W|croydon grants,Crystal Lake|IL|US|-88.32|42.24|40|N|,Cua|miranda|VE|-66.88|10.16|182|W|,Cuauhtemoc|MX09|MX|-99.15|19.45|531|NW|,Cuauhtemoc|MX06|MX|-106.87|28.41|168|NW|,Cuautitlan|MX15|MX|-99.18|19.67|178|NW|,Cuautitlan Izcalli|MX15|MX|-99.22|19.64|555|NW|izcalli,Cuautla|MX17|MX|-98.94|18.81|157|NW|,Cuautlancingo|MX21|MX|-98.27|19.09|25|N|san juan b cuautlancingo,Cucuta|norte de santander department|CO|-72.5|7.91|777|W|kukuta,Cuddalore|tamil nadu|IN|79.77|11.76|173|W|gondelour,Cuenca|azuay|EC|-79|-2.9|636|W|,Cuernavaca|MX17|MX|-99.23|18.93|338|NW|,Cuiaba|mato grosso|BR|-56.1|-15.6|618|W|culaba,Cuito|bie|AO|16.93|-12.38|355|W|kuito,Culiacan|MX25|MX|-107.39|24.8|808|NW|,Culver City|CA|US|-118.4|34.02|39|N|,Cumana|sucre|VE|-64.18|10.46|405|W|,Cumberland|RI|US|-71.43|41.97|34|N|,Cupertino|CA|US|-122.03|37.32|60|N|,Curitiba|parana|BR|-49.27|-25.43|1948|W|kurytyba,Curug|banten|ID|106.56|-6.27|191|W|,Cusco|cuzco department|PE|-71.97|-13.53|428|W|ciudad del cuzco;cuzco,Cutler Bay|FL|US|-80.34|25.58|45|N|cutler ridge,Cutler Ridge|FL|US|-80.35|25.58|26|N|,Cuttack|odisha|IN|85.88|20.46|610|W|,Cuyahoga Falls|OH|US|-81.48|41.13|49|N|,Cypress|TX|US|-95.7|29.97|200|NW|,Cypress|CA|US|-118.04|33.82|49|N|,Cypress Hills|NY|US|-73.89|40.68|54|N|,Czestochowa|silesia|PL|19.12|50.8|248|W|czenstochau;censtochova;tschenstochau,Da Lat|lam dong|VN|108.44|11.95|258|W|,Da Nang|da nang city|VN|108.22|16.07|1276|W|danang;thanh thai phien,Dabou|lagunes district|CI|-4.38|5.33|138|W|,Dachang|shanghai|CN|121.42|31.31|371|W|,Dadu|sindh|PK|67.78|26.73|201|W|,Daegu|daegu|KR|128.59|35.87|2365|W|daegu si;taegu;tegu,Daejeon|daejeon|KR|127.38|36.35|1441|W|daejeon si;taejon,Dagupan|ilocos|PH|120.33|16.04|171|W|kota dagupan,Dajal|punjab|PK|70.38|29.56|200|W|,Dakar|dakar|SN|-17.44|14.69|2646|W|dacar,Dakota Ridge|CO|US|-105.14|39.62|33|N|,Dale City|VA|US|-77.31|38.64|65|N|,Dali|yunnan|CN|100.21|25.58|235|W|,Dalian|liaoning|CN|121.6|38.91|4913|W|luta;luda,Daliang|guangdong|CN|113.25|22.84|210|W|shunde,Dallas|TX|US|-96.81|32.78|1326|NW|,Daloa|sassandra marahoue|CI|-6.45|6.88|421|W|,Dalton|GA|US|-84.97|34.77|33|N|,Dalupura|delhi|IN|77.32|28.61|154|W|,Daly City|CA|US|-122.46|37.71|106|N|,Damanhur|beheira|EG|30.47|31.03|318|W|,Damascus|damascus governorate|SY|36.29|33.51|1569|W|damasco;damas;damasc;damaskos;damaskus;damaszek;damasek;sam,Damietta|damietta|EG|31.81|31.42|305|W|damieta;damiette;dimyat;dimyath,Dammam|eastern province|SA|50.1|26.43|1252|W|ad dammam;ed dammam,Damoh|madhya pradesh|IN|79.44|23.83|139|W|,Dana Point|CA|US|-117.7|33.47|34|N|,Danbury|CT|US|-73.45|41.39|84|N|,Dandong|liaoning|CN|124.39|40.13|631|W|dan dong;andong,Dania Beach|FL|US|-80.14|26.05|31|N|,Danli|el paraiso department|HN|-86.58|14.03|233|W|,Danshui|taipei|TW|121.44|25.17|189|W|tamsui,Danvers|MA|US|-70.93|42.58|26|N|,Danville|CA|US|-122|37.82|44|N|,Danville|VA|US|-79.4|36.59|42|N|,Danville|IL|US|-87.63|40.12|32|N|,Daqing|heilongjiang|CN|125|46.58|1604|W|ta cching;taching,Dar Bouazza|casablanca settat|MA|-7.82|33.52|165|W|,Dar es Salaam|dar es salaam region|TZ|39.27|-6.82|5383|W|dar es salam;daressalam;darusselam,Darbhanga|bihar|IN|85.9|26.15|296|W|,Darmstadt|hesse|DE|8.65|49.87|167|W|,Darnytsya|kyiv city|UA|30.7|50.42|343|W|darnytsia;darnytskyi raion;darnytskyi rayon;darnytskyy raion;darnytskyy rayon,Dartmouth|NS|CA|-63.58|44.67|101|N|darmouth,Darwin|northern territory|AU|130.84|-12.46|139|W|port darwin,Dasmarinas|calabarzon|PH|120.94|14.33|441|W|kota dasmarinas,Dasoguz|dasoguz|TM|59.97|41.84|201|W|dashoguz;daszoguz;dashowuz;tasjauz,Datong|shanxi|CN|113.29|40.09|1850|W|ta tchung,Daule|guayas|EC|-79.98|-1.86|173|W|,Davangere|karnataka|IN|75.93|14.47|435|W|,Davao|davao region|PH|125.61|7.07|1848|W|davao city,Davenport|IA|US|-90.58|41.52|102|N|,Davie|FL|US|-80.23|26.06|100|N|,Davis|CA|US|-121.74|38.54|67|N|,Dawei|tanintharyi region|MM|98.19|14.08|136|W|tavoy,Dawukou|ningxia|CN|106.4|39.04|131|W|,Daxing'anling|heilongjiang|CN|124.71|52.33|520|W|,Daye|hubei|CN|114.95|30.08|347|W|,Dayrah|dubai|AE|55.3|25.27|400|W|deira,Dayton|OH|US|-84.19|39.76|135|NW|,Daytona Beach|FL|US|-81.02|29.21|72|N|daytona,Dazhou|sichuan|CN|107.46|31.21|1589|W|ta cou,Dearborn|MI|US|-83.18|42.32|95|N|,Dearborn Heights|MI|US|-83.27|42.34|56|N|,Debre Birhan|amhara|ET|39.53|9.68|146|W|debre berhan;debre byrhan,Debre Mark'os|amhara|ET|37.73|10.35|140|W|,Debrecen|hajdu bihar|HU|21.62|47.53|202|W|debreczyn;debrecin;debretin,Decatur|IL|US|-88.95|39.84|73|N|,Decatur|AL|US|-86.98|34.61|55|N|,Deer Park|TX|US|-95.12|29.71|33|N|,Deer Park|NY|US|-73.33|40.76|27|N|,Deer Valley|AZ|US|-112.13|33.68|165|NW|,Deerfield Beach|FL|US|-80.1|26.32|79|N|,Dehiwala-Mount Lavinia|western province|LK|79.87|6.84|219|W|mount lavinia,Dehradun|uttarakhand|IN|78.03|30.32|522|W|dehra dun,Deir ez-Zor|deir ez zor|SY|40.14|35.34|271|W|dayr az zawr;dajr az zaur;dayr al zawr;deir azzor;deir al zour;deir el zor;deir es sor;der ezzor;deyrez zor;deyrizor,DeKalb|IL|US|-88.75|41.93|43|N|,Del Rio|TX|US|-100.9|29.36|36|N|,DeLand|FL|US|-81.3|29.03|30|N|de land,Delano|CA|US|-119.25|35.77|52|N|,Delaware|OH|US|-83.07|40.3|37|N|,Delegacion Cuajimalpa de Morelos|MX09|MX|-99.29|19.37|160|NW|cuajimalpa de morelos,Delhi|delhi|IN|77.23|28.65|11034|W|dilli;deli;sahdzahanabad,Delmas|ouest|HT|-72.3|18.54|395|W|,Delray Beach|FL|US|-80.07|26.46|66|N|del ray beach,Delta|BC|CA|-123.05|49.09|101|N|,Deltona|FL|US|-81.26|28.9|88|N|,Dengzhou|henan|CN|112.09|32.68|285|W|,Denizli|denizli|TR|29.09|37.77|313|W|,Denpasar|bali|ID|115.22|-8.65|670|W|dempasar;dempassar;denpasar bali;kota denpasar,Denton|TX|US|-97.13|33.21|131|NW|,Denver|CO|US|-104.98|39.74|729|NW|,Deoghar|jharkhand|IN|86.7|24.49|203|W|,Deoli|delhi|IN|77.23|28.5|169|W|,Depok|west java|ID|106.82|-6.4|2163|W|kota depok,Dera Ghazi Khan|punjab|PK|70.64|30.05|494|W|,Dera Ismail Khan|khyber pakhtunkhwa|PK|70.9|31.83|763|W|,Derby|england|GB|-1.48|52.92|270|W|,Derry Village|NH|US|-71.31|42.89|34|N|,Des Moines|IA|US|-93.61|41.6|214|NW|,Des Moines|WA|US|-122.32|47.4|31|N|desmoines,Des Plaines|IL|US|-87.88|42.03|58|N|,Desert Hot Springs|CA|US|-116.5|33.96|28|N|,Desmarchais-Crawford|QC|CA|-73.58|45.45|29|N|,Desna|kyiv city|UA|30.68|50.52|368|W|,Desnyanskyi|chernihiv oblast|UA|31.32|51.51|179|W|desnianskyi;desnianskyi raion;desnyanskyi rayon,DeSoto|TX|US|-96.86|32.59|52|N|,Dessalines|artibonite|HT|-72.52|19.26|181|W|,Dessie|amhara|ET|39.63|11.13|270|W|dese;desje,Detroit|MI|US|-83.05|42.33|645|NW|,Dewas|madhya pradesh|IN|76.06|22.97|289|W|,Deyang|sichuan|CN|104.38|31.13|735|W|te jang,Dezful|khuzestan|IR|48.41|32.38|264|W|dezfoul,Dezhou|shandong|CN|116.37|37.45|679|W|te cou,Dhaka|dhaka division|BD|90.41|23.71|10356|W|daca;dacca;dakka,Dhamar|dhamar|YE|44.41|14.54|160|W|damar,Dhanbad|jharkhand|IN|86.43|23.8|1196|W|,Dhangadhi|sudurpashchim pradesh|NP|80.59|28.7|204|W|,Dharan|koshi|NP|87.28|26.81|173|W|,Dharavi|maharashtra|IN|72.87|19.05|700|W|,Dhaulpur|rajasthan|IN|77.88|26.69|133|W|,Dhirkot|azad kashmir|PK|73.58|34.04|195|W|,Dhule|maharashtra|IN|74.78|20.9|375|W|,Di An|ho chi minh city hcmc|VN|106.77|10.91|463|W|,Diadema|sao paulo|BR|-46.62|-23.69|403|W|,Diamond Bar|CA|US|-117.81|34.03|56|N|,Dibrugarh|assam|IN|94.91|27.48|145|W|,Dieppe|NB|CA|-64.69|46.08|27|N|,Diepsloot|gauteng|ZA|28.01|-25.93|350|W|,Diez de Octubre|havana|CU|-82.36|23.09|227|W|,Digri|sindh|PK|69.11|25.16|234|W|,Dihok|duhok|IQ|42.99|36.87|340|W|dahuk;dohuk;duhok,Dijon|bourgogne|FR|5.01|47.31|159|W|digione,Dila|south ethiopia regional state|ET|38.32|6.42|158|W|,Dili|dili municipality|TL|125.57|-8.56|150|W|,Dimapur|nagaland|IN|93.72|25.91|135|W|,Dimitrovgrad|ulyanovsk|RU|49.62|54.21|132|W|dimitrowgrad,Din Daeng|bangkok|TH|100.57|13.79|130|W|,Dinajpur|rangpur division|BD|88.64|25.63|206|W|,Dinapore|bihar|IN|85.05|25.64|152|W|,Dinapur Nizamat|bihar|IN|85.05|25.64|182|W|,Dindigul|tamil nadu|IN|77.98|10.37|292|W|dindukkal,Dingxi|gansu|CN|104.62|35.57|420|W|,Dingzhou|hebei|CN|114.99|38.51|152|W|,Diourbel|diourbel region|SN|-16.24|14.65|157|W|,Dire Dawa|dire dawa|ET|41.87|9.59|343|W|dire daua,Disuq|kafr el sheikh|EG|30.65|31.13|149|W|,Divinopolis|minas gerais|BR|-44.89|-20.14|231|W|,Divo|goh djiboua|CI|-5.36|5.84|136|W|,Dix Hills|NY|US|-73.34|40.8|26|N|,Dixinn|conakry|GN|-13.67|9.55|137|W|,Diyarbakir|diyarbakir province|TR|40.22|37.91|1833|W|amida,Djelfa|djelfa|DZ|3.26|34.67|265|W|dzilfa,Djibouti|djibouti|DJ|43.15|11.59|626|W|cibuti;dschibuti;dzibuti;gibuti;yibuti,Dnipro|dnipropetrovsk|UA|35.04|48.47|968|W|dniepr;dnjepropetrovsk;dnepropetrovsk;caterinoslavia;catherinoslav;dnipropetrovs k;dnipropetrovsk;dniproslav;katerynoslav;novorosiynsk;novyy kodak;sicheslav,Dniprovskyi|kyiv city|UA|30.6|50.45|357|W|,Dodge City|KS|US|-100.02|37.75|27|N|,Dodoma|dodoma|TZ|35.74|-6.17|765|W|,Doha|baladiyat ad dawhah|QA|51.53|25.29|344|W|ad dauha;dauha,Doilungdeqen|tibet|CN|90.99|29.66|137|W|,Dollard-Des Ormeaux|QC|CA|-73.82|45.49|48|N|,Dolores Hidalgo|MX11|MX|-100.93|21.16|67|N|ciudad de dolores hidalgo,Dombivali|maharashtra|IN|73.08|19.22|1247|W|dombivli,Don Valley Village|ON|CA|-79.35|43.78|27|N|,Donaustadt|state of vienna|AT|16.46|48.23|187|W|,Donetsk|donetsk|UA|37.8|48.02|901|W|donezk;donec k;donetk;donieck;doneck;dinetsk;dinetske;iuziv;iuzivka;iuzove;oleksandrivka;yuziv;yuzove,Dong Ha|quang tri|VN|107.1|16.82|164|W|,Dongguan|guangdong|CN|113.75|23.02|9644|W|,Donghai|guangdong|CN|115.64|22.95|264|W|,Dongling|liaoning|CN|123.58|41.81|171|W|,Dongtai|jiangsu|CN|120.31|32.85|262|W|,Dongyang|zhejiang|CN|120.23|29.27|130|W|,Dongying|shandong|CN|118.49|37.46|998|W|tung jing;dong dinh,Doral|FL|US|-80.36|25.82|75|N|,Dorchester|MA|US|-71.07|42.3|97|N|,Dorset Park|ON|CA|-79.28|43.75|25|N|,Dortmund|north rhine westphalia|DE|7.47|51.51|588|W|,Dosquebradas|risaralda department|CO|-75.67|4.84|206|W|dos quebradas,Dothan|AL|US|-85.39|31.22|68|N|,Douala|littoral|CM|9.7|4.05|1338|W|duala,Douglasville|GA|US|-84.75|33.75|32|N|,Dourados|mato grosso do sul|BR|-54.81|-22.22|264|W|,Dover|DE|US|-75.52|39.16|39|N|,Dover|NH|US|-70.87|43.2|30|N|,Dovercourt-Wallace Emerson-Junction|ON|CA|-79.44|43.67|36|N|,Downers Grove|IL|US|-88.01|41.81|49|N|,Downey|CA|US|-118.13|33.94|114|N|,Downsview-Roding-CFB|ON|CA|-79.49|43.73|35|N|,Downtown DC|DC|US|-77.02|38.89|52|N|,Downtown Halifax|NS|CA|-63.58|44.65|25|N|,Downtown Vancouver|BC|CA|-123.12|49.28|62|N|,Dracut|MA|US|-71.3|42.67|28|N|,Draper|UT|US|-111.86|40.52|46|N|,Dresden|saxony|DE|13.74|51.05|564|W|dresda;dresde;drezno;drazdany,Drexel Heights|AZ|US|-111.03|32.14|27|N|,Drexel Hill|PA|US|-75.29|39.95|28|N|,Drummondville|QC|CA|-72.48|45.88|59|N|,Dubai|dubai|AE|55.31|25.08|3790|W|dubai city;dubaj,Dubai Investments Park|dubai|AE|55.16|25.01|160|W|,Dublin|leinster|IE|-6.25|53.33|1024|W|dublin city;dublino,Dublin|CA|US|-121.94|37.7|57|N|,Dublin|OH|US|-83.11|40.1|45|N|,Dubreka|kindia|GN|-13.52|9.79|182|W|,Dubuque|IA|US|-90.66|42.5|58|N|,Dudley|england|GB|-2.08|52.5|199|W|,Duesseldorf|north rhine westphalia|DE|6.78|51.22|618|W|dusseldorf,Duezce|duzce|TR|31.16|40.84|194|W|duzce,Duisburg|north rhine westphalia|DE|6.77|51.43|504|W|duisbourg;duisburgo,Duluth|MN|US|-92.11|46.78|86|N|,Duluth|GA|US|-84.14|34|29|N|,Dumai|riau|ID|101.44|1.67|349|W|kota dumai,Duncanville|TX|US|-96.91|32.65|39|N|,Dundalk|MD|US|-76.52|39.25|63|N|,Dundee|scotland|GB|-2.97|56.47|148|W|,Dundo|luanda norte|AO|20.82|-7.37|177|W|,Dunedin|otago|NZ|170.5|-45.87|132|W|,Dunedin|FL|US|-82.77|28.02|36|N|,Dunhua|jilin|CN|128.23|43.37|148|W|,Dunhuang|gansu|CN|94.68|40.17|186|W|tun chuang;don hoang,Dunwoody|GA|US|-84.33|33.95|48|N|,Duque de Caxias|rio de janeiro|BR|-43.31|-22.79|866|W|,Durban|kwazulu natal|ZA|31.03|-29.86|3338|W|port natal,Durg|chhattisgarh|IN|81.28|21.19|268|W|,Durgapur|west bengal|IN|87.31|23.52|518|W|,Durham|NC|US|-78.9|35.99|257|NW|,Durres|durres county|AL|19.45|41.32|195|W|drac;durazzo,Dushanbe|dushanbe|TJ|68.78|38.54|679|W|doesjanbe;douchanbe;duschanbe;dusjanbe;duszanbe;dusanbe,Duvernay|QC|CA|-73.67|45.58|37|N|,Duyun|guizhou|CN|107.52|26.27|198|W|,Dyker Heights|NY|US|-74.01|40.62|34|N|,Dzerzhinsk|nizhny novgorod oblast|RU|43.46|56.24|233|W|dserschinsk;dzerjinsk;dzerzjinsk;dzerzinsk;dzierzynsk,E'zhou|hubei|CN|114.89|30.4|668|W|ezhou;wuchang,Eagan|MN|US|-93.17|44.8|66|N|,Eagle Mountain|UT|US|-112.01|40.31|27|N|,Eagle Pass|TX|US|-100.5|28.71|28|N|,East Boston|MA|US|-71.04|42.38|43|N|,East Brunswick|NJ|US|-74.42|40.43|48|N|e brunswick;east brunswick township,East Chattanooga|TN|US|-85.25|35.07|154|NW|,East Chicago|IN|US|-87.45|41.64|28|N|,East Concord|NH|US|-71.54|43.24|42|N|,East Flatbush|NY|US|-73.93|40.65|178|NW|,East Florence|AL|US|-87.65|34.81|35|N|,East Hampton|VA|US|-76.33|37.04|147|NW|,East Harlem|NY|US|-73.94|40.79|115|N|harlem del este,East Hartford|CT|US|-72.61|41.78|51|N|,East Hastings|BC|CA|-123.06|49.27|80|N|,East Haven|CT|US|-72.87|41.28|29|N|,East Helsinki|uusimaa|FI|25.08|60.21|170|W|ita helsinki;ostra helsingfors,East Hill-Meridian|WA|US|-122.17|47.41|29|N|,East Honolulu|HI|US|-157.72|21.29|49|N|,East Independence|MO|US|-94.36|39.1|110|N|,East Jerusalem|west bank|PS|35.23|31.78|428|W|dogu kudus;gerusalemme est;jerusalem oriental;jerusalen este;jerusalem est;oost jeruzalem;ostjerusalem;vychodni jeruzalem;wschodnia jerozolima;yerusalem timur;ostra jerusalem;ost jerusalem;dong jerusalem,East Lake|FL|US|-82.69|28.11|30|N|,East Lansing|MI|US|-84.48|42.74|48|N|,East London|eastern cape|ZA|27.91|-33.02|478|W|buffalo city;kugompo city,East Los Angeles|CA|US|-118.17|34.02|126|N|dogu los angeles;este de los angeles,East Meadow|NY|US|-73.56|40.71|38|N|,East New York|NY|US|-73.88|40.67|173|NW|,East Norwalk|CT|US|-73.4|41.11|84|N|,East Orange|NJ|US|-74.2|40.77|64|N|,East Palo Alto|CA|US|-122.14|37.47|29|N|palo alto timur,East Pensacola Heights|FL|US|-87.18|30.43|54|N|,East Point|GA|US|-84.44|33.68|35|N|,East Providence|RI|US|-71.37|41.81|47|N|dong providence,East Saint Louis|IL|US|-90.15|38.62|27|N|,East Village|NY|US|-73.99|40.73|62|N|,Easton|PA|US|-75.22|40.69|26|N|,Eastpointe|MI|US|-82.96|42.47|32|N|,Eastvale|CA|US|-117.56|33.96|59|N|,Eau Claire|WI|US|-91.5|44.81|67|N|,Ebetsu|hokkaido|JP|141.55|43.11|133|W|,Ebina|kanagawa|JP|139.4|35.38|136|W|,Ebute Ikorodu|lagos|NG|3.49|6.6|535|W|,Ecatepec de Morelos|MX15|MX|-99.06|19.6|1645|NW|ecatepec,Echo Park|CA|US|-118.26|34.08|43|N|,Ede|osun state|NG|4.44|7.74|159|W|,Eden Prairie|MN|US|-93.47|44.85|63|N|,Edgewater|IL|US|-87.66|41.98|54|N|,Edgewood|MD|US|-76.29|39.42|25|N|,Edina|MN|US|-93.35|44.89|50|N|,Edinburg|TX|US|-98.16|26.3|84|N|,Edinburgh|scotland|GB|-3.2|55.95|514|W|edimburgo;edynburg;edimbourg,Edirne|edirne|TR|26.56|41.68|180|W|adrianopol;adrianopoli,Edison|NJ|US|-74.41|40.52|102|N|gmina edison,Edmond|OK|US|-97.48|35.65|90|N|,Edmonds|WA|US|-122.38|47.81|41|N|,Edmonton|AB|CA|-113.47|53.55|1010|NW|,Edogawe|tokyo|JP|139.87|35.69|697|W|edogawa city,Efon-Alaaye|ekiti state|NG|4.92|7.66|279|W|,Egypt Lake-Leto|FL|US|-82.51|28.02|35|N|,Eimsbuettel|hamburg|DE|9.96|53.57|269|W|eimsbuttel;bezirk eimsbuttel;distretto di eimsbuttel;hambourg eimsbuttel;hamburg eimsbuttel,Eindhoven|north brabant|NL|5.48|51.44|235|W|,Eixample|catalonia|ES|2.16|41.39|266|W|distrito del ensanche,Ejigbo|osun state|NG|4.31|7.9|138|W|,El Achir|bordj bou arreridj|DZ|4.63|36.06|158|W|,El Cajon|CA|US|-116.96|32.79|103|N|,El Centro|CA|US|-115.56|32.79|43|N|,El Daein|eastern darfur|SD|26.13|11.46|264|W|ad du ayn;ad duajn;ad du ain;ed daein,El Dibir|bari|SO|51.22|11.77|200|W|,El Dorado Hills|CA|US|-121.08|38.69|42|N|,El Eulma|setif|DZ|5.69|36.15|145|W|,El Fasher|northern darfur|SD|25.35|13.63|252|W|al fashir;al faschir,El Geneina Fort|western darfur|SD|22.46|13.47|134|W|,El Jadida|casablanca settat|MA|-8.51|33.26|212|W|al dzadida;el yadida;mazagao;castilho real;mazaghan,El Limon|aragua|VE|-67.63|10.31|148|W|,El Mirage|AZ|US|-112.32|33.61|33|N|,El Monte|CA|US|-118.03|34.07|116|N|,El Obeid|north kordofan|SD|30.22|13.18|393|W|al ubayyid,El Oued|el oued|DZ|6.86|33.36|186|W|al wadi;oued souf,El Paso|TX|US|-106.49|31.76|678|NW|,El Pueblito|MX22|MX|-100.44|20.54|71|N|corregidora,El Tigre|anzoategui|VE|-64.25|8.89|222|W|,El Vigia|merida|VE|-71.66|8.61|162|W|,Elazig|elazig|TR|39.22|38.67|443|W|,Elche|valencia|ES|-0.7|38.26|234|W|elx,Eldersburg|MD|US|-76.95|39.4|30|N|eldersburgh,Eldoret|uasin gishu county|KE|35.27|0.52|475|W|,Elektrostal'|moscow oblast|RU|38.46|55.79|144|W|,Elgin|IL|US|-88.28|42.04|112|N|,Elizabeth|NJ|US|-74.21|40.66|129|N|,Elizabethtown|KY|US|-85.86|37.69|29|N|,Elk Grove|CA|US|-121.37|38.41|166|NW|,Elk Grove Village|IL|US|-87.97|42|33|N|,Elkhart|IN|US|-85.98|41.68|52|N|,Ellendale|TN|US|-89.83|35.23|25|N|,Ellicott City|MD|US|-76.8|39.27|65|N|,Elmhurst|NY|US|-73.88|40.74|113|N|,Elmhurst|IL|US|-87.94|41.9|45|N|,Elmira|NY|US|-76.81|42.09|28|N|,Elmont|NY|US|-73.71|40.7|33|N|,Eloy Alfaro|guayas|EC|-79.84|-2.17|315|W|duran,Eluru|andhra pradesh|IN|81.1|16.71|218|W|,Elyria|OH|US|-82.11|41.37|53|N|,Emalahleni|mpumalanga|ZA|29.23|-25.87|373|W|,eMbalenhle|mpumalanga|ZA|29.07|-26.53|142|W|,Embu das Artes|sao paulo|BR|-46.85|-23.65|259|W|embu arte,Emiliano Zapata|MX17|MX|-99.18|18.84|49|N|,Emiliano Zapata|MX15|MX|-98.97|19.34|25|N|,Eminabad|punjab|PK|74.26|32.04|150|W|,Empalme|MX26|MX|-110.81|27.96|42|N|,Encanto|AZ|US|-112.08|33.48|54|N|,Encarnacion de Diaz|MX14|MX|-102.24|21.53|25|N|la chona,Enchanted Hills|NM|US|-106.59|35.34|87|N|,Encinitas|CA|US|-117.29|33.04|62|N|,Encino|CA|US|-118.5|34.16|44|N|,Enfield|CT|US|-72.59|41.98|45|N|,Enfield Town|england|GB|-0.08|51.65|156|W|enfield,Engels|saratov oblast|RU|46.11|51.48|196|W|enehl s;engel s;pokrovs ka sloboda,Englewood|CO|US|-104.99|39.65|33|N|new dawn rejuvenation,Englewood|NJ|US|-73.97|40.89|28|N|,Englewood|IL|US|-87.65|41.78|26|N|,Enid|OK|US|-97.88|36.4|51|N|,Enschede|overijssel|NL|6.9|52.22|153|W|,Ensenada|MX02|MX|-116.6|31.87|443|NW|enseada,Enshi|hubei|CN|109.48|30.3|279|W|,Enterprise|NV|US|-115.24|36.03|108|N|,Enterprise|AL|US|-85.86|31.32|27|N|,Enugu|enugu state|NG|7.5|6.44|950|W|,Envigado|antioquia|CO|-75.59|6.18|163|W|,Epworth|harare|ZW|31.15|-17.89|206|W|,Erbil|erbil|IQ|44.01|36.19|1612|W|arbil;hawler;irbil,Eregli|konya|TR|34.05|37.51|156|W|heraclea;heraclea minoa;herakleia,Erfurt|thuringia|DE|11.04|50.98|218|W|,Erie|PA|US|-80.09|42.13|99|N|,Erode|tamil nadu|IN|77.73|11.34|521|W|irodu,Erzincan|erzincan|TR|39.49|39.74|150|W|erzincam;erzinca,Erzurum|erzurum|TR|41.28|39.91|767|W|,Escarcega|MX04|MX|-90.75|18.61|29|N|,Escondido|CA|US|-117.09|33.12|151|NW|,Escuinapa de Hidalgo|MX25|MX|-105.78|22.83|30|N|,Escuintla|escuintla|GT|-90.79|14.3|156|W|,Esenler|istanbul|TR|28.88|41.04|520|W|,Esenyurt|istanbul|TR|28.68|41.03|983|W|,Eskisehir|eskisehir|TR|30.52|39.78|921|W|,Eslamshahr|tehran|IR|51.24|35.55|450|W|eslamchahr;eslamschahr;shadshahr,Esmeraldas|esmeraldas|EC|-79.65|0.96|218|W|,Esna|qena|EG|32.55|25.29|462|W|,Esperanza|MX26|MX|-109.93|27.58|38|N|,Espoo|uusimaa|FI|24.65|60.21|323|W|esbo,Essen|north rhine westphalia|DE|7.01|51.46|593|W|,Essex|MD|US|-76.47|39.31|39|N|,Estero|FL|US|-81.81|26.44|30|N|,Etah|uttar pradesh|IN|78.66|27.56|131|W|,Etawah|uttar pradesh|IN|79.02|26.78|257|W|,Etobicoke|ON|CA|-79.57|43.64|365|NW|,Etwatwa|gauteng|ZA|28.45|-26.13|151|W|,Euclid|OH|US|-81.53|41.59|47|N|,Eugene|OR|US|-123.09|44.05|176|NW|,Euless|TX|US|-97.08|32.84|54|N|,Eureka|CA|US|-124.16|40.8|27|N|,Evans|GA|US|-82.13|33.53|29|N|,Evanston|IL|US|-87.69|42.04|75|N|,Evansville|IN|US|-87.56|37.97|119|N|,Evaton|gauteng|ZA|27.85|-26.53|725|W|,Everett|WA|US|-122.2|47.98|108|N|,Everett|MA|US|-71.05|42.41|46|N|,'Ewa Gentry-West Loch|HI|US|-158.03|21.35|35|N|,Ewing|NJ|US|-74.8|40.27|36|N|,Exeter|england|GB|-3.53|50.72|130|W|,Ezhou|hubei|CN|114.83|30.4|193|W|,Facatativa|cundinamarca|CO|-74.35|4.81|141|W|,Fair Lawn|NJ|US|-74.13|40.94|33|N|,Fair Oaks|CA|US|-121.27|38.64|30|N|,Fairbanks|AK|US|-147.72|64.84|32|N|,Fairborn|OH|US|-84.02|39.82|33|N|,Fairfield|CA|US|-122.04|38.25|112|N|,Fairfield|CT|US|-73.26|41.14|59|N|,Fairfield|OH|US|-84.56|39.35|42|N|,Fairview|BC|CA|-123.13|49.26|33|N|,Faisalabad|punjab|PK|73.09|31.42|3800|W|fajsalabad;lyallpur,Fall River|MA|US|-71.16|41.7|94|N|,Fallbrook|CA|US|-117.25|33.38|30|N|,Fallingbrook|ON|CA|-75.48|45.48|25|N|,Fangchenggang|guangxi|CN|108.36|21.77|276|W|,Fanling|north district|HK|114.14|22.49|263|W|,Far Rockaway|NY|US|-73.76|40.61|39|N|,Fardis|tehran|IR|51|35.76|181|W|,Fargo|ND|US|-96.79|46.88|118|N|,Faridabad|haryana|IN|77.31|28.41|1414|W|,Farmers Branch|TX|US|-96.9|32.93|32|N|,Farmington|NM|US|-108.22|36.73|42|N|,Farmington|CT|US|-72.83|41.72|25|N|,Farmington Hills|MI|US|-83.38|42.49|81|N|,Farrukhabad|uttar pradesh|IN|79.58|27.39|241|W|,Fatehpur|uttar pradesh|IN|80.81|25.93|166|W|,Fatih|istanbul|TR|28.94|41.02|356|W|,Favoriten|state of vienna|AT|16.38|48.16|201|W|,Fayetteville|NC|US|-78.88|35.05|201|NW|,Fayetteville|AR|US|-94.16|36.06|82|N|,Fazenda Rio Grande|parana|BR|-49.31|-25.66|148|W|,Federal Way|WA|US|-122.31|47.32|95|N|,Feira de Santana|bahia|BR|-38.97|-12.27|616|W|,Felipe Carrillo Puerto|MX23|MX|-88.05|19.58|25|N|,Fendou|heilongjiang|CN|124.86|46.64|226|W|,Fengcheng|chongqing|CN|107.06|29.83|175|W|changshohein,Fengcheng|jiangsu|CN|116.59|34.7|161|W|,Fenghuang|hunan|CN|109.6|27.94|370|W|,Fengshan|takao|TW|120.36|22.63|356|W|feng san;fongshan district,Fengxiang|shanghai|CN|121.47|30.86|1140|W|,Fenway/Kenmore|MA|US|-71.1|42.34|37|N|,Fergana|fergana|UZ|71.78|40.38|299|W|ferghana,Ferrara|emilia romagna|IT|11.62|44.84|132|W|ferrare,Ferraz de Vasconcelos|sao paulo|BR|-46.37|-23.54|179|W|,Ferry Pass|FL|US|-87.21|30.51|28|N|,Fes|fes meknes|MA|-5|34.03|1191|W|fez,Fes al Bali|fes meknes|MA|-4.95|34.07|156|W|,Fianarantsoa|upper matsiatra|MG|47.09|-21.45|203|W|,Financial District|NY|US|-74.01|40.71|60|N|,Findlay|OH|US|-83.65|41.04|41|N|,Firozabad|uttar pradesh|IN|78.4|27.15|306|W|,Fishers|IN|US|-86.01|39.96|76|N|,Fitchburg|MA|US|-71.8|42.58|40|N|,Fitchburg|WI|US|-89.47|42.96|27|N|,Flagami|FL|US|-80.32|25.76|50|N|,Flagstaff|AZ|US|-111.65|35.2|70|N|,Flatbush|NY|US|-73.96|40.65|93|N|,Flatlands|NY|US|-73.93|40.62|63|N|,Fleetwood|BC|CA|-122.8|49.17|65|N|,Fleming Island|FL|US|-81.72|30.09|27|N|,Flint|MI|US|-83.69|43.01|98|N|,Florence|tuscany|IT|11.25|43.78|367|W|florencja;firenze;floransa;florencia;florencie;florens;florenz;florenca;florenta,Florence|AL|US|-87.68|34.8|40|N|,Florence|SC|US|-79.76|34.2|38|N|,Florence|KY|US|-84.63|39|32|N|,Florence|AZ|US|-111.39|33.03|31|N|,Florence-Graham|CA|US|-118.24|33.97|63|N|,Florencia|caqueta|CO|-75.6|1.62|168|W|,Florianopolis|santa catarina|BR|-48.55|-27.6|508|W|floripa;nossa senhora do desterro;santa catherina,Floridablanca|santander department|CO|-73.09|7.06|267|W|,Floridsdorf|state of vienna|AT|16.4|48.25|162|W|,Florin|CA|US|-121.41|38.5|47|N|,Florissant|MO|US|-90.32|38.79|52|N|,Flower Mound|TX|US|-97.1|33.01|71|N|,Foggia|apulia|IT|15.55|41.46|137|W|,Folsom|CA|US|-121.18|38.68|76|N|,Fond du Lac|WI|US|-88.44|43.77|42|N|,Fontana|CA|US|-117.44|34.09|212|NW|,Fontanar|havana|CU|-82.41|23.02|178|W|,Foothill Farms|CA|US|-121.35|38.68|33|N|,Fordham|NY|US|-73.9|40.86|94|N|,Forest Hills|NY|US|-73.85|40.72|67|N|,Forest Hills|MI|US|-85.49|42.96|25|N|,Formosa|formosa|AR|-58.17|-26.18|222|W|ciudad de formosa,Fort Bragg|NC|US|-79.01|35.14|29|N|phao dai bragg;fort liberty,Fort Cavazos|TX|US|-97.78|31.13|29|N|,Fort Collins|CO|US|-105.08|40.59|170|NW|ft collins,Fort Erie|ON|CA|-78.93|42.9|30|N|,Fort Garry South|MB|CA|-97.16|49.79|65|N|,Fort Hamilton|NY|US|-74.03|40.62|28|N|,Fort Lauderdale|FL|US|-80.14|26.12|183|NW|,Fort Lee|NJ|US|-73.97|40.85|36|N|,Fort McMurray|AB|CA|-111.38|56.73|66|N|,Fort Myers|FL|US|-81.84|26.62|74|N|,Fort Pierce|FL|US|-80.33|27.45|44|N|ft pierce,Fort Smith|AR|US|-94.4|35.39|88|N|,Fort Wayne|IN|US|-85.13|41.13|260|NW|,Fort Worth|TX|US|-97.32|32.73|1008|NW|ft worth,Fortaleza|ceara|BR|-38.54|-3.72|2400|W|,Fortechnyi|kirovohrad|UA|32.25|48.5|167|W|,Fortuna Foothills|AZ|US|-114.41|32.66|26|N|,Foshan|guangdong|CN|113.13|23.03|9042|W|fo san,Foster City|CA|US|-122.27|37.56|33|N|,Foumban|west|CM|10.9|5.73|130|W|foumbam;fumban,Fountain|CO|US|-104.7|38.68|27|N|,Fountain Valley|CA|US|-117.95|33.71|56|N|,Fountainebleau|FL|US|-80.35|25.77|59|N|fountainbleau,Four Corners|FL|US|-81.65|28.33|26|N|,Foz do Iguacu|parana|BR|-54.59|-25.55|297|W|foz de iguazu,Fraccionamiento Real Palmas|MX19|MX|-100.16|25.9|34|N|,Framingham|MA|US|-71.42|42.28|68|N|,Framingham Center|MA|US|-71.44|42.3|65|N|,Franca|sao paulo|BR|-47.4|-20.54|365|W|,Franceville|haut ogooue|GA|13.58|-1.63|132|W|,Francisco I. Madero|MX07|MX|-103.27|25.77|26|N|,Francisco Morato|sao paulo|BR|-46.75|-23.28|165|W|,Franco da Rocha|sao paulo|BR|-46.73|-23.32|144|W|,Frankfort|KY|US|-84.87|38.2|28|N|,Frankfurt am Main|hesse|DE|8.68|50.12|650|W|francfort sur le main;francoforte sul meno;francfort del meno;francfort;francoforte;frankfurt;frankfurt nad menem;frankfurt nad mohanem;franckfurt,Franklin|TN|US|-86.87|35.93|72|N|,Franklin|WI|US|-88.04|42.89|36|N|,Franklin|MA|US|-71.4|42.08|30|N|,Franklin Square|NY|US|-73.68|40.71|29|N|,Fraser Heights|BC|CA|-122.78|49.2|25|N|,Frederick|MD|US|-77.41|39.41|69|N|,Fredericksburg|VA|US|-77.46|38.3|28|N|,Fredericton|NB|CA|-66.67|45.95|63|N|,Fredericton Northside|NB|CA|-66.64|45.98|28|N|northside fredericton,Freeport|NY|US|-73.58|40.66|43|N|,Freetown|western area|SL|-13.24|8.49|802|W|,Freguesia do O|sao paulo|BR|-46.7|-23.5|137|W|nossa senhora do o,Freiburg|baden wurttemberg|DE|7.85|48|237|W|freiburg im breisgau;fribourg en brisgau;friburgo de brisgovia;friburgo in brisgovia;fryburg bryzgowijski,Fremont|CA|US|-121.99|37.55|232|NW|,Fremont|NE|US|-96.5|41.43|26|N|,Fresh Meadows|NY|US|-73.79|40.73|28|N|,Fresnillo|MX32|MX|-102.87|23.17|143|NW|,Fresno|CA|US|-119.77|36.75|542|NW|,Fridley|MN|US|-93.26|45.09|27|N|,Friendswood|TX|US|-95.2|29.53|38|N|,Frisco|TX|US|-96.82|33.15|154|NW|,Frontera|MX07|MX|-101.45|26.93|69|N|ciudad frontera,Fruit Cove|FL|US|-81.64|30.11|29|N|,Fu'an|fujian|CN|119.64|27.09|154|W|,Fuchu|tokyo|JP|139.48|35.67|262|W|,Fuding|fujian|CN|120.21|27.33|192|W|,Fuencarral|madrid|ES|-3.68|40.5|238|W|,Fuencarral-El Pardo|madrid|ES|-3.73|40.5|220|W|,Fuenlabrada|madrid|ES|-3.79|40.28|190|W|,Fuentes del Valle|MX15|MX|-99.14|19.63|74|N|,Fuerth|bavaria|DE|10.99|49.48|132|W|furth,Fuji|shizuoka|JP|138.68|35.17|245|W|fudzi,Fuji|sichuan|CN|105.37|29.15|131|W|,Fujieda|shizuoka|JP|138.27|34.87|145|W|,Fujinomiya|shizuoka|JP|138.62|35.22|132|W|,Fujisawa|kanagawa|JP|139.48|35.35|439|W|,Fukayacho|saitama|JP|139.28|36.2|141|W|,Fukui-shi|fukui|JP|136.22|36.06|262|W|,Fukuoka|fukuoka|JP|130.42|33.6|1612|W|fukuoka shi;fukuokashi,Fukushima|fukushima|JP|140.47|37.75|294|W|,Fukuyama|hiroshima|JP|133.37|34.48|468|W|,Fuling|chongqing|CN|107.39|29.71|268|W|fuchow,Fullerton|CA|US|-117.93|33.87|140|NW|,Funtua|katsina state|NG|7.31|11.52|136|W|,Fushun|liaoning|CN|123.94|41.89|1400|W|fu sun,Fuxin|liaoning|CN|121.66|42.02|689|W|fu sin,Fuyang|anhui|CN|115.82|32.9|1768|W|fu jang,Fuyu|jilin|CN|124.82|45.18|138|W|,Fuzhou|fujian|CN|119.31|26.06|3740|W|fu cou;fucheu;phuc chau,Fuzhou|jiangxi|CN|116.33|27.96|1089|W|fu cou,Fyzabad|uttar pradesh|IN|82.15|26.78|153|W|faizabad,Gaborone|gaborone|BW|25.91|-24.65|246|W|,Gabriel Leyva Solano|MX25|MX|-108.64|25.66|27|N|benito juarez;leyva solano,Gadag|karnataka|IN|75.63|15.43|172|W|,Gadag-Betageri|karnataka|IN|75.62|15.42|172|W|,Gadsden|AL|US|-86.01|34.01|36|N|,Gage Park|IL|US|-87.7|41.8|41|N|,Gagnoa|goh djiboua|CI|-5.95|6.13|277|W|,Gahanna|OH|US|-82.88|40.02|34|N|,Gainesville|FL|US|-82.32|29.65|145|NW|,Gainesville|GA|US|-83.82|34.3|38|N|,Gaithersburg|MD|US|-77.2|39.14|67|N|,Gajuwaka|andhra pradesh|IN|83.22|17.7|258|W|,Galati|galati county|RO|28.05|45.44|217|W|galatz;galacz,Galesburg|IL|US|-90.37|40.95|31|N|,Gallatin|TN|US|-86.45|36.39|34|N|,Galt|CA|US|-121.3|38.25|25|N|,Galveston|TX|US|-94.8|29.3|50|N|,Gama|federal district|BR|-48.07|-16.03|139|W|,Gandajika|lomami|CD|23.95|-6.75|208|W|,Gandhidham|gujarat|IN|70.13|23.08|247|W|,Gandhinagar|gujarat|IN|72.68|23.22|292|W|,Gangneung|gangwon do|KR|128.87|37.75|208|W|,Ganja|gence|AZ|46.36|40.68|330|W|ganca;gandja;gandza;gence;gandzja,Ganzhou|jiangxi|CN|114.93|25.85|1977|W|cam chau;kan cou,Gao|gao|ML|-0.04|16.27|133|W|,Gaomi|shandong|CN|119.75|36.38|391|W|,Gaoping|sichuan|CN|106.1|30.78|204|W|,Gaozhou|guangdong|CN|110.86|21.92|292|W|,Garanhuns|pernambuco|BR|-36.5|-8.88|151|W|,Garcia|MX19|MX|-100.59|25.8|93|N|,Garden City|KS|US|-100.87|37.97|27|N|,Garden City|MI|US|-83.33|42.33|26|N|,Garden Grove|CA|US|-117.94|33.77|175|NW|,Gardena|CA|US|-118.31|33.89|60|N|,Garfield|NJ|US|-74.11|40.88|31|N|,Garfield Heights|OH|US|-81.61|41.42|28|N|garfield hts,Garhi Khairo|sindh|PK|67.98|28.06|193|W|,Garissa|garissa county|KE|39.65|-0.45|163|W|,Garland|TX|US|-96.64|32.91|236|NW|,Garner|NC|US|-78.61|35.71|28|N|,Garut|west java|ID|107.92|-7.25|131|W|,Gary|IN|US|-87.35|41.59|77|N|,Gasteiz / Vitoria|basque country|ES|-2.67|42.85|257|W|vitoria;vitoria gasteiz,Gastonia|NC|US|-81.19|35.26|74|N|,Gatineau|QC|CA|-75.7|45.48|300|NW|,Gaya|bihar|IN|85|24.8|474|W|,Gaza|gaza strip|PS|34.47|31.5|410|W|gaza city;gazze,Gaziantep|gaziantep|TR|37.38|37.06|2222|W|,Gazipur|dhaka division|BD|90.42|24|2674|W|,Gboko|benue state|NG|9|7.32|365|W|,Gbongan|osun state|NG|4.35|7.48|139|W|,Gdansk|pomerania|PL|18.65|54.35|487|W|danzica;danzig,Gdynia|pomerania|PL|18.53|54.52|257|W|gdingen;gdyne,Gebze|kocaeli|TR|29.43|40.8|281|W|,Geelong|victoria|AU|144.36|-38.15|282|W|,Geita|geita|TZ|32.23|-2.87|318|W|,Gejiu|yunnan|CN|103.15|23.36|136|W|,Gelsenkirchen|north rhine westphalia|DE|7.1|51.51|270|W|,Gemena|sud ubangi|CD|19.77|3.26|197|W|,General Santos|soccsksargen|PH|125.17|6.11|722|W|kota general santos,Geneva|geneva|CH|6.15|46.2|201|W|cenevre;genebra;geneve;genewa;genf;ginebra;ginevra;jenewa;zeneva,Genoa|liguria|IT|8.94|44.4|580|W|genova;cenova;genua;genes;janov,Gent|flanders|BE|3.72|51.05|265|W|gand;gandawa;gante;ghent,Geoje|gyeongsangnam do|KR|128.71|34.81|232|W|,George|western cape|ZA|22.46|-33.96|188|W|,George Town|penang|MY|100.34|5.41|158|W|georgetown;penang,Georgetown|demerara mahaica|GY|-58.16|6.8|235|W|,Georgetown|TX|US|-97.68|30.63|63|N|,Georgetown|ON|CA|-79.92|43.65|44|N|,Georgetown|KY|US|-84.56|38.21|32|N|,Germantown|MD|US|-77.27|39.17|86|N|,Germantown|TN|US|-89.81|35.09|39|N|,Germiston|gauteng|ZA|28.18|-26.23|255|W|germinston,Getafe|madrid|ES|-3.73|40.31|187|W|,Ghardaia|ghardaia|DZ|3.67|32.49|142|W|gardaya;ghardaja,Ghaziabad|uttar pradesh|IN|77.44|28.67|1199|W|gaziabade,Ghazni|ghazni|AF|68.42|33.55|141|W|gazni,Ghulja|xinjiang|CN|81.32|43.92|269|W|yining,Gia Lam|hanoi|VN|105.94|21.02|309|W|,Gia Rai|ca mau|VN|105.46|9.23|145|W|,Gifu|gifu|JP|136.76|35.42|402|W|gifu city,Gijang|busan|KR|129.21|35.24|176|W|,Gijon|asturias|ES|-5.66|43.54|271|W|,Gilbert|AZ|US|-111.79|33.35|247|NW|,Gilgit|gilgit baltistan|PK|74.31|35.92|216|W|,Gillette|WY|US|-105.5|44.29|32|N|,Gilroy|CA|US|-121.57|37.01|53|N|,Gimcheon|gyeongsangbuk do|KR|128.12|36.12|150|W|kimcchon,Gimpo-si|gyeonggi do|KR|126.71|37.62|203|W|gimpo,Gingoog|northern mindanao|PH|125.1|8.83|138|W|,Girga|sohag|EG|31.89|26.34|151|W|jirja,Gisenyi|western province|RW|29.26|-1.7|172|W|gosenyi,Giza|giza|EG|31.21|30.01|4367|W|gizeh;gize;guiza,GJien Ban|da nang city|VN|108.25|15.89|226|W|,GJong GJa|hanoi|VN|105.83|21.01|371|W|,GJong Hoi|quang tri|VN|106.62|17.47|133|W|dong hoi,GJong Xoai|dong nai|VN|106.88|11.53|168|W|dong xoai,GJuc Pho|quang ngai|VN|108.96|14.81|155|W|,GJuc Trong|lam dong|VN|108.37|11.74|161|W|lien nghia,Gladstone|MO|US|-94.55|39.2|26|N|,Glasgow|scotland|GB|-4.26|55.87|626|W|,Glastonbury|CT|US|-72.61|41.71|31|N|,Glen Burnie|MD|US|-76.62|39.16|67|N|,Glen Cove|NY|US|-73.63|40.86|27|N|,Glen Ellyn|IL|US|-88.07|41.88|28|N|,Glendale|AZ|US|-112.19|33.54|240|NW|,Glendale|CA|US|-118.26|34.14|201|NW|,Glendale|NY|US|-73.89|40.7|34|N|,Glendale Heights|IL|US|-88.06|41.91|34|N|,Glendora|CA|US|-117.87|34.14|52|N|,Glenfield-Jane Heights|ON|CA|-79.51|43.75|30|N|,Glenview|IL|US|-87.79|42.07|47|N|,Glenville|NY|US|-74.05|42.93|29|N|,Gliwice|silesia|PL|18.68|50.3|198|W|gleiwitz,Gloucester|ON|CA|-75.63|45.35|150|NW|,Gloucester|england|GB|-2.24|51.87|132|W|,Gloucester|MA|US|-70.66|42.61|29|N|,Godhra|gujarat|IN|73.61|22.78|143|W|,Godome|atlantique|BJ|2.35|6.39|253|W|,Goelbasi|ankara|TR|32.81|39.79|165|W|golbasi,Goiania|goias|BR|-49.25|-16.68|1536|W|,Gojra|punjab|PK|72.68|31.15|214|W|gorja,Gol'yanovo|moscow|RU|37.81|55.82|158|W|,Gold Coast|queensland|AU|153.43|-28|640|W|costa dorada;gold,Golden Glades|FL|US|-80.2|25.91|33|N|,Goldsboro|NC|US|-77.99|35.38|35|N|,Golestan|tehran|IR|51.18|35.52|240|W|,Goleta|CA|US|-119.83|34.44|30|N|goelette;kuunari;schoener;schoner;schooner;skonert;skonnert;szkuner,Golfe|luanda|AO|13.26|-8.87|655|W|,Goma|north kivu|CD|29.23|-1.67|432|W|,Gombe|gombe state|NG|11.17|10.29|560|W|,Gomez Palacio|MX10|MX|-103.5|25.57|257|NW|,Gonbad-e Kavus|golestan|IR|55.17|37.25|151|W|,Gonda City|uttar pradesh|IN|81.95|27.13|133|W|,Gonder|amhara|ET|37.47|12.6|466|W|gondar,Gondia|maharashtra|IN|80.19|21.46|132|W|gondiya,Gongheyong|guangdong|CN|113.79|22.76|204|W|,Gongzhuling|jilin|CN|124.82|43.5|140|W|,Goodyear|AZ|US|-112.36|33.44|79|N|,Goose Creek|SC|US|-80.03|32.98|40|N|,Gorakhpur|haryana|IN|75.67|29.45|1324|W|,Gorakhpur|uttar pradesh|IN|83.37|26.77|674|W|,Gorgan|golestan|IR|54.44|36.84|244|W|,Gorontalo|gorontalo|ID|123.06|0.54|205|W|,Goshen|IN|US|-85.83|41.58|32|N|,Gothenburg|vastra gotaland|SE|11.97|57.71|608|W|goteborg;gotemburgo;gotenburg;gothembourg,Governador Valadares|minas gerais|BR|-41.95|-18.85|266|W|gov valadares;valadares,Goyang-si|gyeonggi do|KR|126.83|37.66|1061|W|goyang,Gqeberha|eastern cape|ZA|25.61|-33.96|1050|W|port elizabeth;porto elizabeth;puerto elizabeth,Grajau|sao paulo|BR|-46.67|-23.77|384|W|,Gramercy Park|NY|US|-73.99|40.74|27|N|,Granada|andalusia|ES|-3.61|37.19|233|W|grenada;grenade;girnata,Granby|QC|CA|-72.73|45.4|66|N|,Grand Forks|ND|US|-97.03|47.93|57|N|,Grand Island|NE|US|-98.34|40.93|51|N|,Grand Junction|CO|US|-108.55|39.06|60|N|,Grand Prairie|TX|US|-97|32.75|187|NW|,Grand Rapids|MI|US|-85.67|42.96|195|NW|,Grande Prairie|AB|CA|-118.8|55.17|70|N|,Grandview|MO|US|-94.53|38.89|25|N|,Grandview-Woodlands|BC|CA|-123.07|49.28|29|N|,Granger|IN|US|-86.11|41.75|30|N|,Granite City|IL|US|-90.15|38.7|29|N|,Grants Pass|OR|US|-123.33|42.44|37|N|,Grapevine|TX|US|-97.08|32.93|51|N|,Gravatai|rio grande do sul|BR|-50.99|-29.94|265|W|,Gravesend|NY|US|-73.97|40.6|112|N|,Graz|styria|AT|15.44|47.07|303|W|styrsky hradec,Great Falls|MT|US|-111.3|47.5|59|N|,Greater Grand Crossing|IL|US|-87.61|41.76|32|N|,Greater Noida|uttar pradesh|IN|77.54|28.5|293|W|,Greater Sudbury|ON|CA|-80.99|46.49|166|NW|sudbury;gran sudbury;grand sudbury,Greeley|CO|US|-104.71|40.42|108|N|,Green|OH|US|-81.48|40.95|25|N|,Green Bay|WI|US|-88.02|44.52|105|N|,Greenacres City|FL|US|-80.13|26.62|32|N|,Greenburgh|NY|US|-73.84|41.03|86|N|,Greenfield|WI|US|-88.01|42.96|37|N|,Greenpoint|NY|US|-73.95|40.72|34|N|,Greensboro|NC|US|-79.79|36.07|285|NW|,Greenville|NC|US|-77.37|35.61|90|N|,Greenville|SC|US|-82.39|34.85|64|N|,Greenville|MS|US|-91.06|33.41|32|N|,Greenville|TX|US|-96.11|33.14|26|N|,Greenwood|IN|US|-86.11|39.61|55|N|,Greer|SC|US|-82.23|34.94|28|N|,Grenoble|rhone alpes|FR|5.71|45.18|158|W|,Gresham|OR|US|-122.43|45.5|110|N|,Grimsby|ON|CA|-79.57|43.2|27|N|,Groningen|groningen|NL|6.57|53.22|244|W|groninga;groningue,Grove City|OH|US|-83.09|39.88|39|N|,Grozny|chechnya|RU|45.69|43.31|297|W|grosnij;grosny;grozni;groznyi;groznyj;groznyy;groznai;groznii,Guacara|carabobo|VE|-67.88|10.23|198|W|,Guadalajara|MX14|MX|-103.35|20.68|1385|NW|,Guadalupe|MX19|MX|-100.26|25.68|673|NW|ciudad guadalupe;villa de guadalupe,Guadalupe|MX32|MX|-102.52|22.75|170|NW|,Guamuchil|MX25|MX|-108.08|25.46|72|N|,Guanajuato|MX11|MX|-101.26|21.02|72|N|guanajuato city,Guang'an|sichuan|CN|106.64|30.47|858|W|,Guangshui|hubei|CN|114|31.62|154|W|,Guangyuan|sichuan|CN|105.82|32.44|516|W|kuang juan,Guangzhou|guangdong|CN|113.25|23.12|16096|W|canton;cantao;kanton;koshu,Guankou|hunan|CN|113.63|28.16|1380|W|,Guantanamo|guantanamo province|CU|-75.21|20.14|272|W|,Guarapari|espirito santo|BR|-40.5|-20.67|136|W|,Guarapuava|parana|BR|-51.47|-25.39|189|W|,Guarenas|miranda|VE|-66.62|10.47|248|W|,Guaruja|sao paulo|BR|-46.26|-23.99|294|W|,Guarulhos|sao paulo|BR|-46.53|-23.46|1345|W|,Guasave|MX25|MX|-108.47|25.57|71|N|,Guatemala City|guatemala|GT|-90.51|14.64|994|W|citta del guatemala;ciudad de guatemala;guatemala;guatemala stadt;guate;cidade da guatemala;ciudad guatemala;guatemala by;guatemala stad;gwatemala;new guatemala;nueva guatemala;santiago de guatimala,Guatire|miranda|VE|-66.54|10.47|227|W|,Guayaquil|guayas|EC|-79.89|-2.2|2723|W|guaiaquil,Gucun|shanghai|CN|121.39|31.35|240|W|,Guediawaye|dakar|SN|-17.4|14.77|329|W|,Guelph|ON|CA|-80.26|43.55|143|NW|,Guigang|guangxi|CN|109.59|23.12|1086|W|kuej kang,Guildford|BC|CA|-122.8|49.19|64|N|,Guilin|guangxi|CN|110.3|25.28|1572|W|kuej lin,Guixi|chongqing|CN|107.35|30.33|188|W|,Guiyang|guizhou|CN|106.72|26.58|3037|W|kuej jang;quy duong,Gujangbagh|xinjiang|CN|79.93|37.11|408|W|chotan;ciudad de jotan;hotan;hoten;khotan,Gujranwala|punjab|PK|74.19|32.16|2511|W|gudzranwala;gudzranvala,Gujrat|punjab|PK|74.08|32.57|574|W|,Gulfport|MS|US|-89.09|30.37|71|N|,Guli|zhejiang|CN|120.03|28.88|536|W|,Gulu|northern region|UG|32.3|2.77|177|W|,Gumi|gyeongsangbuk do|KR|128.34|36.11|404|W|,Guna|madhya pradesh|IN|77.31|24.65|180|W|,Gunan|chongqing|CN|106.65|29.02|208|W|,Gundupalaiyam|puducherry|IN|79.8|11.94|300|W|,Gunpo|gyeonggi do|KR|126.95|37.37|286|W|,Gunsan|jeollabuk do|KR|126.71|35.98|264|W|kunsan;kunsanpo,Guntur|andhra pradesh|IN|80.46|16.3|670|W|gunturu,Gunungsitoli|north sumatra|ID|97.61|1.29|136|W|,Guri-si|gyeonggi do|KR|127.14|37.6|195|W|guri,Gurnee|IL|US|-87.9|42.37|31|N|,Gurue|zambezia province|MZ|36.98|-15.47|168|W|,Gurugram|haryana|IN|77.03|28.46|886|W|gurgaon,Gusau|zamfara state|NG|6.66|12.17|226|W|,Gustavo Adolfo Madero|MX09|MX|-99.11|19.49|1185|NW|gustavo a madero,Guwahati|assam|IN|91.75|26.18|962|W|gauhati,Guyong|central luzon|PH|120.98|14.84|155|W|,Guyuan|ningxia|CN|106.28|36.01|411|W|,Gwalior|madhya pradesh|IN|78.17|26.23|1054|W|,Gwangju|gwangju|KR|126.92|35.15|1401|W|gwangju si;kwangdzu;kwangju,Gwangmyeong|gyeonggi do|KR|126.87|37.48|357|W|,Gwangyang|jeollanam do|KR|127.7|34.94|154|W|,Gweru|midlands province|ZW|29.82|-19.45|158|W|,Gwynn Oak|MD|US|-76.69|39.33|47|N|,Gyanpur|uttar pradesh|IN|82.47|25.33|200|W|,Gyeongju|gyeongsangbuk do|KR|129.21|35.84|245|W|,Gyeongsan-si|gyeongsangbuk do|KR|128.74|35.82|266|W|gyeongsan,Ha'il|ha il region|SA|41.69|27.52|605|W|hail,Ha Long|quang ninh|VN|107.07|20.95|270|W|,Ha Tinh|ha tinh province|VN|105.91|18.34|266|W|ha thin;thanh sen,Haarlem|north holland|NL|4.64|52.38|162|W|,Habra|west bengal|IN|88.66|22.84|139|W|,Hachinohe|aomori|JP|141.5|40.5|239|W|,Hachioji|tokyo|JP|139.32|35.66|579|W|hachiouji,Hacienda Heights|CA|US|-117.97|33.99|54|N|,Hacienda Santa Fe|MX14|MX|-103.38|20.52|86|N|,Hackensack|NJ|US|-74.04|40.89|44|N|,Hada'iq al Qubbah|cairo|EG|31.28|30.09|339|W|,Hadano|kanagawa|JP|139.22|35.37|163|W|,Haeju|south hwanghae|KP|125.71|38.04|222|W|,Hafar Al-Batin|eastern province|SA|45.97|28.43|271|W|,Hafizabad|punjab|PK|73.69|32.07|318|W|,Hagen|north rhine westphalia|DE|7.47|51.36|198|W|,Hagerstown|MD|US|-77.72|39.64|40|N|,Hai Ba Trung|hanoi|VN|105.85|21.01|303|W|hai batrung,Hai Chau|da nang city|VN|108.13|15.92|131|W|,Hai Duong|hai phong|VN|106.33|20.94|241|W|,Haicheng|liaoning|CN|122.75|40.85|191|W|,Haifa|haifa|IL|35|32.81|285|W|hajfa;hayfa,Haikou|hainan|CN|110.35|20.03|2873|W|chaj kchou,Hailar|inner mongolia|CN|119.7|49.2|211|W|,Hailin|heilongjiang|CN|129.39|44.57|144|W|,Haiphong|hai phong|VN|106.68|20.86|2625|W|hai phong;hajfong,Hajipur|bihar|IN|85.21|25.69|147|W|,Hakodate|hokkaido|JP|140.74|41.78|275|W|,Haldia|west bengal|IN|88.11|22.06|170|W|,Haldwani|uttarakhand|IN|79.53|29.22|139|W|haldwani kathgodam;haldwani cum kathgodam,Halifax|NS|CA|-63.58|44.64|471|NW|,Hallandale Beach|FL|US|-80.15|25.98|39|N|hallandale,Halle (Saale)|saxony anhalt|DE|11.98|51.48|237|W|halle;halle an der saale;halle sul saale,Haltom City|TX|US|-97.27|32.8|44|N|,Halton Hills|ON|CA|-79.93|43.64|62|N|,Halwan|cairo|EG|31.3|29.84|230|W|helwan,Hamadan|hamadan province|IR|48.51|34.8|528|W|,Hamah|hama|SY|36.76|35.13|460|W|hama,Hamamatsu|shizuoka|JP|137.73|34.7|791|W|hamamacu;hamamatsu city;hamamatsu shi,Hamburg|hamburg|DE|9.99|53.55|1973|W|hamburgo;amburgo;hamborg;hambourg;hamburk;hampuri,Hamburg-Mitte|hamburg|DE|10.02|53.55|301|W|bezirk hamburg mitte;hamburg centru,Hamburg-Nord|hamburg|DE|9.98|53.59|315|W|bezirk hamburg nord;distretto di hamburg nord,Hamden|CT|US|-72.9|41.4|59|N|,Hamhung|south hamgyong|KP|127.54|39.92|559|W|,Hami|xinjiang|CN|93.51|42.83|246|W|kumul,Hamilton|ON|CA|-79.85|43.25|569|NW|,Hamilton|waikato region|NZ|175.28|-37.78|192|W|,Hamilton|OH|US|-84.56|39.4|62|N|,Hamm|north rhine westphalia|DE|7.82|51.68|178|W|,Hammond|IN|US|-87.5|41.58|77|N|,Hampton|VA|US|-76.35|37.03|137|NW|,Hanam|gyeonggi do|KR|127.21|37.54|254|W|,Handan|hebei|CN|114.49|36.61|1358|W|chan tan;ham dan,Hanfeng|chongqing|CN|108.4|31.17|196|W|,Hanford|CA|US|-119.65|36.33|55|N|,Hangu|tianjin|CN|117.79|39.25|208|W|,Hangzhou|zhejiang|CN|120.16|30.29|9236|W|chang cou;hang chau,Hannover|lower saxony|DE|9.73|52.37|515|W|hanover;hanovra;hanovre;hanower,Hanoi|hanoi|VN|105.84|21.02|8053|W|hanoj;kecho;kescio;thang long,Hanover|MD|US|-76.72|39.19|38|N|,Hanover Park|IL|US|-88.15|42|38|N|,Hanumangarh|rajasthan|IN|74.33|29.58|155|W|,Hanzhong|shaanxi|CN|107.02|33.08|1006|W|chan cung;han trung,Hapur|uttar pradesh|IN|77.78|28.73|242|W|,Harar|harari|ET|42.12|9.31|157|W|harar jugol;harer,Harare|harare|ZW|31.05|-17.83|1542|W|,Harbin|heilongjiang|CN|126.65|45.75|5242|W|charbin;cap nhi tan,Harburg|hamburg|DE|9.98|53.46|169|W|hamburg harburg;bezirk harburg;distretto di harburg;hambourg harburg;hamburgo harburgo,Hargeysa|woqooyi galbeed|SO|44.06|9.56|477|W|hargeisa,Haridwar|uttarakhand|IN|78.16|29.95|186|W|hardwar;haridvar,Harker Heights|TX|US|-97.66|31.08|29|N|,Harlem|NY|US|-73.95|40.81|116|N|,Harlingen|TX|US|-97.7|26.19|65|N|,Harrisburg|PA|US|-76.88|40.27|50|N|,Harrison|NY|US|-73.71|40.97|28|N|,Harrisonburg|VA|US|-78.87|38.45|52|N|,Harrow|england|GB|-0.33|51.58|149|W|,Hartford|CT|US|-72.69|41.76|121|N|,Harunabad|punjab|PK|73.14|29.61|149|W|,Harvey|IL|US|-87.65|41.61|25|N|,Hashtsal|delhi|IN|77.06|28.63|176|W|,Hasilpur|punjab|PK|72.55|29.69|168|W|,Hassan|karnataka|IN|76.1|13.01|155|W|,Hastings-Sunrise|BC|CA|-123.03|49.28|34|N|,Hat Yai|songkhla|TH|100.48|7.01|191|W|,Hathazari|chittagong|BD|91.81|22.51|498|W|,Hattiesburg|MS|US|-89.29|31.33|46|N|,Havana|havana|CU|-82.38|23.13|2163|W|havanna;hawana;l avana;la habana;la havane,Haverhill|MA|US|-71.08|42.78|62|N|,Havertown|PA|US|-75.31|39.98|50|N|,Hawai'i Kai|HI|US|-157.7|21.3|30|N|,Hawalli|hawalli|KW|48.03|29.33|164|W|havalli,Hawthorne|CA|US|-118.35|33.92|88|N|,Hayward|CA|US|-122.08|37.67|158|NW|,Hayy Khilda|amman|JO|35.84|31.99|251|W|,Hazaribagh|jharkhand|IN|85.36|23.99|153|W|hazaribag,Hazelwood|MO|US|-90.37|38.77|25|N|,Hebi|henan|CN|114.29|35.73|634|W|che pi,Hebron|west bank|PS|35.09|31.53|160|W|el halil;hebrom,Hechi|guangxi|CN|108.08|24.69|330|W|,Hechuan|chongqing|CN|106.26|29.99|377|W|,Hefei|anhui|CN|117.28|31.86|5050|W|che fej,Hegang|heilongjiang|CN|130.29|47.35|743|W|che kang,Heidelberg|baden wurttemberg|DE|8.69|49.41|143|W|edelberga;heidelberga,Heihe|heilongjiang|CN|127.49|50.24|223|W|chej che,Hejiang|sichuan|CN|105.83|28.81|137|W|,Helena|MT|US|-112.04|46.59|32|N|,Hell's Kitchen|NY|US|-73.99|40.76|45|N|la cocina del infierno;midtown west,Helsinki|uusimaa|FI|24.94|60.17|658|W|helsingfors;helsinky;helsinquia;khel sinki,Hemet|CA|US|-116.97|33.75|83|N|,Hempstead|NY|US|-73.62|40.71|55|N|,Henderson|NV|US|-114.98|36.04|285|NW|,Henderson|KY|US|-87.59|37.84|28|N|,Hendersonville|TN|US|-86.62|36.3|56|N|,Hengshan|heilongjiang|CN|130.9|45.21|164|W|,Hengshui|hebei|CN|115.68|37.74|522|W|cheng suej,Hengyang|hunan|CN|112.62|26.89|1075|W|cheng jang;hanh duong,Henrietta|NY|US|-77.61|43.06|42|N|,Hepo|guangdong|CN|115.83|23.43|131|W|,Hepu|guangxi|CN|109.2|21.66|192|W|,Herat|herat|AF|62.2|34.35|574|W|,Hercules|CA|US|-122.29|38.02|25|N|,Hermitage|TN|US|-86.62|36.2|37|N|,Hermosillo|MX26|MX|-110.97|29.09|812|NW|,Herne|north rhine westphalia|DE|7.23|51.54|172|W|,Heroica Caborca|MX26|MX|-112.16|30.72|59|N|caborca,Heroica Ciudad de Juchitan de Zaragoza|MX20|MX|-95.02|16.43|88|N|juchitan de zaragoza;juchitan,Heroica Guaymas|MX26|MX|-110.9|27.92|117|N|guaymas,Heroica Matamoros|MX28|MX|-97.5|25.88|510|NW|matamoros,Heroica Zitacuaro|MX16|MX|-100.36|19.44|84|N|,Herriman|UT|US|-112.03|40.51|30|N|,Heshan|hunan|CN|112.35|28.57|1249|W|,Hesperia|CA|US|-117.3|34.43|93|N|,Hetauda|bagmati province|NP|85.03|27.43|195|W|,Heyuan|guangdong|CN|114.68|23.73|463|W|che juan;ha nguyen,Heze|shandong|CN|115.47|35.24|1346|W|che ce,Hezhou|guangxi|CN|111.57|24.4|1005|W|che cou,Hialeah|FL|US|-80.28|25.86|237|NW|,Hickory|NC|US|-81.34|35.73|40|N|,Hicksville|NY|US|-73.53|40.77|41|N|,Hidalgo del Parral|MX06|MX|-105.67|26.93|104|N|parral,Higashihiroshima|hiroshima|JP|132.74|34.41|196|W|,Higashimurayama|tokyo|JP|139.47|35.75|151|W|,Higashiosaka|osaka|JP|135.58|34.67|493|W|,High Point|NC|US|-80.01|35.96|110|N|,High Wycombe|england|GB|-0.75|51.63|133|W|,Highland|CA|US|-117.21|34.13|54|N|,Highland Park|IL|US|-87.8|42.18|29|N|,Highlands Ranch|CO|US|-104.97|39.55|96|N|,Hilliard|OH|US|-83.16|40.03|33|N|,Hillsboro|OR|US|-122.99|45.52|102|N|,Hillsborough|NJ|US|-74.63|40.48|38|N|,Hilo|HI|US|-155.09|19.73|43|N|baie de hilo,Hilton Head|SC|US|-80.75|32.22|37|N|hilton head island,Hilton Head Island|SC|US|-80.74|32.19|40|N|ile de hilton head,Himeji|hyogo|JP|134.7|34.82|530|W|,Hindupur|andhra pradesh|IN|77.49|13.83|151|W|,Hinesville|GA|US|-81.6|31.85|33|N|,Hino|tokyo|JP|139.4|35.67|190|W|,Hinthada|ayeyarwady|MM|95.46|17.65|134|W|henzada,Hirakata|osaka|JP|135.65|34.81|406|W|,Hiratsuka|kanagawa|JP|139.34|35.33|258|W|,Hirosaki|aomori|JP|140.47|40.59|168|W|,Hiroshima|hiroshima|JP|132.45|34.4|1200|W|hiroshima shi;hiroshimashi;hiroszima;hiroxima;hirosima,Hisar|haryana|IN|75.72|29.15|307|W|,Hitachi|ibaraki|JP|140.65|36.6|174|W|,Hitachi-Naka|ibaraki|JP|140.53|36.4|156|W|,Hlaingthaya|yangon|MM|96.07|16.85|687|W|,Ho|volta|GH|0.47|6.6|130|W|,Ho Chi Minh City|ho chi minh city hcmc|VN|106.63|10.82|14002|W|ho chi minh stadt;ho chi minh ville;hcmv;tphcm;cidade de ho chi minh;ciudad ho chi minh;ho chi minh;ho chi minh byen;ho chi minh staden;ho chi minhstad;ho ci minovo mesto;saigon;sai gon,Hoa Thanh|tay ninh|VN|106.13|11.29|147|W|,Hoan Kiem|hanoi|VN|105.85|21.03|135|W|,Hobart|tasmania|AU|147.33|-42.88|254|W|,Hobart|IN|US|-87.26|41.53|28|N|,Hobbs|NM|US|-103.14|32.7|38|N|,Hoboken|NJ|US|-74.03|40.74|53|N|,Hoffman Estates|IL|US|-88.08|42.04|52|N|,Hohhot|inner mongolia|CN|111.65|40.81|2350|W|choch chot;huhhot;kweisui,Hoji ya Henda|luanda|AO|13.29|-8.81|642|W|,Holbrook|NY|US|-73.08|40.81|27|N|,Holguin|holguin province|CU|-76.26|20.89|319|W|,Holladay|UT|US|-111.82|40.67|30|N|,Holland|MI|US|-86.11|42.79|33|N|,Hollister|CA|US|-121.4|36.85|37|N|,Holly Springs|NC|US|-78.83|35.65|31|N|,Hollywood|CA|US|-118.33|34.1|167|NW|,Hollywood|FL|US|-80.15|26.01|149|NW|,Holmesburg|PA|US|-75.03|40.04|28|N|,Holon|tel aviv|IL|34.78|32.01|196|W|cholon;jolon,Holyoke|MA|US|-72.62|42.2|40|N|,Homestead|FL|US|-80.48|25.47|80|N|,Homewood|AL|US|-86.8|33.47|25|N|,Homs|homs|SY|36.73|34.72|775|W|hims;hums;humus,Homyel'|homyel voblasc|BY|30.98|52.43|501|W|homel;homiel;gomel,Honcho|chiba|JP|139.99|35.7|644|W|funabashi,Hong Kong||HK|114.17|22.28|7396|W|hongkong;victoria,Hong Kong Island||HK|114.18|22.26|1195|W|hong kong,Honggang|heilongjiang|CN|124.88|46.4|147|W|,Hongkou|shanghai|CN|121.49|31.25|687|W|,Honolulu|HI|US|-157.86|21.31|350|NW|,Hoofddorp|north holland|NL|4.69|52.3|132|W|,Hoover|AL|US|-86.81|33.41|84|N|,Hopkinsville|KY|US|-87.49|36.87|32|N|,Horlivka|donetsk|UA|38.02|48.3|239|W|gorlowka;gorlovka;horliwka,Horn Lake|MS|US|-90.03|34.96|26|N|,Horta-Guinardo|catalonia|ES|2.17|41.42|168|W|,Hortaleza|madrid|ES|-3.64|40.47|161|W|,Hortolandia|sao paulo|BR|-47.22|-22.86|236|W|,Hosa'ina|central ethiopia regional state|ET|37.85|7.55|188|W|,Hosapete|karnataka|IN|76.39|15.27|206|W|hospet,Hoshiarpur|punjab|IN|75.91|31.54|168|W|,Hosur|tamil nadu|IN|77.83|12.74|229|W|,Hot Springs|AR|US|-93.06|34.5|35|N|,Hougang New Town||SG|103.89|1.36|227|W|hougang,Houma|LA|US|-90.72|29.6|34|N|,Houston|TX|US|-95.36|29.76|2314|NW|,Howard Beach|NY|US|-73.84|40.66|26|N|,Howrah|west bengal|IN|88.32|22.58|1027|W|haora,Hrodna|grodnenskaya|BY|23.83|53.68|363|W|goradnia;grodno,Hsinchu|taiwan|TW|120.97|24.8|453|W|kota hsinchu;sin cu;tan truc;xinzhu,Huadian|jilin|CN|126.74|42.97|139|W|,Huai'an|jiangsu|CN|119.02|33.59|2494|W|chuaj an;huaiyin,Huaibei|anhui|CN|116.79|33.97|1113|W|chuaj pej,Huaihua|hunan|CN|110|27.56|552|W|chuaj chua;hoai hoa,Huainan|anhui|CN|117|32.63|1666|W|,Huamantla|MX29|MX|-97.93|19.31|51|N|,Huambo|huambo|AO|15.74|-12.78|595|W|,Huancayo|junin|PE|-75.21|-12.07|456|W|,Huanggang|hubei|CN|114.87|30.45|366|W|chuang kang;hoang cuong;hwang chau;hwang chow;hwangchow;wangchau;wangchou,Huanggang|guangdong|CN|117|23.68|225|W|,Huangpu|shanghai|CN|121.48|31.24|504|W|,Huangshan|anhui|CN|118.31|29.71|460|W|chuang san;hoang son;huangshan city,Huangshi|hubei|CN|115.05|30.25|688|W|chuang s,Huanuco|huanuco department|PE|-76.24|-9.93|196|W|,Huatabampo|MX26|MX|-109.64|26.83|30|N|,Huatusco|MX30|MX|-96.97|19.15|31|N|,Huauchinango|MX21|MX|-98.05|20.17|56|N|,Huayin|shaanxi|CN|110.07|34.57|242|W|,Hub|balochistan|PK|66.89|25.03|195|W|,Hubballi|karnataka|IN|75.13|15.35|943|W|hubli,Huber Heights|OH|US|-84.12|39.84|38|N|,Huddersfield|england|GB|-1.78|53.65|149|W|,Hue|thua thien hue province|VN|107.6|16.46|1380|W|,Huejotzingo|MX21|MX|-98.41|19.16|25|N|,Huejutla de Reyes|MX13|MX|-98.42|21.14|40|N|,Huelva|andalusia|ES|-6.94|37.27|144|W|,Hugli|west bengal|IN|88.4|22.91|177|W|,Huimanguillo|MX27|MX|-93.39|17.83|27|N|,Huinong|ningxia|CN|106.77|39.23|136|W|,Huixing|chongqing|CN|106.61|29.68|186|W|,Huixquilucan|MX15|MX|-99.35|19.36|124|N|,Huixtla|MX05|MX|-92.46|15.14|32|N|,Huizhou|guangdong|CN|114.42|23.11|2900|W|chuej cou,Hulan Ergi|heilongjiang|CN|123.63|47.2|265|W|,Hull|QC|CA|-75.71|45.43|63|N|,Huludao|liaoning|CN|120.84|40.75|944|W|,Hulunbuir|inner mongolia|CN|119.76|49.21|349|W|,Humen|guangdong|CN|113.67|22.82|191|W|,Hungnam|south hamgyong|KP|127.63|39.84|346|W|,Huntersville|NC|US|-80.84|35.41|52|N|,Huntington|WV|US|-82.45|38.42|48|N|,Huntington Beach|CA|US|-118|33.66|201|NW|,Huntington Park|CA|US|-118.23|33.98|59|N|,Huntington Station|NY|US|-73.41|40.85|33|N|,Huntley|IL|US|-88.43|42.17|26|N|,Hunts Point|NY|US|-73.88|40.81|27|N|,Huntsville|AL|US|-86.59|34.73|215|NW|,Huntsville|TX|US|-95.55|30.72|40|N|,Huocheng|xinjiang|CN|80.87|44.05|360|W|huocheng county,Hurghada|red sea|EG|33.81|27.26|207|W|hurgada,Hurst|TX|US|-97.17|32.82|39|N|,Hutchinson|KS|US|-97.93|38.06|41|N|,Huyen Lam Ha|lam dong|VN|108.21|11.82|144|W|lam ha;lam ha district,Huzhou|zhejiang|CN|120.09|30.87|1015|W|,Hwaseong-si|gyeonggi do|KR|126.82|37.21|640|W|hwaseong,Hyde Park|MA|US|-71.12|42.26|31|N|,Hyde Park|IL|US|-87.59|41.79|26|N|,Hyderabad|telangana|IN|78.46|17.38|6993|W|haiderabad;hajdarabad,Hyderabad|sindh|PK|68.38|25.4|1921|W|hajdarabad;haydarabad,Hyesan|yanggang do|KP|128.18|41.4|192|W|,Iasi|iasi county|RO|27.6|47.17|378|W|jassy;jasy;yas;jassenmarkt,Ibadan|oyo state|NG|3.91|7.38|3649|W|,Ibague|tolima department|CO|-75.2|4.44|529|W|,Ibaraki|osaka|JP|135.57|34.82|287|W|,Ibarra|imbabura|EC|-78.12|0.35|221|W|,Ibb|ibb governorate|YE|44.18|13.97|771|W|,Ibirite|minas gerais|BR|-44.06|-20.02|179|W|,'Ibri|ad dhahirah|OM|56.52|23.23|163|W|,Ica|ica|PE|-75.73|-14.08|282|W|ika,Ichalkaranji|maharashtra|IN|74.46|16.69|287|W|,Icheon-si|gyeonggi do|KR|127.44|37.28|196|W|icheon,Ichihara|chiba|JP|140.08|35.52|283|W|,Ichikawa|chiba|JP|139.91|35.73|496|W|,Ichinomiya|aichi|JP|136.8|35.3|380|W|owari ichinomiya,Idaho Falls|ID|US|-112.03|43.47|59|N|,Idku|beheira|EG|30.3|31.31|177|W|,Ifakara|morogoro|TZ|36.68|-8.13|205|W|,Igboho|oyo state|NG|3.76|8.84|136|W|,Iguala de la Independencia|MX12|MX|-99.54|18.35|118|N|,Iguatemi|sao paulo|BR|-46.43|-23.61|149|W|,Ijebu Ode|ogun state|NG|3.92|6.82|360|W|,Ijero-Ekiti|ekiti state|NG|5.07|7.82|167|W|,Ikare|ondo state|NG|5.75|7.53|465|W|,Ikeja|lagos|NG|3.34|6.6|313|W|,Ikire|osun state|NG|4.19|7.37|222|W|,Ikirun|osun state|NG|4.67|7.91|134|W|,Ikot Ekpene|akwa ibom state|NG|7.71|5.18|254|W|,Iksan|jeollabuk do|KR|126.95|35.94|307|W|,Ila Orangun|osun state|NG|4.9|8.02|179|W|,Ilagan|cagayan valley|PH|121.89|17.15|164|W|,Ilam|ilam province|IR|46.42|33.64|140|W|,Ile-Ife|osun state|NG|4.56|7.48|560|W|,Ilesa|osun state|NG|4.74|7.63|325|W|,Ilford|england|GB|0.07|51.56|168|W|,Ilheus|bahia|BR|-39.03|-14.8|189|W|sao jorge dos ilheos,Iligan|northern mindanao|PH|124.24|8.23|342|W|,Iligan City|soccsksargen|PH|124.4|8.25|312|W|,Iloilo|western visayas|PH|122.56|10.7|473|W|iloilo city,Ilorin|kwara state|NG|4.54|8.5|1080|W|,Imabari|ehime|JP|133|34.07|170|W|,Imperatriz|maranhao|BR|-47.49|-5.53|273|W|,Imperial Beach|CA|US|-117.11|32.58|27|N|,Imphal|manipur|IN|93.94|24.81|277|W|,Imus|calabarzon|PH|120.94|14.43|481|W|,Inazawa|aichi|JP|136.78|35.25|134|W|,Incheon|incheon|KR|126.71|37.46|3015|W|inch on;incheon si;inchon;incchon;nhan xuyen;chemulpo,Indaiatuba|sao paulo|BR|-47.21|-23.09|256|W|,Independence|MO|US|-94.42|39.09|117|N|,Independence|KY|US|-84.54|38.94|26|N|,Indian Trail|NC|US|-80.67|35.08|37|N|,Indianapolis|IN|US|-86.16|39.77|887|NW|indpls,Indio|CA|US|-116.22|33.72|87|N|,Indore|madhya pradesh|IN|75.83|22.72|1994|W|indhur,Inegol|bursa province|TR|29.51|40.08|133|W|,Inezgane|souss massa|MA|-9.54|30.36|142|W|,Inglewood|CA|US|-118.35|33.96|111|N|,Ingombota|luanda|AO|13.23|-8.82|144|W|,Inisa|osun state|NG|4.33|7.85|164|W|,Innisfil|ON|CA|-79.65|44.3|43|N|,Innsbruck|tyrol|AT|11.39|47.26|132|W|,Insein|yangon|MM|96.1|16.89|247|W|,Inver Grove Heights|MN|US|-93.04|44.85|34|N|inver grove,Iowa City|IA|US|-91.53|41.66|74|N|,Ipatinga|minas gerais|BR|-42.54|-19.47|235|W|,Ipoh|perak|MY|101.08|4.58|759|W|,Ipswich|england|GB|1.16|52.06|178|W|,Iquique|tarapaca|CL|-70.15|-20.21|199|W|,Iquitos|loreto|PE|-73.25|-3.75|377|W|,Irakleion|crete|GR|25.14|35.33|137|W|heraklion;candia;heracliao;heraclion;herakleion;iraklio;iraklion;iraclio;kandiye,Iranshahr|sistan and baluchestan|IR|60.68|27.2|131|W|,Irapuato|MX11|MX|-101.36|20.67|380|NW|,Irbid|irbid|JO|35.85|32.56|569|W|,Irewe|lagos|NG|3.14|6.42|139|W|,Iringa|iringa|TZ|35.7|-7.77|202|W|,Irkutsk|irkutsk oblast|RU|104.29|52.3|623|W|irkoetsk;irkoutsk;irkuck;irkutsc;irkutk,Irondequoit|NY|US|-77.58|43.21|51|N|,Iruma|saitama|JP|139.37|35.82|147|W|,Irvine|CA|US|-117.82|33.67|256|NW|,Irving|TX|US|-96.95|32.81|236|NW|,Irving Park|IL|US|-87.74|41.95|56|N|,Irvington|NJ|US|-74.23|40.73|61|N|,Isahaya|nagasaki|JP|130.04|32.84|135|W|,Ise-Ekiti|ekiti state|NG|5.42|7.46|190|W|,Isesaki|gunma|JP|139.2|36.32|211|W|,Iseyin|oyo state|NG|3.6|7.97|365|W|,Isfahan|isfahan|IR|51.67|32.65|1547|W|esfahan;ispahan;kota isfahan,Isfara|sughd|TJ|70.63|40.13|274|W|,Ishinomaki|miyagi|JP|141.3|38.42|140|W|,Isidro Casanova|buenos aires|AR|-58.59|-34.7|131|W|,Isiro|haut uele|CD|27.62|2.77|255|W|,Iskandar Puteri|johor|MY|103.62|1.39|575|W|,Iskenderun|hatay|TR|36.17|36.59|251|W|alejandreta;aleksandretta;alexandretta,Isla|MX30|MX|-95.53|18.03|26|N|,Islamabad|islamabad|PK|73.04|33.72|601|W|islamabade,Islington|england|GB|-0.1|51.54|319|W|,Islington-City Centre West|ON|CA|-79.54|43.63|43|N|,Ismailia|ismailia|EG|32.27|30.6|429|W|el ismalia;ismalia;ismailija;ismailiye,Isparta|isparta|TR|30.55|37.76|172|W|,Issaquah|WA|US|-122.03|47.53|36|N|,Istanbul|istanbul|TR|28.95|41.01|15701|W|estambul;istambul;stambul;byzance;byzantion;byzantium;constantinopla;constantinople;constantinopolen;costantinopoli;konstantinopel;micklagard,Istaravshan|sughd|TJ|69|39.91|273|W|istaravchan;istaravsjan;istaravsan;istarawschan;istarawshan;istarawszan,Itabashi|tokyo|JP|139.71|35.75|584|W|tabashi city,Itaborai|rio de janeiro|BR|-42.86|-22.74|240|W|,Itabuna|bahia|BR|-39.28|-14.79|196|W|,Itaguei|antioquia|CO|-75.6|6.18|281|W|itagui,Itaim Paulista|sao paulo|BR|-46.39|-23.5|205|W|,Itaituba|para|BR|-55.98|-4.28|135|W|,Itajai|santa catarina|BR|-48.66|-26.91|294|W|itajahy,Itami|hyogo|JP|135.4|34.78|198|W|,Itapecerica da Serra|sao paulo|BR|-46.85|-23.72|163|W|,Itapetininga|sao paulo|BR|-48.05|-23.59|164|W|,Itapevi|sao paulo|BR|-46.93|-23.55|240|W|,Itapipoca|ceara|BR|-39.58|-3.49|138|W|,Itaquaquecetuba|sao paulo|BR|-46.35|-23.49|369|W|,Itaquera|sao paulo|BR|-46.44|-23.53|210|W|,Ithaca|NY|US|-76.5|42.44|30|N|,Itu|sao paulo|BR|-47.3|-23.26|175|W|,Ituzaingo|corrientes|AR|-56.69|-27.59|168|W|,Ivano-Frankivsk|ivano frankivsk|UA|24.71|48.92|238|W|ivano frankivs k;iwano frankiwsk;stanislaopoli;stanislau;stanislaw;stanislawow,Ivanovo|ivanovo oblast|RU|40.97|57|406|W|iwanowo,Ivory Park|gauteng|ZA|28.2|-26|184|W|,Iwaki|fukushima|JP|140.88|37.05|357|W|,Iwata|shizuoka|JP|137.85|34.7|166|W|,Iwo|osun state|NG|4.18|7.64|250|W|,Ixmiquilpan|MX13|MX|-99.22|20.48|34|N|,Ixtaczoquitlan|MX30|MX|-97.06|18.85|26|N|,Ixtapa|MX14|MX|-105.21|20.72|29|N|,Ixtapa-Zihuatanejo|MX12|MX|-101.55|17.64|67|N|jose azueta;zihuatanejo,Ixtapaluca|MX15|MX|-98.88|19.32|322|NW|iztapaluca,Ixtepec|MX20|MX|-95.1|16.56|25|N|san geronimo ixtepec;ciudad ixtepec,Izhevsk|udmurtiya republic|RU|53.2|56.85|648|W|izjevsk;ijevsk;ischewsk;izewsk;izevsk,Izmir|izmir province|TR|27.14|38.41|2938|W|esmirna;smirne,Izmit|kocaeli|TR|29.93|40.76|196|W|nicomedia;nicomedie;nikomedia,Iztacalco|MX09|MX|-99.1|19.4|384|NW|,Iztapalapa|MX09|MX|-99.06|19.36|1835|NW|delegacion iztapalapa;delegazione iztapalapa,Izucar de Matamoros|MX21|MX|-98.46|18.6|42|N|izucar,Izumi|osaka|JP|135.43|34.48|184|W|,Izumo|shimane|JP|132.77|35.37|172|W|,Jabalpur|madhya pradesh|IN|79.95|23.17|1081|W|dzabalpur,Jabalya|gaza strip|PS|34.48|31.53|168|W|jabalia,Jabaquara|sao paulo|BR|-46.65|-23.65|214|W|,Jaboatao dos Guararapes|pernambuco|BR|-35.01|-8.11|644|W|,Jacarei|sao paulo|BR|-45.97|-23.31|250|W|,Jackson|MS|US|-90.18|32.3|153|NW|,Jackson|TN|US|-88.81|35.61|66|N|,Jackson|NJ|US|-74.86|39.78|54|N|,Jackson|MI|US|-84.4|42.25|33|N|,Jackson Heights|NY|US|-73.89|40.76|67|N|,Jacksonville|FL|US|-81.66|30.33|1009|NW|,Jacksonville|NC|US|-77.43|34.75|67|N|,Jacksonville|AR|US|-92.11|34.87|28|N|,Jacmel|sud est|HT|-72.54|18.24|137|W|yaquimo,Jacobabad|sindh|PK|68.44|28.28|219|W|khangarh,Jacona de Plancarte|MX16|MX|-102.31|19.96|53|N|,Jaffna|northern province|LK|80.01|9.67|169|W|dzafna,Jahrom|fars|IR|53.56|28.5|141|W|,Jaigaon|west bengal|IN|89.38|26.85|158|W|,Jaipur|rajasthan|IN|75.79|26.92|3046|W|dzajpur,Jajmau|uttar pradesh|IN|80.41|26.43|652|W|,Jakarta|jakarta|ID|106.85|-6.21|8540|W|cakarta;djakarta;dzakarta;giacarta;yakarta;batavia;sunda kelapa;sundapura,Jalalabad|nangarhar|AF|70.45|34.43|271|W|celalabad;dschalalabad;dzalalabad,Jalalpur Jattan|punjab|PK|74.21|32.64|146|W|,Jalalpur Pirwala|punjab|PK|71.22|29.51|500|W|dzalalpur pirwala,Jalandhar|punjab|IN|75.58|31.33|868|W|dzalandhar,Jalapa|jalapa|GT|-89.99|14.64|159|W|,Jalgaon|maharashtra|IN|75.57|21|460|W|,Jalna|maharashtra|IN|75.89|19.84|285|W|,Jaltipan de Morelos|MX30|MX|-94.71|17.97|32|N|,Jamaica|NY|US|-73.81|40.69|216|NW|,Jamaica Plain|MA|US|-71.12|42.31|37|N|,Jamalpur|mymensingh division|BD|89.95|24.92|167|W|,Jambi City|jambi|ID|103.62|-1.6|635|W|jambi,Jamestown|NY|US|-79.24|42.1|30|N|,Jammu|jammu and kashmir|IN|74.86|32.74|576|W|dzammu,Jamnagar|gujarat|IN|70.07|22.47|600|W|dzamnagar,Jampur|punjab|PK|70.6|29.64|155|W|,Jamshedpur|jharkhand|IN|86.19|22.8|1339|W|cemsidpur;dzamsedpur,Jamuria|west bengal|IN|87.08|23.7|160|W|,Janakpur|madhesh|NP|85.93|26.73|195|W|janakpur dham,Janesville|WI|US|-89.02|42.68|64|N|,Janzur|al jafarah|LY|13.02|32.82|154|W|,Jaragua|sao paulo|BR|-46.74|-23.44|211|W|,Jaragua do Sul|santa catarina|BR|-49.07|-26.49|199|W|,Jaranwala|punjab|PK|73.42|31.33|150|W|,Jardim Angela|sao paulo|BR|-46.77|-23.72|311|W|,Jardim Sao Luis|sao paulo|BR|-46.74|-23.68|259|W|,Jardines de la Silla|MX19|MX|-100.19|25.63|53|N|,Jau|sao paulo|BR|-48.56|-22.3|133|W|,Jaunpur|uttar pradesh|IN|82.69|25.75|169|W|jawnpur,Jayapura|papua|ID|140.72|-2.53|410|W|jaya pura;kota jayapura;port numbay;hollandia;noordwijk,Jebel Ali|dubai|AE|55.11|25|210|W|,Jeddah|mecca region|SA|39.19|21.49|4697|W|cidde;djedda;djeddah;dschidda;dzudda;dzidda;jedda;jidda;jida;yida;yidda,Jefferson City|MO|US|-92.17|38.58|42|N|kota jefferson,Jeffersontown|KY|US|-85.56|38.19|26|N|,Jeffersonville|IN|US|-85.74|38.28|46|N|,Jeju City|jeju do|KR|126.52|33.51|488|W|czedzu;jeju;jeju sehri;kota jeju,Jember|east java|ID|113.7|-8.17|298|W|,Jeongeup|jeollabuk do|KR|126.92|35.6|139|W|,Jeonju|jeollabuk do|KR|127.15|35.82|638|W|chonju;condzu,Jepara|central java|ID|110.67|-6.59|1257|W|,Jerez de Garcia Salinas|MX32|MX|-102.99|22.65|43|N|,Jerez de la Frontera|andalusia|ES|-6.14|36.69|212|W|jerez;xeres,Jersey City|NJ|US|-74.08|40.73|264|NW|,Jerusalem|jerusalem|IL|35.22|31.77|971|W|gerusalemme;jerozolima;jerusalen;jeruzalem;al quds;ariel;ierusalim;kudus;yerusalem;zion,Jessore|khulna division|BD|89.21|23.17|243|W|,Jesus Maria|MX01|MX|-102.34|21.96|43|N|,Jhang Sadr|punjab|PK|72.32|31.27|606|W|jhang;jhang sadar,Jhansi|uttar pradesh|IN|78.58|25.46|412|W|,Jhelum|punjab|PK|73.73|32.93|190|W|alessandria bucefala;dzhelam;jhelam,Ji'an|jiangxi|CN|114.98|27.12|538|W|,Ji Parana|rondonia|BR|-61.95|-10.89|140|W|,Jiading|shanghai|CN|121.24|31.39|1886|W|,Jiagedaqi|inner mongolia|CN|124.12|50.42|135|W|jagdaqi,Jiamusi|heilongjiang|CN|130.31|46.8|549|W|tia mu s,Jiangmen|guangdong|CN|113.08|22.58|1795|W|giang mon;kongmoon;tiang men,Jiangyin|jiangsu|CN|120.26|31.91|1779|W|kiang ying,Jianshui|yunnan|CN|101.22|24.28|490|W|,Jiaojiang|zhejiang|CN|121.47|28.7|470|W|,Jiaozhou|shandong|CN|120|36.28|619|W|,Jiaozuo|henan|CN|113.24|35.24|865|W|tieu tac;tiao cuo,Jiashan|zhejiang|CN|120.93|30.85|137|W|,Jiawang|jiangsu|CN|117.44|34.43|133|W|,Jiaxing|zhejiang|CN|120.75|30.75|1180|W|gia hung;tia sing,Jiayuguan|gansu|CN|98.29|39.81|231|W|tia ju kuan,Jiazi|guangdong|CN|116.07|22.88|130|W|,Jieshi|guangdong|CN|115.83|22.81|137|W|,Jieshou|anhui|CN|115.36|33.26|141|W|,Jieyang|guangdong|CN|116.37|23.54|1899|W|tie jang,Jijel|jijel|DZ|5.76|36.82|131|W|dzidzili;yiyel;jijelli,Jijiang|chongqing|CN|106.25|29.29|196|W|,Jijiga|somali|ET|42.8|9.35|483|W|djidjiga;dschidschiga;dzidziga,Jilin|jilin|CN|126.56|43.85|1895|W|jilin city;ciudad de jilin;cat lam;kota jilin;ti lin,Jimeta|adamawa|NG|12.46|9.28|248|W|,Jimma|oromiya|ET|36.83|7.67|250|W|dzimma;gimma;jima,Jinan|shandong|CN|117|36.67|4335|W|ti nan,Jinchang|gansu|CN|102.19|38.5|228|W|kim xuong;tin cchang,Jincheng|shanxi|CN|112.83|35.5|476|W|,Jind|haryana|IN|76.32|29.32|167|W|,Jing'an|shanghai|CN|121.42|31.22|936|W|,Jing'an|guangdong|CN|113.29|22.21|186|W|,Jingdezhen|jiangxi|CN|117.21|29.29|473|W|,Jinghong|yunnan|CN|100.77|22|205|W|,Jingling|hubei|CN|113.1|30.65|224|W|,Jingmen|hubei|CN|112.2|31.03|632|W|kinh mon;ting men,Jingzhou|hubei|CN|112.19|30.35|1052|W|kinh chau;ting cou,Jinhua|zhejiang|CN|119.64|29.11|1463|W|kim hoa;tin chua,Jining|shandong|CN|116.58|35.41|1241|W|ti ning,Jining|inner mongolia|CN|113.11|41.03|258|W|,Jinjiang|fujian|CN|118.57|24.82|1416|W|,Jinshan|shanghai|CN|121.29|30.84|822|W|,Jinshanlu|xinjiang|CN|88.13|47.85|190|W|altay,Jinzhong|shanxi|CN|112.75|37.68|1226|W|,Jinzhou|liaoning|CN|121.14|41.11|604|W|tin cou,Jiroft|kerman|IR|57.74|28.68|130|W|,Jiujiang|jiangxi|CN|116|29.7|1164|W|ciuciang;tiou tiang,Jiuquan|gansu|CN|98.52|39.74|428|W|tiou cchuan,Jiutai|jilin|CN|125.83|44.15|175|W|,Jiutepec|MX17|MX|-99.18|18.88|215|NW|,Jixi|heilongjiang|CN|130.96|45.29|403|W|ke tay;ti si,Jiyuan|henan|CN|112.59|35.09|242|W|,Jizhou|hebei|CN|115.57|37.55|362|W|,Jizzax|jizzakh region|UZ|67.83|40.13|179|W|cizzak;djizak;djizaks;dschizak;dzjizak;dzyzak;jizzak;jizzakh,Joao Pessoa|paraiba|BR|-34.86|-7.12|817|W|,Jodhpur|rajasthan|IN|73.01|26.27|1056|W|dzodhpur;dzodpur,Joetsu|niigata|JP|138.24|37.15|189|W|,Johannesburg|gauteng|ZA|28.04|-26.2|9418|W|johannesbourg;jo anna;joanesburgo;johannesburgo,Johns Creek|GA|US|-84.2|34.03|83|N|,Johnson City|TN|US|-82.35|36.31|66|N|,Johnston|RI|US|-71.51|41.82|29|N|,Johor Bahru|johor|MY|103.76|1.47|858|W|johor baharu,Joint Base Pearl Harbor Hickam|HI|US|-157.95|21.35|42|N|,Joinville|santa catarina|BR|-48.85|-26.3|664|W|,Joliet|IL|US|-88.08|41.53|147|NW|,Joliette|QC|CA|-73.42|46.02|34|N|,Jomvu|mombasa county|KE|39.61|-3.99|163|W|,Jonesboro|AR|US|-90.7|35.84|73|N|,Jonquiere|QC|CA|-71.25|48.42|54|N|,Joplin|MO|US|-94.51|37.08|51|N|,Jos|plateau state|NG|8.89|9.93|1040|W|dzos,Jose C. Paz|buenos aires|AR|-58.77|-34.52|230|W|,Jose Mariano Jimenez|MX06|MX|-104.92|27.13|34|N|,Juazeiro|bahia|BR|-40.5|-9.41|256|W|,Juazeiro do Norte|ceara|BR|-39.32|-7.21|305|W|,Juba|central equatoria|SS|31.58|4.85|450|W|djouba;dschuba,Juiz de Fora|minas gerais|BR|-43.35|-21.76|540|W|,Juja|kiambu county|KE|37.01|-1.1|156|W|,Juliaca|puno|PE|-70.13|-15.5|245|W|,Junagadh|gujarat|IN|70.46|21.52|319|W|,Jundiai|sao paulo|BR|-46.88|-23.19|443|W|,Juneau|AK|US|-134.42|58.3|31|N|,Jupiter|FL|US|-80.09|26.93|62|N|,Jurong Town||SG|103.72|1.33|262|W|,Jurong West||SG|103.72|1.35|253|W|,Jutiapa|jutiapa|GT|-89.89|14.28|145|W|,Juventino Rosas|MX11|MX|-101|20.64|42|N|,Jyvaeskylae|central finland|FI|25.72|62.24|148|W|jyvaskyla,Kabankalan|western visayas|PH|122.81|9.98|210|W|,Kabin Buri|prachin buri|TH|101.72|13.95|140|W|,Kabinda|lomami|CD|24.48|-6.14|219|W|,Kabul|kabul|AF|69.17|34.53|4434|W|cabul;kaboel;kaboul;kabil,Kabwe|central province|ZM|28.45|-14.45|288|W|,Kadapa|andhra pradesh|IN|78.82|14.48|344|W|cuddapah,Kadoma|osaka|JP|135.57|34.74|131|W|,Kaduna|kaduna state|NG|7.44|10.53|1850|W|,Kaech'on|south pyongan|KP|125.89|39.7|319|W|,Kaesong|kaesong|KP|126.55|37.97|338|W|,Kafr ash Shaykh|kafr el sheikh|EG|30.94|31.11|194|W|,Kafrul|dhaka division|BD|90.37|23.79|339|W|,Kagoshima|kagoshima|JP|130.55|31.57|595|W|kagosima,Kahama|shinyanga|TZ|32.6|-3.83|453|W|,Kahramanmaras|kahramanmaras|TR|36.93|37.58|384|W|,Kahului|HI|US|-156.47|20.89|26|N|,Kaifeng|henan|CN|114.31|34.8|1451|W|kai feng;kchaj feng;khai phong,Kaili|guizhou|CN|107.98|26.59|275|W|,Kailua|HI|US|-157.74|21.4|38|N|,Kairouan|kairouan|TN|10.1|35.68|139|W|cairuao;kairuan;kayravan;qairawan;qayrawan,Kaithal|haryana|IN|76.4|29.8|144|W|,Kaiyuan|yunnan|CN|103.3|23.7|198|W|,Kajang|selangor|MY|101.79|2.99|236|W|,Kajansi|central region|UG|32.53|0.22|135|W|,Kakamega|kakamega county|KE|34.75|0.28|1867|W|,Kakamigahara|gifu|JP|136.87|35.42|144|W|,Kakinada|andhra pradesh|IN|82.24|16.96|384|W|,Kakogawacho-honmachi|hyogo|JP|134.83|34.77|271|W|kakogawa,Kalaban Koro|koulikoro|ML|-8.03|12.57|148|W|,Kalaburagi|karnataka|IN|76.84|17.34|543|W|gulbarga;kalaburgi,Kalamazoo|MI|US|-85.59|42.29|76|N|,Kalemie|tanganyika|CD|29.19|-5.95|160|W|,Kalemyo|sagaing region|MM|94.06|23.19|348|W|,Kalihi-Palama|HI|US|-157.88|21.33|43|N|kalihi,Kaliningrad|kaliningrad oblast|RU|20.51|54.71|475|W|krolewiec;caliningrado;kaliningrado;konigsberg;konigsberg in preussen,Kalininskiy|st petersburg|RU|30.39|60|504|W|,Kallakurichi|tamil nadu|IN|78.96|11.73|1682|W|,Kalol|gujarat|IN|72.5|23.25|134|W|,Kaluga|kaluga oblast|RU|36.27|54.53|340|W|kaloega;kalouga,Kalyan|maharashtra|IN|73.14|19.24|1262|W|,Kamakura|kanagawa|JP|139.55|35.31|172|W|,Kamalia|punjab|PK|72.65|30.73|166|W|,Kamalshahr|alborz province|IR|50.87|35.86|141|W|,Kamarhati|west bengal|IN|88.37|22.67|332|W|,Kamensk-Ural'skiy|sverdlovsk oblast|RU|61.93|56.41|182|W|kamensk uralskij;kamensk uralsky;kamensk uralski,Kamina|haut lomami|CD|25|-8.74|200|W|,Kamirenjaku|tokyo|JP|139.55|35.69|195|W|,Kamloops|BC|CA|-120.32|50.67|104|N|,Kamoke|punjab|PK|74.22|31.98|292|W|,Kampala|central region|UG|32.58|0.32|1680|W|campala,Kampong Baharu Cheras Batu Sebelas|selangor|MY|101.77|3.05|232|W|,Kampong Pasir Ris||SG|103.93|1.38|144|W|,Kampung Baru Subang|selangor|MY|101.53|3.15|833|W|,Kampung Kangkar Teberau|johor|MY|103.75|1.53|412|W|,Kampung Larkin Lama|johor|MY|103.74|1.5|500|W|,Kampung Pasir Gudang Baru|johor|MY|103.88|1.47|145|W|,Kampung Sungai Ara|penang|MY|100.27|5.33|140|W|,Kampung Sungai Glugur|penang|MY|100.31|5.37|145|W|,Kamyanske|dnipropetrovsk|UA|34.61|48.52|226|W|dnieprodzierzynsk;dniprodzerzyns k;kam jans ke;kamianske;kamienskie;dniprodzerzhynsk,Kananga|kasai central|CD|22.42|-5.9|1247|W|kanange,Kanasin|MX31|MX|-89.56|20.93|77|N|,Kanata|ON|CA|-75.92|45.3|90|N|,Kanayannur|kerala|IN|76.27|9.97|851|W|,Kanazawa|ishikawa|JP|136.62|36.6|466|W|,Kanchipuram|tamil nadu|IN|79.7|12.84|221|W|kancheepuram;kancipuram;conjevaram,Kanchrapara|west bengal|IN|88.43|22.96|136|W|,Kandahar|kandahar|AF|65.71|31.61|523|W|kandehar,Kaneohe|HI|US|-157.8|21.4|34|N|,Kanggye|chagang|KP|126.59|40.97|209|W|,Kankakee|IL|US|-87.86|41.12|26|N|,Kankan|kankan region|GN|-9.31|10.39|221|W|,Kannapolis|NC|US|-80.62|35.49|46|N|,Kano|kano state|NG|8.52|12|4910|W|,Kanpur|uttar pradesh|IN|80.35|26.47|2823|W|cawnporne,Kansas City|MO|US|-94.58|39.1|475|NW|kota kansas,Kansas City|KS|US|-94.63|39.11|152|NW|,Kaohsiung|takao|TW|120.31|22.62|2737|W|kaohsiung city;cao hung;gaoxiong;takao,Kaolack|kaolack|SN|-16.07|14.15|298|W|,Kapar|selangor|MY|101.38|3.13|269|W|,Karabaglar|izmir province|TR|27.13|38.38|479|W|,Karachi|sindh|PK|67.01|24.86|11624|W|carachi;karaczi;karanchi;karatschi;karaci,Karagandy|karaganda|KZ|73.1|49.8|497|W|karaganda;qaraghandy;qaragandi,Karaikkudi|tamil nadu|IN|78.77|10.07|181|W|karaikudi,Karaj|alborz province|IR|50.99|35.83|1448|W|karadsch;karadz;kerec,Karaman|karaman|TR|33.22|37.18|175|W|,Karamay|xinjiang|CN|84.89|45.58|261|W|kelamayi,Karawalnagar|delhi|IN|77.27|28.73|224|W|,Karawang|west java|ID|107.32|-6.31|307|W|,Karbala|karbala|IQ|44.02|32.62|1218|W|kerbela;kerbala,Kariega|eastern cape|ZA|25.4|-33.76|291|W|uitenhage,Karimnagar|telangana|IN|79.13|18.44|289|W|,Kariya|aichi|JP|136.98|34.98|153|W|,Karlsruhe|baden wurttemberg|DE|8.4|49.01|283|W|,Karnal|haryana|IN|76.98|29.69|302|W|,Karnaphuli|chittagong|BD|92.23|22.69|203|W|,Karol Bagh|delhi|IN|77.19|28.65|505|W|,Karsiyaka|izmir province|TR|27.11|38.46|339|W|cordaleo;cordelio,Karur|tamil nadu|IN|78.08|10.96|234|W|,Karuri|kiambu county|KE|36.76|-1.18|194|W|,Karuri|murang a|KE|37.18|-0.7|194|W|,Kasama|northern province|ZM|31.18|-10.21|179|W|arcidiocesi di kasama,Kasangati|central region|UG|32.6|0.44|207|W|,Kashan|isfahan|IR|51.43|33.98|304|W|,Kashgar|xinjiang|CN|75.99|39.47|506|W|kachgar;kaschgar;kasgar;kaszgar,Kashiwa|chiba|JP|139.98|35.86|433|W|,Kashmar|razavi khorasan|IR|58.47|35.24|131|W|,Kassala|kassala|SD|36.4|15.45|401|W|statul kassala,Kassel|hesse|DE|9.5|51.32|197|W|cassel,Kasugai|aichi|JP|136.97|35.25|308|W|,Kasukabe|saitama|JP|139.75|35.98|229|W|,Kasulu|kigoma|TZ|30.1|-4.58|238|W|,Kasur|punjab|PK|74.45|31.12|510|W|,Katabi|central region|UG|32.47|0.08|154|W|,Kathmandu|bagmati province|NP|85.32|27.7|1442|W|katmandou;catmandu;kathmandou;katmandu,Kati|koulikoro|ML|-8.07|12.74|130|W|,Katihar|bihar|IN|87.57|25.54|240|W|,Katowice|silesia|PL|19.02|50.26|286|W|katovice;kattowitz,Katsina|katsina state|NG|7.6|12.99|670|W|,Katsushika|tokyo|JP|139.85|35.73|453|W|katsushika ku;katsushika city,Katsuta|ibaraki|JP|140.53|36.38|155|W|,Kaunas|kaunas|LT|23.91|54.9|289|W|kowno;kauen,Kawagoe|saitama|JP|139.49|35.91|354|W|,Kawaguchi|saitama|JP|139.71|35.81|607|W|,Kawanishi|hyogo|JP|135.42|34.82|155|W|,Kawasaki|kanagawa|JP|139.72|35.52|1538|W|kawasaki city,Kayes|kayes|ML|-11.44|14.45|194|W|,Kayseri|kayseri|TR|35.49|38.73|1452|W|cesarea in cappadocia,Kaysville|UT|US|-111.94|41.04|30|N|,Kazan|tatarstan republic|RU|49.12|55.79|1243|W|caza;kasan,Kearney|NE|US|-99.08|40.7|33|N|,Kearns|UT|US|-112|40.66|35|N|,Kearny|NJ|US|-74.15|40.77|42|N|,Kediri|east java|ID|112.02|-7.82|301|W|kota kediri,Keelung|taiwan|TW|121.74|25.13|362|W|chilung;co long;kota keelung;ti lung,Keizer|OR|US|-123.03|44.99|37|N|,Kelar|sulaymaniyah|IQ|45.32|34.63|250|W|,Keller|TX|US|-97.25|32.93|45|N|,Kelowna|BC|CA|-119.49|49.88|144|NW|,Kembangan||SG|103.91|1.32|130|W|,Kemerovo|kuzbass|RU|86.1|55.35|558|W|kemerowo,Ken Caryl|CO|US|-105.11|39.58|32|N|,Kendale Lakes|FL|US|-80.41|25.71|56|N|,Kendall|FL|US|-80.32|25.68|80|N|,Kendall West|FL|US|-80.44|25.71|36|N|,Kendari|southeast sulawesi|ID|122.52|-3.98|351|W|kota kendari,Kenema|eastern province|SL|-11.19|7.88|255|W|,Keng Tung|shan state|MM|99.93|21.63|171|W|,Kenitra|rabat sale kenitra|MA|-6.58|34.26|470|W|al kunajtira;kenitre,Kennedy|bogota d c|CO|-74.15|4.62|979|W|,Kenner|LA|US|-90.24|29.99|67|N|,Kennesaw|GA|US|-84.62|34.02|33|N|,Kennewick|WA|US|-119.14|46.21|78|N|,Kenosha|WI|US|-87.82|42.58|99|N|,Kensington|NY|US|-73.97|40.65|39|N|,Kensington-Cedar Cottage|BC|CA|-123.07|49.25|49|N|,Kent|WA|US|-122.23|47.38|126|N|,Kent|OH|US|-81.36|41.15|29|N|,Kentron|yerevan|AM|44.51|40.18|133|W|kentron district,Kentwood|MI|US|-85.64|42.87|51|N|,Kerch|crimea|UA|36.48|45.36|148|W|kerci;kercz;kertch;kertj;kertsch;kertsj;kerts;kerc,Kerman|kerman|IR|57.08|30.28|577|W|,Kermanshah|kermanshah province|IR|47.06|34.31|621|W|kermanschah;kirmansah;province de kermanshah;provincia de kermanshah,Kettering|OH|US|-84.17|39.69|55|N|,Kew Gardens Hills|NY|US|-73.82|40.73|37|N|,Key West|FL|US|-81.78|24.56|25|N|cayo hueso,Khabarovsk|khabarovsk|RU|135.1|48.46|618|W|chabarovsk;chabarowsk;habarovsk;jabarovsk,Khairpur Mir's|sindh|PK|68.76|27.53|191|W|khairpur,Khamis Mushait|asir region|SA|42.73|18.3|387|W|chamis muschait;chamis muszajt;hamis musayt;khamis mushayt,Khammam|telangana|IN|80.14|17.25|196|W|,Khan Yunis|gaza strip|PS|34.31|31.34|173|W|jan yunis;khan younis,Khanaqin|diyala|IQ|45.39|34.35|175|W|,Khandwa|madhya pradesh|IN|76.35|21.82|200|W|,Khanpur|punjab|PK|70.66|28.65|142|W|,Kharagpur|west bengal|IN|87.33|22.34|219|W|,Kharkiv|kharkiv|UA|36.25|49.98|1421|W|charkiv;carcovia;charkiw;charkov;charkow;harkov;harkova;jarkov;kharkov,Khartoum|khartoum|SD|32.53|15.55|1974|W|cartum;chartum;hartum;jartum;khartoem;khartum,Khartoum North|khartoum|SD|32.53|15.65|1012|W|bahri;jartum norte;khartoum nord;khartum nord,Khasnahzan|erbil|IQ|44.14|36.2|146|W|,Khemisset|rabat sale kenitra|MA|-6.07|33.82|143|W|,Khimki|moscow oblast|RU|37.43|55.9|239|W|chimki;himki;jimki,Khirdalan|abseron|AZ|49.76|40.45|196|W|hirdalan;xirdalan,Khlong Sam Wa|bangkok|TH|100.74|13.87|169|W|,Khmelnytskyi|khmelnytskyi|UA|26.98|49.42|274|W|chmel nyc kyj;chmelnyzkyj;chmielnicki;khmel nyts kyy;proscurovia;ploskurow,Khobar|eastern province|SA|50.21|26.28|165|W|al chubar;al khobar;el huber,Khomeyni Shahr|isfahan|IR|51.54|32.69|277|W|three castles,Khoroshevo-Mnevniki|moscow|RU|37.47|55.78|159|W|,Khorramabad|lorestan province|IR|48.36|33.49|329|W|,Khorramshahr|khuzestan|IR|48.18|30.44|330|W|chorramschahr;chorramszahr;chorramsahr;hurremsehr;jorramchar;koramsjar,Khouribga|beni mellal khenifra|MA|-6.91|32.88|214|W|,Khujand|sughd|TJ|69.62|40.28|191|W|choedzjand;chudschand;chudzjand;hucand;hudzand;khodjent,Khulna|khulna division|BD|89.56|22.81|1500|W|,Khuraybat as Suq|amman|JO|35.92|31.88|186|W|,Khuy|west azerbaijan|IR|44.95|38.55|198|W|,Khuzdar|balochistan|PK|66.61|27.81|218|W|,Kiambu|kiambu county|KE|36.84|-1.17|147|W|,Kibaha|pwani|TZ|38.92|-6.77|265|W|,Kiel|schleswig holstein|DE|10.13|54.32|252|W|kilonia,Kielce|swietokrzyskie|PL|20.63|50.87|192|W|,Kigali|kigali|RW|30.06|-1.95|1132|W|,Kigoma|kigoma|TZ|29.63|-4.88|232|W|,Kikolo|luanda|AO|13.33|-8.78|728|W|quicolo,Kikuyu|kiambu county|KE|36.66|-1.25|323|W|,Kikwit|kwilu|CD|18.82|-5.04|509|W|,Kilamba|luanda|AO|13.28|-8.85|237|W|kilamba kiaxi,Killarney|BC|CA|-123.04|49.23|29|N|,Killeen|TX|US|-97.73|31.12|140|NW|,Kima Kieza|luanda|AO|13.3|-8.83|428|W|quima quieza,Kimberley|northern cape|ZA|24.76|-28.73|142|W|,Kimhae|gyeongsangnam do|KR|128.88|35.23|531|W|gimhae,Kindia|kindia|GN|-12.87|10.06|161|W|,Kindu|maniema|CD|25.92|-2.94|234|W|,Kingman|AZ|US|-114.05|35.19|28|N|,Kings Bridge|NY|US|-73.91|40.88|75|N|,Kingsport|TN|US|-82.56|36.55|53|N|,Kingston|kingston|JM|-76.79|18|937|W|,Kingston|ON|CA|-76.48|44.23|132|NW|cataraqui,Kingston upon Hull|england|GB|-0.34|53.74|314|W|hull,Kingsville|TX|US|-97.86|27.52|26|N|,Kinshasa|kinshasa|CD|15.31|-4.33|16000|W|kinsasa;kinszasa;quinxassa,Kipushi|haut katanga|CD|27.25|-11.76|169|W|,Kira|central region|UG|32.63|0.4|462|W|,Kirari Sulemannagar|delhi|IN|77.06|28.7|283|W|,Kirdasah|giza|EG|31.11|30.03|137|W|kerdasa,Kirikkale|kirikkale|TR|33.51|39.85|186|W|,Kirkland|WA|US|-122.21|47.68|87|N|,Kirkuk|kirkuk|IQ|44.39|35.47|1031|W|kerkuk;kirkoek;kirkouk,Kirkwood|MO|US|-90.41|38.58|27|N|,Kirov|kirov oblast|RU|49.66|58.6|507|W|kirow,Kirsehir|kirsehir|TR|34.16|39.15|150|W|,Kiryas Joel|NY|US|-74.17|41.34|32|N|,Kisangani|tshopo|CD|25.19|0.52|1181|W|stanleystad;stanleyville,Kisaran|north sumatra|ID|99.62|2.98|141|W|,Kisarazu|chiba|JP|139.93|35.38|136|W|,Kishangarh|rajasthan|IN|74.85|26.59|154|W|,Kishiwada|osaka|JP|135.37|34.47|205|W|,Kisi|oyo state|NG|3.85|9.08|155|W|,Kislovodsk|stavropol kray|RU|42.72|43.91|132|W|kislowodsk;kislowodzk,Kismayo|lower juba|SO|42.55|-0.36|234|W|chisimayu;kismaayo,Kissimmee|FL|US|-81.42|28.3|69|N|,Kisumu|kisumu county|KE|34.76|-0.1|397|W|,Kita|tokyo|JP|139.73|35.75|332|W|kita ku,Kitakyushu|fukuoka|JP|130.85|33.85|940|W|kitakjusu,Kitale|trans nzoia|KE|35.01|1.02|162|W|,Kitchener|ON|CA|-80.51|43.43|256|NW|,Kitengela|kajiado county|KE|36.96|-1.48|154|W|,Kitsilano|BC|CA|-123.17|49.27|43|N|,Kitwe|copperbelt|ZM|28.21|-12.8|665|W|,Kiziltepe|mardin|TR|40.58|37.19|150|W|,Klaipeda|klaipeda county|LT|21.14|55.71|172|W|klajpeda;memel,Klang|selangor|MY|101.44|3.04|240|W|kelang,Klerksdorp|north west|ZA|26.67|-26.85|227|W|,Kluang|johor|MY|103.32|2.03|323|W|,Klungkung|bali|ID|115.4|-8.53|223|W|,Knoxville|TN|US|-83.92|35.96|190|NW|,Kobe|hyogo|JP|135.18|34.69|1525|W|,Kochi|kerala|IN|76.26|9.94|633|W|cochim;cochin;ernakulam;koczin,Kochi|kochi|JP|133.53|33.55|332|W|kochi shi;kochishi,Kodaira|tokyo|JP|139.49|35.73|198|W|,Koeln|north rhine westphalia|DE|6.95|50.93|1024|W|koln;cologne;colonia;keulen;kolonia;kolin nad rynem,Koforidua|eastern|GH|-0.26|6.09|151|W|,Kofu|yamanashi|JP|138.57|35.67|189|W|,Koga|ibaraki|JP|139.72|36.18|139|W|,Kohat|khyber pakhtunkhwa|PK|71.45|33.58|151|W|,Kokomo|IN|US|-86.13|40.49|57|N|,Kokshetau|aqmola|KZ|69.39|53.28|150|W|kokchetaou;kokczetaw;koksetau;kokcetau;kokschetau;koksjetau;koksetaw,Kolar|karnataka|IN|78.13|13.14|138|W|,Kolhapur|maharashtra|IN|74.23|16.7|549|W|,Kolkata|west bengal|IN|88.36|22.56|4631|W|calcutta;calcuta;kalkata;kalkuta;kalkutta,Kollam|kerala|IN|76.58|8.88|367|W|quilon;coulao,Kolomna|moscow oblast|RU|38.78|55.07|147|W|,Kolpino|st petersburg|RU|30.59|59.75|138|W|kolppina,Kolwezi|lualaba|CD|25.47|-10.71|790|W|,Kom Ombo|aswan|EG|32.95|24.48|409|W|,Komaki|aichi|JP|136.92|35.28|148|W|,Kombolcha|amhara|ET|39.74|11.08|132|W|kembolcza,Komsomolsk-on-Amur|khabarovsk|RU|137.01|50.55|275|W|komsomolsk am amur;komsomolsk del amur;komsomolsk na amure;komsomolsk sur l amour,Kon Tum|quang ngai|VN|108.01|14.35|205|W|,Konak|izmir province|TR|27.1|38.4|332|W|,Konibodom|sughd|TJ|70.43|40.29|211|W|,Konya|konya|TR|32.48|37.87|1433|W|iconio,Korba|chhattisgarh|IN|82.7|22.35|419|W|,Koreatown|CA|US|-118.3|34.06|124|N|,Korhogo|savanes district|CI|-5.63|9.46|440|W|,Koriyama|fukushima|JP|140.38|37.4|327|W|,Korla|xinjiang|CN|86.15|41.76|549|W|,Korolev|moscow oblast|RU|37.83|55.91|139|W|korolyov;koroliov;koroljov;korolow,Koronadal|soccsksargen|PH|124.85|6.5|201|W|koronadal city;kota koronadal,Koshigaya|saitama|JP|139.79|35.89|345|W|,Kosice|kosice region|SK|21.26|48.71|225|W|koszyce;kaschau,Kostanay|kostanay|KZ|63.62|53.21|210|W|kostanai;kostanaj;kustanaj;qostanai;qostanaj;qostanay;kustanay;nikolayevsk,Kosti|white nile|SD|32.66|13.16|345|W|kusti,Kostroma|kostroma oblast|RU|40.93|57.77|277|W|,Kota|rajasthan|IN|75.84|25.18|1001|W|,Kota Bharu|kelantan|MY|102.24|6.12|568|W|kota bahru,Kota Damansara|selangor|MY|101.58|3.15|500|W|,Kota Kinabalu|sabah|MY|116.07|5.97|500|W|,Kota Kuala Muda|kedah|MY|100.37|5.59|544|W|,Koto|kumamoto|JP|130.75|32.78|543|W|koto city,Koudougou|centre ouest|BF|-2.37|12.25|160|W|,Koumassi|abidjan autonomous district|CI|-3.97|5.3|412|W|,Kousseri|far north|CM|15.03|12.08|139|W|,Koutiala|sikasso|ML|-5.47|12.39|218|W|,Kovpakivskyi|sumy|UA|34.79|50.93|142|W|kovpakivskyi rayon,Kovrov|vladimir oblast|RU|41.32|56.36|154|W|kowrow,Kowloon||HK|114.18|22.32|2232|W|koulun,Kowloon City|kowloon city|HK|114.19|22.33|418|W|,Kowloon City Centre|kowloon city|HK|114.19|22.33|194|W|,Kozhikode|kerala|IN|75.78|11.25|550|W|kozikkot;calecute;calicut,Kragujevac|central serbia|RS|20.92|44.02|147|W|,Krakow|lesser poland|PL|19.94|50.06|816|W|cracovia;cracovie;krakau;krakov;krakova;cracow,Kramatorsk|donetsk|UA|37.57|48.73|147|W|kramators k,Krasnodar|krasnodar krai|RU|38.98|45.05|899|W|,Krasnogvargeisky|st petersburg|RU|30.48|59.97|337|W|,Krasnoyarsk|krasnoyarsk krai|RU|92.93|56.04|1090|W|krasnojarsk;krasnoiarsk,Krefeld|north rhine westphalia|DE|6.55|51.34|237|W|,Kremenchuk|poltava|UA|33.4|49.06|224|W|kremencuk;kremenciuk;krementchouk;krementjuk;krementschuk;krementsjoek;krementsjuk;krementsuk;kremencug;krzemienczuk;kremenchug;kreminchuk,Kreuzberg|state of berlin|DE|13.4|52.5|153|W|berlin kreuzberg,Krishnanagar|west bengal|IN|88.49|23.41|145|W|,Kropyvnytskyi|kirovohrad|UA|32.27|48.51|219|W|kropywnycki;kropywnyzkyj;elisavetgrad;elizabethgrad;jelisawetgrad;jelizawietgrad;kirovo;kirovograd;kirovogrado;kirovohrad;kirowograd;kirowohrad;yelisavetgrad;zinovievsk;zinovyevsk;zinowjewsk,Krugersdorp|gauteng|ZA|27.78|-26.09|378|W|,Kryvyy Rih|dnipropetrovsk|UA|33.39|47.91|603|W|krivoj rog;kryvy rig;kryvy rih;kryvyi rih;kryvyj rih;krywyj rih;krzywy rog;krivii rih,Ksar El Kebir|tanger tetouan al hoceima|MA|-5.9|35|138|W|,Kuala Kubu Baharu|selangor|MY|101.66|3.56|194|W|kuala kubu;kuala kubu baru;kuala kubu bharu,Kuala Lumpur|kuala lumpur|MY|101.69|3.14|1453|W|,Kuala Terengganu|terengganu|MY|103.14|5.33|426|W|,Kuantan|pahang|MY|103.33|3.81|548|W|,Kuching|sarawak|MY|110.33|1.55|402|W|,Kuecuekcekmece|istanbul|TR|28.77|40.99|792|W|kucukcekmece,Kuetahya|kutahya|TR|29.98|39.42|185|W|kutahya,Kukatpally|telangana|IN|78.41|17.48|341|W|kukatpalle;kukatpalli,Kukichuo|saitama|JP|139.67|36.07|150|W|,Kulim|kedah|MY|100.56|5.36|170|W|,Kulob|khatlon province|TJ|69.78|37.91|214|W|,Kulti|west bengal|IN|86.84|23.73|305|W|,Kumagaya|saitama|JP|139.39|36.13|195|W|,Kumamoto|kumamoto|JP|130.69|32.81|738|W|kumamoto shi,Kumarapalayam|tamil nadu|IN|77.71|11.44|195|W|komarapalayam,Kumasi|ashanti|GH|-1.62|6.69|2544|W|,Kumba|south west|CM|9.45|4.64|225|W|,Kumbakonam|tamil nadu|IN|79.39|10.96|167|W|,Kunduz|kunduz|AF|68.86|36.73|161|W|konduz;kondoz;kundus;qunduz,Kunming|yunnan|CN|102.72|25.04|3855|W|con minh;kchun ming,Kunri|sindh|PK|69.57|25.18|237|W|,Kunshan|jiangsu|CN|120.95|31.38|2092|W|con son;kchun san,Kuntsevo|moscow|RU|37.4|55.74|147|W|kuncevo;kuncewo;kuntsevo district,Kupang|east nusa tenggara|ID|123.61|-10.17|474|W|kota kupang,Kurashiki|okayama|JP|133.77|34.58|483|W|,Kure|hiroshima|JP|132.57|34.23|214|W|,Kurgan|kurgan oblast|RU|65.34|55.45|309|W|curgan;koergan;kourgan,Kurnool|andhra pradesh|IN|78.04|15.83|460|W|karnulu,Kursk|kursk oblast|RU|36.18|51.73|448|W|koersk;koursk,Kurume|fukuoka|JP|130.52|33.32|303|W|,Kusatsu|shiga|JP|135.97|35.02|143|W|,Kushinagar|uttar pradesh|IN|83.89|26.74|274|W|,Kushiro|hokkaido|JP|144.37|42.98|167|W|kushiro shi;kusiro,Kushtia|khulna division|BD|89.12|23.9|135|W|,Kutaisi|imereti|GE|42.69|42.27|135|W|koutaissi;kutaissi;koetaisi;kutayis,Kuwana|mie|JP|136.67|35.05|140|W|,Kuz'minki|moscow|RU|37.8|55.7|143|W|,KwaDukuza|kwazulu natal|ZA|31.29|-29.33|161|W|,Kwai Chung|kwai tsing district|HK|114.14|22.37|331|W|,Ky Anh|ha tinh province|VN|106.3|18.06|150|W|,Kyaukpyu|rakhine|MM|93.55|19.43|180|W|,Kyauktan|yangon|MM|96.33|16.64|132|W|,Kyengera|central region|UG|32.5|0.3|285|W|,Kyiv|kyiv city|UA|30.52|50.45|2952|W|kiev;kyjiw;ki ep;kiew;kijow;kiova;kyiw;kyjev;chiovia,Kyivskyi|donetsk|UA|37.78|48.05|139|W|kyivskyi rayon,Kyle|TX|US|-97.88|29.99|35|N|,Kyoto|kyoto|JP|135.75|35.02|1463|W|kioto;kjoto;kyoto shi;quioto,Kyzylorda|kyzylorda|KZ|65.51|44.85|354|W|kizilorda;qysylorda;qyzylorda;qizilorda;ak mechet;fort perovsky;kzyl orda;perovsk,L'Amoreaux|ON|CA|-79.31|43.8|43|N|,L'Hospitalet de Llobregat|catalonia|ES|2.1|41.36|257|W|hospitalet de llobregat,La Barca|MX14|MX|-102.54|20.29|35|N|,La Ceiba|atlantida department|HN|-86.78|15.76|222|W|,La Cite-Limoilou|QC|CA|-71.23|46.83|108|N|,La Crosse|WI|US|-91.24|43.8|52|N|,La Gi|lam dong|VN|107.77|10.66|160|W|,La Habra|CA|US|-117.95|33.93|62|N|,La Haute-Saint-Charles|QC|CA|-71.37|46.89|88|N|,La Jolla|CA|US|-117.27|32.85|42|N|,La Joya|MX02|MX|-117|32.44|26|N|,La Laguna|canary islands|ES|-16.32|28.49|150|W|,La Mesa|CA|US|-117.02|32.77|60|N|,La Mirada|CA|US|-118.01|33.92|49|N|,La Paz|la paz department|BO|-68.15|-16.5|2004|W|ciudad la paz,La Paz|MX03|MX|-110.31|24.14|250|NW|,La Piedad de Cabadas|MX16|MX|-102.02|20.34|83|N|la piedad;municipio la piedad,La Pintana|santiago metropolitan|CL|-70.63|-33.58|201|W|,La Plata|buenos aires|AR|-57.95|-34.92|195|W|,La Porte|TX|US|-95.02|29.67|35|N|,La Presa|CA|US|-117|32.71|34|N|,La Puente|CA|US|-117.95|34.02|40|N|,La Quinta|CA|US|-116.31|33.66|40|N|,La Rioja|la rioja|AR|-66.86|-29.41|178|W|ciudad de la rioja;rioja,La Romana|la romana|DO|-68.97|18.42|208|W|,La Serena|coquimbo region|CL|-71.25|-29.91|154|W|,La Trinidad|cordillera|PH|120.59|16.45|142|W|,La Vergne|TN|US|-86.58|36.02|34|N|,La Verne|CA|US|-117.77|34.1|32|N|,Laayoune||EH|-13.19|27.14|196|W|el aaiun;aaiun;al ajoen;al ayun;al ujun;el ayun,Labuan Bajo|east nusa tenggara|ID|119.89|-8.5|188|W|labuanbajo,Lacey|WA|US|-122.82|47.03|46|N|,Ladysmith|kwazulu natal|ZA|29.78|-28.56|143|W|,Lafayette|LA|US|-92.02|30.22|121|N|,Lafayette|IN|US|-86.88|40.42|71|N|,Lafayette|CO|US|-105.09|39.99|27|N|,Lafayette|CA|US|-122.12|37.89|25|N|,Lages|santa catarina|BR|-50.33|-27.82|172|W|,Laghouat|laghouat|DZ|2.87|33.8|134|W|al aghwat;lagouat,Lagos|lagos|NG|3.39|6.45|15388|W|,Lagos de Moreno|MX14|MX|-101.93|21.36|98|N|,LaGrange|GA|US|-85.03|33.04|29|N|la grange,Laguna|CA|US|-121.42|38.42|46|N|,Laguna Hills|CA|US|-117.71|33.61|31|N|,Laguna Niguel|CA|US|-117.71|33.52|65|N|,Lahore|punjab|PK|74.35|31.56|13004|W|lahaur;lahor,Laibin|guangxi|CN|109.22|23.75|910|W|lai tan;laj pin,Laiwu|shandong|CN|117.66|36.19|989|W|lai vu;laj wu,Laixi|shandong|CN|120.53|36.86|341|W|,Laiyang|shandong|CN|120.71|36.98|169|W|,Laizhou|shandong|CN|119.94|37.18|188|W|laichow,Lajeado|sao paulo|BR|-46.41|-23.53|164|W|,Lake Charles|LA|US|-93.2|30.21|76|N|,Lake Elsinore|CA|US|-117.33|33.67|61|N|,Lake Forest|CA|US|-117.69|33.65|82|N|,Lake Havasu City|AZ|US|-114.32|34.48|53|N|,Lake in the Hills|IL|US|-88.33|42.18|29|N|,Lake Jackson|TX|US|-95.43|29.03|27|N|,Lake Magdalene|FL|US|-82.47|28.07|28|N|,Lake Oswego|OR|US|-122.67|45.42|38|N|,Lake Ridge|VA|US|-77.3|38.69|41|N|,Lake Stevens|WA|US|-122.06|48.02|30|N|,Lake Worth Beach|FL|US|-80.07|26.62|37|N|lake worth,Lakeland|FL|US|-81.95|28.04|104|N|,Lakeside|FL|US|-81.77|30.13|30|N|,Lakeville|MN|US|-93.24|44.65|60|N|,Lakewood|CO|US|-105.08|39.7|152|NW|,Lakewood|CA|US|-118.13|33.85|81|N|,Lakewood|WA|US|-122.52|47.17|59|N|,Lakewood|NJ|US|-74.22|40.1|53|N|lakewood township;municipio de lakewood,Lakewood|SK|CA|-106.59|52.11|51|N|,Lakewood|OH|US|-81.8|41.48|50|N|,Lakhimpur|uttar pradesh|IN|80.78|27.95|140|W|,Lal Bahadur Nagar|telangana|IN|78.56|17.35|261|W|,Lampang|lampang|TH|99.49|18.29|156|W|,Lancaster|CA|US|-118.14|34.7|161|NW|,Lancaster|PA|US|-76.31|40.04|59|N|,Lancaster|OH|US|-82.6|39.71|39|N|,Lancaster|TX|US|-96.76|32.59|38|N|,Land O' Lakes|FL|US|-82.46|28.22|31|N|,Lander|miranda|VE|-66.7|10.18|176|W|,Lang'ata|nairobi county|KE|36.73|-1.37|172|W|,Lang Son|lang son province|VN|106.76|21.85|200|W|,Langfang|hebei|CN|116.71|39.52|868|W|,Langford|BC|CA|-123.5|48.45|46|N|,Langley|BC|CA|-122.66|49.1|132|NW|ciudad de langley,Langsa|aceh|ID|97.97|4.47|184|W|,Lansing|MI|US|-84.56|42.73|112|N|,Lansing|IL|US|-87.54|41.56|28|N|,Lanus|buenos aires|AR|-58.39|-34.71|212|W|,Lanzhou|gansu|CN|103.84|36.06|3000|W|lan chau;lan cou,Lao Cai|lao cai|VN|103.97|22.49|130|W|laos,Laohekou|hubei|CN|111.67|32.39|253|W|,Laplace|LA|US|-90.48|30.07|29|N|,Lapu-Lapu City|central visayas|PH|123.95|10.31|497|W|lapu lapu,Larache|tanger tetouan al hoceima|MA|-6.16|35.19|136|W|al araisz;laraxe,Laramie|WY|US|-105.59|41.31|32|N|,Laredo|TX|US|-99.51|27.51|256|NW|,Largo|FL|US|-82.79|27.91|81|N|,Larisa|thessaly|GR|22.42|39.63|146|W|larissa;yenisehir,Larkana|sindh|PK|68.21|27.56|364|W|,Las Choapas|MX30|MX|-94.1|17.91|42|N|,Las Cruces|NM|US|-106.78|32.31|101|N|,Las Guacamayas|MX16|MX|-102.21|18.02|37|N|,Las Palmas de Gran Canaria|canary islands|ES|-15.42|28.1|383|W|las palmas;las palmas de g c;palmas de gran canaria,Las Pinas|national capital region|PH|120.98|14.45|615|W|,Las Pintitas|MX14|MX|-103.3|20.56|26|N|,Las Tunas|las tunas province|CU|-76.95|20.96|203|W|victoria de las tunas,Las Vegas|NV|US|-115.14|36.17|641|NW|,LaSalle|ON|CA|-83.06|42.24|32|N|,Lashio|shan state|MM|97.75|22.94|131|W|lasho;lasio,Lat Krabang|bangkok|TH|100.78|13.72|163|W|,Latacunga|cotopaxi|EC|-78.62|-0.93|205|W|,Latakia|latakia|SY|35.79|35.53|709|W|laodicea;lataquia;lattakia;lattaquie;lazkiye;lazikija,Latina|madrid|ES|-3.75|40.39|256|W|,Latkrabang|bangkok|TH|100.75|13.73|173|W|,Latur|maharashtra|IN|76.57|18.4|382|W|,Lauderdale Lakes|FL|US|-80.21|26.17|34|N|,Lauderhill|FL|US|-80.21|26.14|71|N|,Laurel|MD|US|-76.85|39.1|26|N|,Lauro de Freitas|bahia|BR|-38.33|-12.89|203|W|,Lausanne|vaud|CH|6.63|46.52|139|W|lausana;losanna;lozan;lozanna,Laval|QC|CA|-73.69|45.57|438|NW|,Laval-des-Rapides|QC|CA|-73.7|45.56|36|N|,Lawndale|CA|US|-118.35|33.89|33|N|,Lawrence|KS|US|-95.24|38.97|93|N|,Lawrence|MA|US|-71.16|42.71|80|N|,Lawrence|IN|US|-86.03|39.84|47|N|,Lawrenceville|GA|US|-83.99|33.96|30|N|,Lawson|SK|CA|-106.64|52.16|34|N|,Lawton|OK|US|-98.39|34.61|96|N|,Layton|UT|US|-111.97|41.06|74|N|,Layyah|punjab|PK|70.94|30.96|151|W|,Le Havre|normandy|FR|0.11|49.49|185|W|el havre;hawr;le port de grace,Le Mans|pays de la loire|FR|0.2|48|144|W|,Le Plateau-Mont-Royal|QC|CA|-73.58|45.53|105|N|,Le Sud-Ouest|QC|CA|-73.59|45.47|86|N|,Le Vieux-Longueuil|QC|CA|-73.51|45.54|135|NW|,League City|TX|US|-95.09|29.51|98|N|,Leamington|ON|CA|-82.6|42.05|35|N|,Leander|TX|US|-97.85|30.58|59|N|,Leavenworth|KS|US|-94.92|39.31|35|N|,Leawood|KS|US|-94.62|38.97|34|N|,Lebanon|TN|US|-86.29|36.21|30|N|,Lebanon|PA|US|-76.41|40.34|25|N|,Lee's Summit|MO|US|-94.38|38.91|95|N|,Leeds|england|GB|-1.55|53.8|536|W|,Leesburg|VA|US|-77.56|39.12|51|N|,Leganes|madrid|ES|-3.76|40.33|188|W|,Legaspi|bicol region|PH|123.74|13.14|179|W|legazpi;legaspi city;legazpi city,Lehi|UT|US|-111.85|40.39|58|N|,Lehigh Acres|FL|US|-81.62|26.63|86|N|,Leicester|england|GB|-1.13|52.64|368|W|,Leipzig|saxony|DE|12.37|51.34|504|W|lipsca;lipsia;lipsk;lipsko,Leisure City|FL|US|-80.43|25.5|26|N|,Lekki|lagos|NG|3.48|6.45|401|W|,Lembang|west java|ID|107.62|-6.81|183|W|,Lemon Grove|CA|US|-117.03|32.74|26|N|,Lemoore|CA|US|-119.78|36.3|25|N|,Lenexa|KS|US|-94.73|38.95|52|N|,Leogane|ouest|HT|-72.63|18.51|134|W|,Leominster|MA|US|-71.76|42.53|41|N|,Leon|leon department|NI|-86.88|12.44|144|W|,Leon de los Aldama|MX11|MX|-101.68|21.12|1579|NW|leon;leon guanajuato;leon de los aldamas,Lerdo|MX10|MX|-103.52|25.54|79|N|,Les Rivieres|QC|CA|-71.27|46.82|77|N|,Leshan|sichuan|CN|103.76|29.56|662|W|le san,Lethbridge|AB|CA|-112.82|49.7|103|N|,Leverkusen|north rhine westphalia|DE|6.98|51.03|162|W|,Levis|QC|CA|-71.18|46.8|143|NW|,Levittown|PA|US|-74.83|40.16|52|N|,Levittown|NY|US|-73.51|40.73|51|N|lewittown,Lewiston|ME|US|-70.21|44.1|36|N|,Lewiston|ID|US|-117.02|46.42|32|N|,Lewiston Orchards|ID|US|-116.98|46.38|31|N|,Lewisville|TX|US|-96.99|33.05|104|N|,Lexington|KY|US|-84.48|37.99|320|NW|,Lexington|MA|US|-71.22|42.45|31|N|lexington village;cambridge farms;lexington centre,Lexington-Fayette|KY|US|-84.46|38.05|314|NW|,Lhoka|tibet|CN|91.77|29.24|353|W|,Lhokseumawe|aceh|ID|97.15|5.18|200|W|kota lhokseumawe,Lianghu|zhejiang|CN|120.9|29.99|155|W|,Liangping|chongqing|CN|107.77|30.66|137|W|,Lianshan|liaoning|CN|120.85|40.76|313|W|,Lianyungang|jiangsu|CN|119.22|34.6|2001|W|,Liaocheng|shandong|CN|116|36.45|1229|W|liao ccheng;lieu thanh,Liaoyang|liaoning|CN|123.17|41.27|687|W|liao jang;lieu duong,Libertad|caraga|PH|125.5|8.94|250|W|,Liberty|MO|US|-94.42|39.25|30|N|,Libreville|estuaire|GA|9.45|0.39|846|W|,Licheng|guangdong|CN|113.82|23.3|172|W|,Lichinga|niassa province|MZ|35.24|-13.31|281|W|,Liege|wallonia|BE|5.57|50.63|195|W|luttich;liegi;lieja;luik;lutych,Lijiang|yunnan|CN|100.22|26.87|211|W|cidade antiga de lijiang;li tiang,Likasi|haut katanga|CD|26.74|-10.98|635|W|jadotstad;jadotsville,Lille|hauts de france|FR|3.06|50.63|238|W|rijsel;lila;lilla,Lilongwe|central region|MW|33.79|-13.97|1115|W|lilongue,Lima|lima province|PE|-77.03|-12.04|7737|W|,Lima|OH|US|-84.11|40.74|37|N|,Limassol|limassol|CY|33.04|34.68|154|W|lemesos;limasol;limisso,Limbe|south west|CM|9.21|4.02|131|W|,Limeira|sao paulo|BR|-47.4|-22.56|291|W|,Limoges|new aquitaine|FR|1.25|45.83|141|W|,Limuru|kiambu county|KE|36.64|-1.11|159|W|,Linares|MX19|MX|-99.57|24.86|70|N|,Lincang|yunnan|CN|100.09|23.88|323|W|,Lincoln|NE|US|-96.67|40.8|294|NW|,Lincoln|CA|US|-121.29|38.89|49|N|,Lincoln Park|IL|US|-87.65|41.92|66|N|,Lincoln Park|MI|US|-83.18|42.25|37|N|,Lincoln Square|IL|US|-87.69|41.98|40|N|,Linden|NJ|US|-74.24|40.62|42|N|,Lindenhurst|NY|US|-73.37|40.69|27|N|,Linfen|shanxi|CN|111.52|36.09|959|W|lin fen,Linhares|espirito santo|BR|-40.07|-19.39|183|W|,Linkoeping|ostergotland|SE|15.62|58.41|166|W|linkoping,Linqu|shandong|CN|118.54|36.52|299|W|,Linton Hall|VA|US|-77.57|38.76|35|N|,Linxia Chengguanzhen|gansu|CN|103.21|35.6|274|W|linxia,Linyi|shandong|CN|118.34|35.06|2743|W|lam nghi,Linz|upper austria|AT|14.29|48.31|204|W|linec,Lipa City|calabarzon|PH|121.16|13.94|212|W|,Lipetsk|lipetsk oblast|RU|39.55|52.59|509|W|lipezk;lipeck;lipetk;lipieck,Lisbon|lisbon|PT|-9.15|38.73|517|W|lisboa;lisabon;lisabona;lisbona;lisbonne;lissabon;lizbon;lizbona,Lishui|zhejiang|CN|119.91|28.46|451|W|li suej,Little Elm|TX|US|-96.94|33.16|38|N|,Little Havana|FL|US|-80.23|25.77|53|N|la pequena habana,Little Rock|AR|US|-92.29|34.75|202|NW|,Littleton|CO|US|-105.02|39.61|46|N|,Liupanshui|guizhou|CN|104.83|26.59|1320|W|liou pchan suej,Liuzhi|guizhou|CN|105.43|26.23|138|W|,Liuzhou|guangxi|CN|109.41|24.32|1436|W|liou cou;liuchow,Livermore|CA|US|-121.77|37.68|88|N|,Liverpool|england|GB|-2.98|53.41|496|W|,Livingston|NJ|US|-74.31|40.8|27|N|,Livingstone|southern province|ZM|25.85|-17.84|178|W|,Livonia|MI|US|-83.35|42.37|94|N|,Livorno|tuscany|IT|10.33|43.54|157|W|livourne,Lizhi|chongqing|CN|107.4|29.7|156|W|,Ljubljana|ljubljana|SI|14.51|46.05|272|W|liubliana;lubiana;lublana;lublan;laibach,Lleida|catalonia|ES|0.62|41.62|140|W|lerida,Lloydminster|AB|CA|-110.02|53.27|31|N|,Loa Janan|east kalimantan|ID|117.1|-0.58|212|W|,Lobito|benguela|AO|13.54|-12.36|393|W|,Lochearn|MD|US|-76.72|39.34|25|N|,Lockport|IL|US|-88.06|41.59|25|N|,Lodhran|punjab|PK|71.63|29.53|144|W|,Lodi|CA|US|-121.27|38.13|64|N|,Lodz|lodz voivodeship|PL|19.47|51.77|639|W|litzmannstadt,Logan|UT|US|-111.83|41.74|50|N|,Logan City|queensland|AU|153.11|-27.64|345|W|citta di logan;logan,Logan Square|IL|US|-87.7|41.92|73|N|,Logrono|la rioja|ES|-2.45|42.47|151|W|,Loja|loja|EC|-79.2|-3.99|274|W|,Loma Bonita|MX20|MX|-95.88|18.11|40|N|,Lombard|IL|US|-88.01|41.88|43|N|,Lome|maritime|TG|1.22|6.13|2188|W|,Lompoc|CA|US|-120.46|34.64|44|N|,London|england|GB|-0.13|51.51|8961|W|londres;londen;londra;londyn;lontoo;luan don,London|ON|CA|-81.23|42.98|422|NW|,Londrina|parana|BR|-51.16|-23.31|581|W|,Long Beach|CA|US|-118.19|33.77|474|NW|,Long Beach|NY|US|-73.66|40.59|33|N|,Long Bien|hanoi|VN|105.9|21.03|347|W|,Long Branch|NJ|US|-73.99|40.3|30|N|,Long Island City|NY|US|-73.95|40.74|25|N|lic,Long Khanh|dong nai|VN|107.25|10.93|171|W|,Long Xuyen|an giang|VN|105.44|10.39|286|W|,Longfellow Community|MN|US|-93.23|44.94|29|N|,Longfeng|heilongjiang|CN|125.1|46.53|152|W|,Longgang|guangdong|CN|114.26|22.72|215|W|district de longgang;long cuong;longgang district,Longling County|yunnan|CN|98.69|24.59|270|W|,Longmont|CO|US|-105.1|40.17|92|N|,Longshan|jilin|CN|125.14|42.89|465|W|liao juan;liaoyuan;lieu nguyen,Longueuil|QC|CA|-73.47|45.52|229|NW|,Longview|TX|US|-94.74|32.5|82|N|,Longview|WA|US|-122.94|46.14|36|N|,Longyan|fujian|CN|117.02|25.07|1025|W|long nham;lung jen,Loni|uttar pradesh|IN|77.29|28.75|516|W|,Lorain|OH|US|-82.18|41.45|63|N|,Los Altos|CA|US|-122.11|37.39|30|N|,Los Angeles|CA|US|-118.24|34.05|3820|NW|l a,Los Banos|CA|US|-120.85|37.06|37|N|,Los Gatos|CA|US|-121.97|37.23|30|N|,Los Mochis|MX25|MX|-109|25.79|256|NW|,Los Reyes Acaquilpan|MX15|MX|-98.98|19.36|85|N|los reyes la paz;reyes la paz,Los Reyes de Salgado|MX16|MX|-102.47|19.59|39|N|,Los Teques|miranda|VE|-67.04|10.35|252|W|,Loudi|hunan|CN|111.99|27.73|497|W|,Louisville|KY|US|-85.76|38.25|624|NW|,Loveland|CO|US|-105.07|40.4|75|N|,Lowell|MA|US|-71.32|42.63|110|N|,Lower Sackville|NS|CA|-63.68|44.78|51|N|,Lower West Side|IL|US|-87.67|41.85|34|N|,Lu'an|anhui|CN|116.52|31.74|1644|W|,Luancheng|hebei|CN|114.65|37.88|597|W|,Luanda|luanda|AO|13.23|-8.84|2776|W|loanda,Luanshya|copperbelt|ZM|28.42|-13.14|193|W|,Lubango|huila|AO|13.49|-14.92|600|W|sa da bandeira,Lubbock|TX|US|-101.86|33.58|249|NW|,Lublin|lublin|PL|22.57|51.25|336|W|lublino,Lubuklinggau|south sumatra|ID|102.86|-3.29|234|W|kota lubuklinggau,Lubumbashi|haut katanga|CD|27.48|-11.66|2221|W|elizabethstad;elisabethville,Lucena|calabarzon|PH|121.62|13.93|228|W|kota lucena;lucena city,Lucknow|uttar pradesh|IN|80.92|26.84|2472|W|lakhnau;laknau,Ludhiana|punjab|IN|75.85|30.91|1618|W|ludhijana,Ludwigshafen am Rhein|rheinland pfalz|DE|8.45|49.48|163|W|ludwigshafen;ludwigshafen sul reno,Luebeck|schleswig holstein|DE|10.69|53.87|212|W|lubeck;lubeca;lubecca;lubeka;lyypekki,Lueliang|shanxi|CN|111.14|37.52|3346|W|luliang,Luena|moxico|AO|19.92|-11.78|273|W|,Lufkin|TX|US|-94.73|31.34|36|N|,Luhansk|luhansk|UA|39.31|48.57|397|W|loehansk;louhansk;lugansk;luhans k;voroshilovgrad;woroschilowgrad,Luohe|henan|CN|114.03|33.57|1294|W|luo che;thap ha,Luohu District|guangdong|CN|114.13|22.55|1143|W|,Luojiang|sichuan|CN|104.5|31.3|212|W|,Luoyang|henan|CN|112.44|34.67|1390|W|luo jang,Lusail|al daayen|QA|51.51|25.42|198|W|,Lusaka|lusaka province|ZM|28.29|-15.41|2212|W|,Lushui|yunnan|CN|98.86|25.82|197|W|,Luton|england|GB|-0.42|51.88|225|W|,Lutsk|volyn|UA|25.35|50.76|215|W|loetsk;loutsk;luc k;luzk;luck;lucioria,Luxor|luxor|EG|32.64|25.7|422|W|el uksur;louxor;luksor,Luzhou|sichuan|CN|105.43|28.89|998|W|lu cou;lo chau,Luziania|goias|BR|-47.95|-16.25|221|W|,Lviv|lviv|UA|24.02|49.84|717|W|leopoli;lwow;leopolo;leopolis;liov;lvov;lwiw;lemberg,Lynchburg|VA|US|-79.14|37.41|79|N|,Lynn|MA|US|-70.95|42.47|92|N|,Lynnwood|WA|US|-122.32|47.82|36|N|,Lynwood|CA|US|-118.21|33.93|71|N|,Lyon|rhone alpes|FR|4.85|45.75|520|W|lione,Lyubertsy|moscow oblast|RU|37.89|55.68|154|W|lioubertsy;liubertsi;liuberti;liubertsy;ljoebertsy;ljubercy;ljubertsy;ljuberzy;lubiercy,Lyublino|moscow|RU|37.76|55.68|172|W|,M'Sila|m sila|DZ|4.54|35.71|132|W|,Ma'anshan|anhui|CN|118.51|31.69|741|W|,Ma On Shan|sha tin|HK|114.24|22.41|215|W|,Mabalacat City|central luzon|PH|120.57|15.22|188|W|mabalacat,Mableton|GA|US|-84.58|33.82|37|N|,Macae|rio de janeiro|BR|-41.78|-22.38|264|W|,Macapa|amapa|BR|-51.07|0.04|512|W|,Macau||MO|113.55|22.2|649|W|ma cao;macao;makao;makau,Maceio|alagoas|BR|-35.74|-9.67|1031|W|macelo,Machala|el oro|EC|-79.96|-3.26|289|W|,Machida|tokyo|JP|139.45|35.54|431|W|,Machilipatnam|andhra pradesh|IN|81.14|16.19|192|W|masulipatao,Machiques|zulia|VE|-72.55|10.06|132|W|,Macon|GA|US|-83.63|32.84|91|N|,Macuspana|MX27|MX|-92.6|17.76|32|N|,Madanapalle|andhra pradesh|IN|78.5|13.55|180|W|,Madera|CA|US|-120.06|36.96|64|N|,Madhurampur Dehri|bihar|IN|84.2|24.97|137|W|,Madhyamgram|west bengal|IN|88.45|22.69|161|W|,Madinah|medina region|SA|39.61|24.47|1300|W|medina;al madinah al munawwarah;medine;medyna,Madinat an Nasr|cairo|EG|31.3|30.07|668|W|,Madinat Hamad|northern|BH|50.51|26.12|133|W|hamad town,Madison|WI|US|-89.4|43.07|280|NW|,Madison|AL|US|-86.75|34.7|46|N|,Madison|MS|US|-90.12|32.46|25|N|,Madison Heights|MI|US|-83.11|42.49|30|N|madison hts,Madiun|east java|ID|111.52|-7.63|202|W|kota madiun,Madrid|madrid|ES|-3.7|40.42|3255|W|madryt,Madrid|cundinamarca|CO|-74.26|4.73|135|W|,Madrid Centro|madrid|ES|-3.7|40.42|149|W|madrid city center,Madurai|tamil nadu|IN|78.12|9.92|1465|W|maduraj,Maebashi|gunma|JP|139.08|36.4|332|W|maebasi,Magdalena Atlicpac|MX15|MX|-98.95|19.37|26|N|,Magdalena Contreras|MX09|MX|-99.21|19.33|238|NW|,Magdalena de Kino|MX26|MX|-110.96|30.63|26|N|,Magdeburg|saxony anhalt|DE|11.63|52.13|244|W|maagdenburg;magdebourg;magdeburgo;magdeburk,Mage|rio de janeiro|BR|-43.04|-22.65|244|W|,Magna|UT|US|-112.1|40.71|26|N|,Magnitogorsk|chelyabinsk|RU|59.01|53.4|413|W|,Magugpo Poblacion|davao region|PH|125.8|7.45|233|W|tagum;tagum city,Mahabad|west azerbaijan|IR|45.72|36.76|168|W|mehabad,Mahajanga|boeny|MG|46.32|-15.72|260|W|,Maharagama|western province|LK|79.93|6.85|195|W|,Mahbubnagar|telangana|IN|77.99|16.74|190|W|,Mahesana|gujarat|IN|72.38|23.6|190|W|,Maheshtala|west bengal|IN|88.25|22.51|448|W|,Mahilyow|mogilev|BY|30.34|53.91|352|W|mahiljou;mogilev;maguilov;mahiliou;mahiljow;mahileu;mogiljow;moguilev;mohylew,Maianga|luanda|AO|13.24|-8.85|727|W|,Maicao|la guajira department|CO|-72.24|11.38|166|W|,Maiduguri|borno state|NG|13.16|11.85|1110|W|,Maijdi|chittagong|BD|91.1|22.87|132|W|,Mainz|rheinland pfalz|DE|8.28|49.98|222|W|magonza;maguncia;mayence;moguncja;moguncia;mohuc;maienta;ments,Maipu|santiago metropolitan|CL|-70.77|-33.51|503|W|,Majie|yunnan|CN|102.64|25.03|131|W|,Makakilo / Kapolei / Honokai Hale|HI|US|-158.1|21.34|46|N|,Makassar|south sulawesi|ID|119.43|-5.15|1474|W|kota makassar;macassar;makasar,Makati City|national capital region|PH|121.03|14.55|510|W|makati,Makhachkala|dagestan|RU|47.5|42.98|596|W|machaczkala;machatjkala;machatschkala;machatsjkala;machackala;mahackala;mahatskala;mahckale;majachkala;makhatchkala;makhatsjkala,Makiki / Lower Punchbowl / Tantalus|HI|US|-157.83|21.32|31|N|,Makiyivka|donetsk|UA|37.93|48.05|338|W|makiejewka;makiivka,Makkah|mecca region|SA|39.83|21.43|1578|W|mecca;la meca;la mecca;la mecque;makkah al mukarramah;meca;mecka;mekka;mekkah;mekke,Makurdi|benue state|NG|8.52|7.73|390|W|,Malabo|bioko norte|GQ|8.78|3.76|155|W|ciudad de malabo;santa isabel,Malabon|national capital region|PH|120.94|14.67|365|W|,Malacca|melaka|MY|102.24|2.2|579|W|malakka;malaca;malaka;melaka,Malaga|andalusia|ES|-4.42|36.72|592|W|,Malakal|upper nile|SS|31.66|9.53|160|W|,Malang|east java|ID|112.63|-7.98|889|W|kabupaten malang;kota malang,Malanje|malanje|AO|16.34|-9.54|455|W|,Malatia-Sebastia|yerevan|AM|44.45|40.17|150|W|,Malatya|malatya|TR|38.32|38.35|750|W|,Malayer|hamadan province|IR|48.82|34.3|170|W|,Malda|west bengal|IN|88.15|25|170|W|english bazar,Malden|MA|US|-71.07|42.43|61|N|,Malegaon|maharashtra|IN|74.53|20.55|481|W|,Maler Kotla|punjab|IN|75.88|30.53|135|W|,Malingao|soccsksargen|PH|124.47|7.16|1121|W|,Malir Cantonment|sindh|PK|67.21|24.94|300|W|,Malkajgiri|telangana|IN|78.53|17.45|150|W|,Mallawi|minya|EG|30.84|27.73|212|W|,Malmoe|skane|SE|13|55.61|362|W|malmo,Malolos|central luzon|PH|120.81|14.84|269|W|malolos city,Maltepe|istanbul|TR|29.16|40.94|427|W|,Malvern|ON|CA|-79.22|43.81|43|N|,Man|montagnes|CI|-7.55|7.41|241|W|,Man'gyongdae-ri|pyongyang|KP|125.66|38.99|321|W|,Manado|north sulawesi|ID|124.85|1.48|458|W|kota manado,Managua|managua department|NI|-86.25|12.13|973|W|,Manama|manama|BH|50.59|26.23|147|W|al manamah;manamah,Manassas|VA|US|-77.48|38.75|41|N|,Manaus|amazonas|BR|-60.02|-3.1|2219|W|manaos,Manchester|england|GB|-2.24|53.48|568|W|,Manchester|NH|US|-71.45|43|110|N|,Manchester|CT|US|-72.52|41.78|30|N|,Mandalay|mandalay region|MM|96.08|21.97|1208|W|mandalaj,Mandaluyong|national capital region|PH|121.04|14.58|425|W|,Mandaluyong City|national capital region|PH|121.04|14.58|465|W|mandaluyong,Mandaue City|central visayas|PH|123.92|10.32|331|W|,Mandsaur|madhya pradesh|IN|75.07|24.07|141|W|,Mandya|karnataka|IN|76.9|12.52|137|W|mandja,Maneah|kindia|GN|-13.42|9.73|194|W|,Mangaluru|karnataka|IN|74.86|12.92|499|W|mangalore,Mango|jharkhand|IN|86.22|22.83|223|W|,Manhattan|NY|US|-73.97|40.78|1487|NW|,Manhattan|KS|US|-96.57|39.18|56|N|,Manhattan Beach|CA|US|-118.41|33.88|35|N|,Manhattan Valley|NY|US|-73.97|40.79|38|N|,Manila|national capital region|PH|120.98|14.6|1600|W|city of manila;manila city;manilla;manille,Manisa|manisa|TR|27.43|38.61|243|W|magnesia ad sipylum;magnesia am sipylos,Manitowoc|WI|US|-87.66|44.09|33|N|,Manizales|caldas department|CO|-75.51|5.07|434|W|,Manjhand|sindh|PK|68.24|25.91|140|W|,Mankato|MN|US|-94.01|44.16|41|N|,Mannheim|baden wurttemberg|DE|8.47|49.49|307|W|,Manokwari|west papua|ID|134.06|-0.86|132|W|,Mansa|luapula province|ZM|28.89|-11.2|170|W|,Mansfield|england|GB|-1.2|53.13|171|W|,Mansfield|TX|US|-97.14|32.56|64|N|,Mansfield|OH|US|-82.52|40.76|46|N|,Mansfield City|CT|US|-72.23|41.77|26|N|,Mansilingan|western visayas|PH|122.98|10.63|454|W|,Manta|manabi|EC|-80.73|-0.95|264|W|manta ecuador,Mantampay|northern mindanao|PH|124.22|8.17|265|W|,Manteca|CA|US|-121.22|37.8|75|N|,Mantilla|havana|CU|-82.34|23.07|206|W|,Manukau City|auckland|NZ|174.88|-36.99|362|W|manukau,Manzanillo|MX08|MX|-104.34|19.12|159|NW|,Maoming|guangdong|CN|110.91|21.67|1307|W|chaozhou;mao ming,Maple Grove|MN|US|-93.46|45.07|68|N|,Maple Ridge|BC|CA|-122.6|49.22|82|N|,Maple Valley|WA|US|-122.05|47.39|25|N|,Maplewood|MN|US|-93|44.95|40|N|,Maplewood|NJ|US|-74.27|40.73|25|N|,Maputo|maputo city|MZ|32.58|-25.97|1254|W|lourenco marques,Mar del Plata|buenos aires|AR|-57.56|-38|593|W|,Mar'ino|moscow|RU|37.72|55.65|243|W|,Maraba|para|BR|-49.13|-5.38|283|W|,Maracaibo|zulia|VE|-71.61|10.64|1752|W|,Maracanau|ceara|BR|-38.63|-3.88|251|W|,Maracay|aragua|VE|-67.59|10.25|464|W|,Maradi|maradi region|NE|7.1|13.5|361|W|,Maragheh|east azerbaijan|IR|46.24|37.39|262|W|,Maragheh|razavi khorasan|IR|59.63|35.83|262|W|,Marana|AZ|US|-111.23|32.44|41|N|,Maravatio de Ocampo|MX16|MX|-100.44|19.89|34|N|,Marawi City|autonomous region in muslim mindanao|PH|124.28|8|259|W|,Marbella|andalusia|ES|-4.89|36.52|156|W|,Marcory|abidjan autonomous district|CI|-3.99|5.31|214|W|,Mardan|khyber pakhtunkhwa|PK|72.05|34.2|300|W|,Marfil|MX11|MX|-101.29|21|29|N|,Marg'ilon|fergana|UZ|71.72|40.47|253|W|margilan,Margate|FL|US|-80.21|26.24|57|N|,Marianao|havana|CU|-82.43|23.07|134|W|,Marica|rio de janeiro|BR|-42.82|-22.92|211|W|,Maricopa|AZ|US|-112.05|33.06|48|N|,Marienthal|hamburg|DE|10.08|53.57|287|W|hamburg marienthal,Marietta|GA|US|-84.55|33.95|59|N|,Marikina City|national capital region|PH|121.11|14.65|471|W|,Marilia|sao paulo|BR|-49.95|-22.21|237|W|,Maringa|parana|BR|-51.94|-23.43|409|W|,Marion|IA|US|-91.6|42.03|37|N|,Marion|OH|US|-83.13|40.59|36|N|,Marion|IN|US|-85.66|40.56|29|N|,Mariupol|donetsk|UA|37.54|47.1|230|W|marioepol;marioupol,Marivan|kurdistan province|IR|46.18|35.52|136|W|,Mariveles|central luzon|PH|120.49|14.43|156|W|,Marka|lower shabeelle|SO|44.77|1.72|230|W|merca,Markham|ON|CA|-79.27|43.87|338|NW|,Marlboro|NJ|US|-74.25|40.32|40|N|,Marlborough|MA|US|-71.55|42.35|39|N|,Marne La Vallee|ile de france|FR|2.64|48.84|318|W|,Maroua|far north|CM|14.32|10.59|314|W|,Marpole|BC|CA|-123.13|49.21|27|N|,Marrakesh|marrakesh safi|MA|-8|31.63|995|W|marrakech;marakes;marrakesch;marrakesz;marraquexe;marrakes,Marrero|LA|US|-90.1|29.9|33|N|,Marsa Matruh|matruh|EG|27.24|31.35|176|W|mersa matruh,Marseille|provence alpes cote d azur|FR|5.38|43.3|877|W|marselha;marsella;marsiglia;marsilia;marsilya;marsylia,Marshalltown|IA|US|-92.91|42.05|27|N|,Martapura|south kalimantan|ID|114.86|-3.41|131|W|,Martinez|CA|US|-122.13|38.02|38|N|,Martinez|GA|US|-82.08|33.52|35|N|,Martinez de la Torre|MX30|MX|-97.06|20.07|60|N|,Marvdasht|fars|IR|52.8|29.87|148|W|,Mary|mary|TM|61.83|37.59|167|W|,Maryland Heights|MO|US|-90.43|38.71|27|N|,Marysville|WA|US|-122.18|48.05|66|N|,Maryvale|AZ|US|-112.18|33.5|208|NW|,Maryville|TN|US|-83.97|35.76|28|N|,Masai|johor|MY|103.88|1.49|141|W|,Masan|gwangju|KR|126.83|35.13|434|W|,Masaya|masaya department|NI|-86.1|11.97|130|W|,Mascouche|QC|CA|-73.6|45.75|34|N|,Maseru|maseru district|LS|27.48|-29.32|359|W|,Mashhad|razavi khorasan|IR|59.61|36.3|2307|W|maschhad;mashad;masyhad;meszhed;mexed;meshed;alexandria;sanaabad,Masina|kinshasa|CD|15.39|-4.38|485|W|,Mason|OH|US|-84.31|39.36|32|N|,Mason City|IA|US|-93.2|43.15|27|N|,Maspeth|NY|US|-73.91|40.72|48|N|,Massillon|OH|US|-81.52|40.8|32|N|,Matadi|bas congo|CD|13.46|-5.84|425|W|,Matamoros|MX07|MX|-103.23|25.53|52|N|,Matanzas|matanzas province|CU|-81.58|23.04|146|W|,Mataram|west nusa tenggara|ID|116.12|-8.58|441|W|kota mataram,Matehuala|MX24|MX|-100.64|23.65|77|N|,Mathura|uttar pradesh|IN|77.67|27.5|330|W|matura,Matola|maputo province|MZ|32.46|-25.96|1198|W|,Matsubara|osaka|JP|135.55|34.57|130|W|,Matsudo|chiba|JP|139.9|35.78|498|W|,Matsue|shimane|JP|133.05|35.48|203|W|macue,Matsumoto|nagano|JP|137.97|36.23|241|W|macumoto,Matsusaka|mie|JP|136.54|34.58|159|W|,Matsuyama|ehime|JP|132.77|33.84|511|W|macujama;matsuyama shi,Mattapan|MA|US|-71.09|42.27|36|N|,Matthews|NC|US|-80.72|35.12|30|N|,Matuga|kwale county|KE|39.57|-4.17|194|W|,Maturin|monagas|VE|-63.18|9.75|647|W|,Mau|uttar pradesh|IN|83.56|25.94|246|W|,Maua|sao paulo|BR|-46.46|-23.67|418|W|,Mauldin|SC|US|-82.31|34.78|25|N|,Mawlamyine|mon|MM|97.63|16.49|438|W|mawlamyaing;moulmein;mulmejn,Maykop|adygeya republic|RU|40.1|44.61|141|W|maikop;majkop,Maywood|CA|US|-118.19|33.99|27|N|,Mazar-e Sharif|balkh|AF|67.11|36.71|523|W|masar e scharif;mazar e charif;mazar i szarif;mazari sharif;mazar e sarif;mezirek i serif,Mazatlan|MX25|MX|-106.42|23.22|381|NW|ciudad mazatlan,Mbandaka|equateur|CD|18.26|0.05|455|W|,Mbanza Kongo|zaire|AO|14.24|-6.27|148|W|mbanza congo,Mbanza-Ngungu|bas congo|CD|14.86|-5.26|142|W|,Mbarara|western region|UG|30.65|-0.6|221|W|,Mbeya|mbeya|TZ|33.45|-8.9|541|W|,Mbour|thies|SN|-16.96|14.42|284|W|,Mbuji-Mayi|east kasai|CD|23.59|-6.14|2101|W|,McAllen|TX|US|-98.23|26.2|140|NW|,McCully - Moiliili|HI|US|-157.83|21.29|28|N|,McHenry|IL|US|-88.27|42.33|26|N|,McKinney|TX|US|-96.62|33.2|162|NW|,McLean|VA|US|-77.18|38.93|48|N|,McMinnville|OR|US|-123.2|45.21|33|N|,Mdantsane|eastern cape|ZA|27.78|-32.93|205|W|,Meadow Woods|FL|US|-81.37|28.39|25|N|,Meads|KY|US|-82.71|38.41|288|NW|,Mechanicsville|VA|US|-77.37|37.61|36|N|,Medan|north sumatra|ID|98.67|3.58|2486|W|kota medan,Medea|medea|DZ|2.75|36.26|145|W|al madijja,Medellin|antioquia|CO|-75.57|6.25|1999|W|medelim,Medford|OR|US|-122.88|42.33|79|N|,Medford|MA|US|-71.11|42.42|57|N|,Medicine Hat|AB|CA|-110.68|50.04|63|N|,Medina|OH|US|-81.86|41.14|26|N|,Medinipur|west bengal|IN|87.32|22.42|153|W|,Meerut|uttar pradesh|IN|77.71|28.98|1223|W|merath,Meguro|tokyo|JP|139.7|35.63|288|W|meguro city,Mehlville|MO|US|-90.32|38.51|28|N|,Meiktila|mandalay region|MM|95.86|20.88|177|W|miktila,Meishan|sichuan|CN|103.84|30.04|1107|W|mej san;mi son,Meizhou|guangdong|CN|116.12|24.29|992|W|mai chau;mej cou,Mejicanos|san salvador department|SV|-89.19|13.72|160|W|,Mek'ele|tigray|ET|39.48|13.5|457|W|macalle;mekelie,Meknes|fes meknes|MA|-5.55|33.89|568|W|,Melbourne|victoria|AU|144.96|-37.81|5435|W|greater melbourne;melbourne city,Melbourne|FL|US|-80.61|28.08|84|N|,Melchor Ocampo|MX15|MX|-99.14|19.7|38|N|,Melitopol|zaporizhzhia|UA|35.38|46.85|148|W|kyzyl yar;melitopoli;novoalexandrovka,Melrose|MA|US|-71.07|42.46|27|N|,Melrose Park|IL|US|-87.86|41.9|25|N|,Memphis|TN|US|-90.05|35.15|633|NW|menfis,Mengzi|yunnan|CN|103.38|23.37|595|W|,Menifee|CA|US|-117.15|33.73|87|N|,Menlo Park|CA|US|-122.18|37.45|33|N|,Menomonee Falls|WI|US|-88.12|43.18|36|N|,Menongue|cubango|AO|17.69|-14.66|251|W|,Mentor|OH|US|-81.34|41.67|46|N|,Mentougou|beijing|CN|116.09|39.94|197|W|,Merced|CA|US|-120.48|37.3|82|N|,Mercer Island|WA|US|-122.22|47.57|25|N|,Mercerville-Hamilton Square|NJ|US|-74.67|40.23|26|N|hamilton square,Mercier-Hochelaga-Maisonneuve|QC|CA|-73.55|45.57|142|NW|,Merida|MX31|MX|-89.62|20.97|1201|NW|,Merida|merida|VE|-71.17|8.58|300|W|,Meriden|CT|US|-72.81|41.54|59|N|,Meridian|ID|US|-116.39|43.61|90|N|,Meridian|MS|US|-88.7|32.36|39|N|,Merkezefendi|denizli|TR|29.04|37.81|280|W|,Merlo|buenos aires|AR|-58.73|-34.67|268|W|,Merrillville|IN|US|-87.33|41.48|35|N|,Merrimack|NH|US|-71.49|42.87|26|N|east merrimack,Merritt Island|FL|US|-80.69|28.36|34|N|,Mersin|mersin|TR|34.64|36.81|537|W|myrte;icel,Mesa|AZ|US|-111.82|33.42|471|NW|,Mesquite|TX|US|-96.6|32.77|144|NW|,Messina|sicily|IT|15.55|38.19|219|W|mesina;messine;mesyna,Mestre|veneto|IT|12.25|45.49|147|W|mestre bei venedig,Metairie|LA|US|-90.15|29.98|138|NW|,Metairie Terrace|LA|US|-90.16|29.98|142|NW|,Metepec|MX15|MX|-99.6|19.26|28|N|municipio metepec;municipio de metepec,Methuen|MA|US|-71.19|42.73|52|N|,Metro|lampung|ID|105.31|-5.11|182|W|kota metro,Metrotown|BC|CA|-123|49.23|52|N|,Mexicali|MX02|MX|-115.45|32.63|1032|NW|,Mexico City|MX09|MX|-99.13|19.43|12294|NW|ciudad de mexico;mexico by;cidade do mexico;citta del messico;ciudad de mejico;meksyk;mexico;mexico d f;mexico stad;mexiko stadt;mexico distrito federal;valle de mexico,Meycauayan|central luzon|PH|120.96|14.74|228|W|kota meycauayan;meycauayan city,Miami|FL|US|-80.19|25.77|487|NW|,Miami Beach|FL|US|-80.13|25.79|92|N|,Miami Gardens|FL|US|-80.25|25.94|113|N|,Miami Lakes|FL|US|-80.31|25.91|30|N|,Mian Channun|punjab|PK|72.36|30.44|140|W|mian channu,Miandoab|west azerbaijan|IR|46.11|36.97|134|W|,Mianyang|sichuan|CN|104.68|31.47|1550|W|mien jang;mien duong,Mianzhu Deyang Sichuan|sichuan|CN|104.22|31.34|510|W|,Miass|chelyabinsk|RU|60.11|55.05|167|W|,Michigan City|IN|US|-86.9|41.71|31|N|,Mid-City|CA|US|-118.36|34.04|83|N|,Middelburg|mpumalanga|ZA|29.46|-25.78|196|W|,Middle River|MD|US|-76.44|39.33|25|N|,Middle Village|NY|US|-73.88|40.72|29|N|,Middlesbrough|england|GB|-1.23|54.58|142|W|,Middletown|NJ|US|-74.12|40.39|65|N|middletown township;municipio de middletown,Middletown|OH|US|-84.4|39.52|48|N|,Middletown|CT|US|-72.65|41.56|46|N|,Middletown|NY|US|-74.42|41.45|27|N|,Midland|TX|US|-102.08|32|132|NW|,Midland|MI|US|-84.25|43.62|42|N|,Midvale|UT|US|-111.9|40.61|32|N|,Midwest City|OK|US|-97.4|35.45|57|N|,Miguel Aleman (La Doce)|MX26|MX|-111.48|28.84|30|N|,Miguel Hidalgo|MX09|MX|-99.2|19.43|372|NW|delegacion miguel hidalgo,Milagro|guayas|EC|-79.59|-2.13|133|W|,Milan|lombardy|IT|9.19|45.46|1371|W|milano;mailand;mediolan;milaan;milao,Milford|CT|US|-73.06|41.22|52|N|,Milford|MA|US|-71.52|42.14|25|N|,Milford Mill|MD|US|-76.77|39.35|29|N|,Mililani Town|HI|US|-158.02|21.45|27|N|,Millcreek|UT|US|-111.88|40.69|62|N|,Milliken|ON|CA|-79.3|43.82|26|N|,Millville|NJ|US|-75.04|39.4|28|N|,Milpitas|CA|US|-121.91|37.43|77|N|,Milton|ON|CA|-79.88|43.52|132|NW|,Milton|GA|US|-84.3|34.13|37|N|,Milton|MA|US|-71.07|42.25|27|N|,Milton Keynes|england|GB|-0.76|52.04|256|W|,Milwaukee|WI|US|-87.91|43.04|563|NW|,Mimico|ON|CA|-79.51|43.62|33|N|,Minamirinkan|kanagawa|JP|139.44|35.5|224|W|,Minatitlan|MX30|MX|-94.56|18|112|N|,Minato|wakayama|JP|135.15|34.22|375|W|,Minato City|tokyo|JP|139.75|35.66|260|W|minato,Mingala Tangnyunt|yangon|MM|96.17|16.79|132|W|,Mingaladon|yangon|MM|96.1|16.92|136|W|,Mingora|khyber pakhtunkhwa|PK|72.36|34.78|361|W|mingaora,Minhang|shanghai|CN|121.37|31.11|2716|W|,Minna|niger state|NG|6.55|9.62|425|W|,Minneapolis|MN|US|-93.26|44.98|410|NW|mineapolis,Minnetonka|MN|US|-93.5|44.91|51|N|,Minnetonka Mills|MN|US|-93.44|44.94|50|N|,Minoh|osaka|JP|135.47|34.83|136|W|,Minot|ND|US|-101.3|48.23|49|N|,Minsk|minsk city|BY|27.57|53.9|1742|W|,Mint Hill|NC|US|-80.65|35.18|25|N|,Minya|minya|EG|30.76|28.09|283|W|,Mira Mesa|CA|US|-117.14|32.92|70|N|,Mirabel|QC|CA|-74.08|45.65|34|N|,Miraflores|lima region|PE|-77.03|-12.11|187|W|san borja,Miramar|FL|US|-80.23|25.99|137|NW|,Miramar|MX28|MX|-97.9|22.36|118|N|,Miri|sarawak|MY|113.99|4.4|300|W|marabu,Mirpur Khas|sindh|PK|69.01|25.53|267|W|,Mirpur Model Thana|dhaka division|BD|90.36|23.81|546|W|,Mirzapur|uttar pradesh|IN|82.57|25.14|220|W|,Misantla|MX30|MX|-96.85|19.93|26|N|,Misato Saitama|saitama|JP|139.88|35.84|142|W|,Mishawaka|IN|US|-86.16|41.66|48|N|,Miskolc|borsod abauj zemplen|HU|20.78|48.1|154|W|miszkolc,Misratah|misratah|LY|15.09|32.38|355|W|al misratah;misrata,Mission|TX|US|-98.33|26.22|83|N|,Mission|BC|CA|-122.3|49.13|41|N|,Mission Bend|TX|US|-95.66|29.69|36|N|,Mission District|CA|US|-122.42|37.76|47|N|,Mission Viejo|CA|US|-117.67|33.6|97|N|,Mississauga|ON|CA|-79.66|43.58|717|NW|,Missoula|MT|US|-113.99|46.87|71|N|,Missouri City|TX|US|-95.54|29.62|74|N|,Mit Ghamr|dakahlia|EG|31.26|30.72|153|W|,Mito|ibaraki|JP|140.45|36.35|270|W|,Mixco|guatemala|GT|-90.61|14.63|465|W|,Mixquiahuala de Juarez|MX13|MX|-99.21|20.23|25|N|,Miyakonojo|miyazaki|JP|131.07|31.73|161|W|,Miyazaki|miyazaki|JP|131.42|31.92|401|W|miyazaki shi;miyazakishi,Mlolongo|machakos county|KE|36.94|-1.4|136|W|,Mobile|AL|US|-88.04|30.69|183|NW|,Mocuba|zambezia province|MZ|36.99|-16.84|196|W|,Modena|emilia romagna|IT|10.93|44.65|184|W|modene,Modesto|CA|US|-121|37.64|211|NW|,Modinagar|uttar pradesh|IN|77.57|28.83|475|W|,Moenchengladbach|north rhine westphalia|DE|6.44|51.19|261|W|monchengladbach,Moga|punjab|IN|75.17|30.81|163|W|,Mogadishu|banaadir|SO|45.34|2.04|2587|W|mogadischu;mogadiscio;mogadiszu;mogadisu;mogadiso,Mogi das Cruzes|sao paulo|BR|-46.19|-23.52|325|W|,Mogi Guacu|sao paulo|BR|-46.95|-22.37|160|W|,Mohali|punjab|IN|76.72|30.68|166|W|,Mohammadpur|rajshahi division|BD|88.53|24.9|527|W|,Mohammedia|casablanca settat|MA|-7.38|33.69|227|W|al muhammadijja;muhammediye;fedala,Mojokerto|east java|ID|112.43|-7.47|141|W|kota mojokerto,Mokotow|mazovia|PL|21.03|52.19|217|W|,Mokpo|jeollanam do|KR|126.39|34.81|268|W|mogpo,Moline|IL|US|-90.52|41.51|42|N|,Mombasa|mombasa county|KE|39.66|-4.05|1208|W|mombassa;mombaca,Monclova|MX07|MX|-101.42|26.91|215|NW|,Moncton|NB|CA|-64.8|46.09|86|N|,Monroe|LA|US|-92.12|32.51|49|N|,Monroe|NC|US|-80.55|34.99|34|N|,Monroeville|PA|US|-79.79|40.42|28|N|,Monrovia|montserrado county|LR|-10.8|6.3|1542|W|monrowia,Monrovia|CA|US|-118|34.15|37|N|,Montclair|NJ|US|-74.21|40.83|39|N|,Montclair|CA|US|-117.69|34.08|38|N|,Montebello|CA|US|-118.11|34.01|63|N|,Montemorelos|MX19|MX|-99.83|25.19|67|N|,Monterey|CA|US|-121.89|36.6|28|N|monterrey,Monterey Park|CA|US|-118.12|34.06|61|N|,Monteria|cordoba|CO|-75.88|8.75|490|W|,Monterrey|MX19|MX|-100.32|25.68|1135|NW|monterrei;monterrey city,Montes Claros|minas gerais|BR|-43.86|-16.73|437|W|,Montevideo|montevideo department|UY|-56.19|-34.9|1270|W|montevideu,Montgomery|AL|US|-86.3|32.37|195|NW|,Montgomery Village|MD|US|-77.2|39.18|32|N|,Montpellier|occitanie|FR|3.88|43.61|248|W|,Montreal|QC|CA|-73.59|45.51|1762|NW|montreal city,Montreal-Nord|QC|CA|-73.63|45.6|86|N|,Monywa|sagaing region|MM|95.14|22.11|182|W|munywa,Moore|OK|US|-97.49|35.34|60|N|,Mooresville|NC|US|-80.81|35.58|36|N|,Moorhead|MN|US|-96.77|46.87|42|N|,Moorpark|CA|US|-118.88|34.29|36|N|,Moose Jaw|SK|CA|-105.53|50.4|33|N|,Mopti|mopti|ML|-4.18|14.48|186|W|,Moradabad|uttar pradesh|IN|78.78|28.84|721|W|,Moratuwa|western province|LK|79.88|6.77|168|W|,Morelia|MX16|MX|-101.18|19.7|743|NW|,Morena|madhya pradesh|IN|78|26.5|200|W|,Moreno|buenos aires|AR|-58.79|-34.63|148|W|,Moreno Valley|CA|US|-117.23|33.94|204|NW|,Morgan Hill|CA|US|-121.65|37.13|42|N|,Morgantown|WV|US|-79.96|39.63|30|N|,Moriguchi|osaka|JP|135.57|34.73|143|W|,Morioka|iwate|JP|141.15|39.7|290|W|,Morningside Heights|NY|US|-73.96|40.81|55|N|,Moro|sindh|PK|68|26.66|142|W|,Morogoro|morogoro|TZ|37.66|-6.82|471|W|,Moroleon|MX11|MX|-101.19|20.13|43|N|,Morris Heights|NY|US|-73.92|40.85|40|N|,Morristown|TN|US|-83.29|36.21|29|N|,Morvi|gujarat|IN|70.84|22.82|210|W|,Moscow|moscow|RU|37.62|55.75|10381|W|moscou;moscova;moscovo;moscu;matxcova;mosca;moskau;moskou;moskova;moskva;moskwa;mat xco va,Moscow|ID|US|-117|46.73|25|N|,Moshi|kilimanjaro|TZ|37.33|-3.35|221|W|,Mossamedes|namibe|AO|12.15|-15.2|255|W|mocamedes;namibe,Mossoro|rio grande do norte|BR|-37.34|-5.19|264|W|,Mostaganem|mostaganem|DZ|0.09|35.93|162|W|mustaghanam,Mostoles|madrid|ES|-3.86|40.32|207|W|,Mosul|nineveh|IQ|43.12|36.34|1683|W|mosoel;mossoul;mossul;musul,Motijheel|dhaka division|BD|90.42|23.73|202|W|,Mott Haven|NY|US|-73.92|40.81|51|N|,Moundou|logone occidental|TD|16.08|8.57|196|W|,Mount Juliet|TN|US|-86.52|36.2|31|N|,Mount Laurel|NJ|US|-74.89|39.93|41|N|,Mount Lebanon|PA|US|-80.05|40.36|32|N|,Mount Olive-Silverstone-Jamestown|ON|CA|-79.59|43.75|32|N|,Mount Pleasant|SC|US|-79.86|32.79|81|N|mt pleasant,Mount Pleasant|DC|US|-77.04|38.93|35|N|ingleside;mount pleasant village;rosemont park;walbridge,Mount Pleasant|BC|CA|-123.1|49.27|33|N|,Mount Pleasant|WI|US|-87.86|42.7|26|N|,Mount Pleasant|MI|US|-84.77|43.6|26|N|mt pleasant,Mount Pleasant West|ON|CA|-79.39|43.7|29|N|,Mount Prospect|IL|US|-87.94|42.07|54|N|,Mount Vernon|NY|US|-73.84|40.91|68|N|,Mount Vernon|WA|US|-122.33|48.42|34|N|,Mountain View|CA|US|-122.08|37.39|80|N|,Moyotzingo|MX21|MX|-98.4|19.25|27|N|,Mpanda|katavi|TZ|31.07|-6.34|204|W|,Mpumalanga|kwazulu natal|ZA|30.64|-29.81|140|W|epumalanga;hammarsdale,Mt Pleasant|BC|CA|-123.1|49.26|32|N|,Mthatha|eastern cape|ZA|28.78|-31.59|164|W|umtata,Mtwara|mtwara|TZ|40.18|-10.27|140|W|,Mu-se|shan state|MM|97.9|24|165|W|,Muar|johor|MY|102.57|2.04|314|W|muar town,Mubi|adamawa|NG|13.27|10.27|225|W|,Mudanjiang|heilongjiang|CN|129.63|44.55|665|W|mu tan tiang,Mueang Nonthaburi|nonthaburi|TH|100.51|13.86|254|W|nonthaburi,Muelheim|north rhine westphalia|DE|6.88|51.43|173|W|mulheim;muelheim an der ruhr;mulheim an der ruhr,Muenster|north rhine westphalia|DE|7.63|51.96|308|W|munster,Mufulira|copperbelt|ZM|28.24|-12.55|169|W|,Mukalla|muhafazat hadramaout|YE|49.12|14.54|594|W|al mukalla;mukala,Mukim Pulai|johor|MY|103.67|1.53|505|W|,Mukono|central region|UG|32.76|0.35|191|W|,Mulenvos|luanda|AO|13.33|-8.87|882|W|,Multan|punjab|PK|71.48|30.2|2169|W|,Mulugu|telangana|IN|79.94|18.19|297|W|,Mumbai|maharashtra|IN|72.88|19.07|12691|W|mumbaj;mumbay;bombay;bombaim;bombaj,Muncie|IN|US|-85.39|40.19|70|N|,Mundelein|IL|US|-88|42.26|31|N|,Munger|bihar|IN|86.47|25.37|213|W|,Munich|bavaria|DE|11.58|48.14|1505|W|munchen;mnichov;monachium;monaco di baviera;muenchen;munique;munih,Muntinlupa|calabarzon|PH|121.05|14.39|552|W|city of muntinlupa,Muratpasa|antalya|TR|30.76|36.89|450|W|,Murcia|murcia|ES|-1.13|37.99|471|W|murcie;murcja,Murfreesboro|TN|US|-86.39|35.85|165|NW|,Muricay|zamboanga peninsula|PH|123.48|7.83|132|W|,Muridke|punjab|PK|74.26|31.8|254|W|muridike,Murmansk|murmansk|RU|33.1|68.97|295|W|moermansk;mourmansk;muurmanski;romanov;romanov on murman;semenova,Murray|UT|US|-111.89|40.67|49|N|,Murrieta|CA|US|-117.21|33.55|109|N|,Murwara|madhya pradesh|IN|80.39|23.84|221|W|,Musaffah|abu dhabi|AE|54.48|24.36|243|W|musaffah city,Musanze|northern province|RW|29.63|-1.5|153|W|ruhengeri,Musashino|tokyo|JP|139.56|35.71|150|W|,Muscat|muscat|OM|58.41|23.58|797|W|mascate;maskat;masqat;muskat,Mushin|lagos|NG|3.35|6.53|199|W|,Muskegon|MI|US|-86.25|43.23|38|N|,Muskogee|OK|US|-95.37|35.75|38|N|,Musoma|mara|TZ|33.8|-1.5|164|W|,Mutare|manicaland|ZW|32.67|-18.97|224|W|,Muzaffarabad|azad kashmir|PK|73.47|34.37|725|W|,Muzaffargarh|punjab|PK|71.19|30.07|235|W|,Muzaffarnagar|uttar pradesh|IN|77.7|29.47|349|W|,Muzaffarpur|bihar|IN|85.39|26.12|354|W|,Mwala|machakos county|KE|37.45|-1.35|181|W|,Mwanza|mwanza|TZ|32.9|-2.52|1104|W|,Mwene|lualaba|CD|22.87|-9.82|295|W|,Mwene-Ditu|lomami|CD|23.45|-7.01|189|W|,My Tho|dong thap|VN|106.36|10.36|270|W|,Myeik|tanintharyi region|MM|98.6|12.44|173|W|mergui,Myingyan|mandalay region|MM|95.39|21.46|141|W|,Mykolayiv|mykolaiv|UA|31.99|46.98|470|W|mikolajow;mykolaiv;nicolopoli;vernoleninsk,Mymensingh|mymensingh division|BD|90.41|24.76|225|W|,Myrtle Beach|SC|US|-78.89|33.69|31|N|,Mysuru|karnataka|IN|76.64|12.3|920|W|maisur;mysore,Mytishchi|moscow oblast|RU|37.73|55.91|160|W|mitischi;mytichtchi;mytischtschi;mytisjtji;mytisjtsji;mytiszczi;mytistsi;mytisci;mitisci;miytisci,Mzuzu|northern region|MW|34.02|-11.47|249|W|,N'dalatando|cuanza norte|AO|14.91|-9.3|161|W|ndalatando,N'Djamena|n djamena|TD|15.04|12.11|1359|W|yamena;indschamina;ndjamena;ndzamena,Naberezhnyye Chelny|tatarstan republic|RU|52.42|55.74|509|W|naberezhnye chelny;naberejnye chelny;nabereschnyje tschelny;naberezjnye tsjelny;nabereznyje tselny;nabereznyje celny;brezhnev,Nablus|west bank|PS|35.25|32.22|130|W|naplouse;shechem;sichem;siquem;sychem,Nacala|nampula|MZ|40.69|-14.56|239|W|cidade de nacala;nacala porto,Nacogdoches|TX|US|-94.66|31.6|33|N|,Nada|hainan|CN|109.58|19.52|256|W|danzhou,Nadiad|gujarat|IN|72.86|22.69|225|W|,Nador|oriental|MA|-2.93|35.17|176|W|,Naga|bicol region|PH|123.18|13.62|174|W|kota naga,Naga|central visayas|PH|123.76|10.21|138|W|city of naga;kota naga;naga city,Nagano|nagano|JP|138.18|36.65|372|W|,Nagaoka|niigata|JP|138.85|37.45|266|W|,Nagar Naluakot|dhaka division|BD|90.77|24.16|273|W|nogor noluakot,Nagareyama|chiba|JP|139.9|35.86|200|W|,Nagarpur|dhaka division|BD|89.88|24.06|238|W|,Nagasaki|nagasaki|JP|129.88|32.75|409|W|nagasaki shi;nagasakishi;nangasaque,Nagercoil|tamil nadu|IN|77.43|8.18|224|W|nagarkoil;nagarkovil,Nagoya|aichi|JP|136.91|35.18|2332|W|nagoia;nagoja;nagoya city;nagoya shi,Nagpur|maharashtra|IN|79.08|21.15|2405|W|,Naha|okinawa|JP|127.68|26.21|317|W|,Naihati|west bengal|IN|88.42|22.89|253|W|,Nairobi|nairobi county|KE|36.82|-1.28|4397|W|,Naivasha|nakuru county|KE|36.43|-0.71|198|W|,Najaf|najaf|IQ|44.35|32.03|482|W|an nadzaf;an najaf;nadjaf;nadschaf;nadzaf;nayaf;necef,Najafabad|isfahan|IR|51.37|32.63|235|W|,Najafgarh|delhi|IN|76.98|28.61|1365|W|,Najran|najran region|SA|44.13|17.49|505|W|necran,Nakano|tokyo|JP|139.67|35.7|344|W|nakano city,Nakhodka|primorye|RU|132.92|42.84|146|W|nachodka;nahodka;najodka;langouwai,Nakuru|nakuru county|KE|36.07|-0.31|570|W|,Nalchik|kabardino balkariya republic|RU|43.62|43.5|239|W|nal chik;naltschik;naltsik;nalcik,Nalgonda|telangana|IN|79.27|17.05|154|W|,Nam GJinh|ninh binh|VN|106.18|20.43|448|W|nam dinh,Namangan|namangan|UZ|71.67|41|713|W|namanga;nemengan,Namp'o|nampo|KP|125.41|38.74|455|W|nampo,Nampa|ID|US|-116.56|43.54|89|N|,Nampula|nampula|MZ|39.27|-15.12|770|W|,Nanaimo|BC|CA|-123.94|49.17|90|N|,Nanchang|jiangxi|CN|115.85|28.68|2357|W|nam xuong;nan cchang,Nanchital de Lazaro Cardenas del Rio|MX30|MX|-94.41|18.07|25|N|villa nanchital,Nanchong|sichuan|CN|106.08|30.8|1858|W|nam sung;nan cchung,Nanchuan|chongqing|CN|107.1|29.15|204|W|,Nanded|maharashtra|IN|77.31|19.16|550|W|,Nandyal|andhra pradesh|IN|78.48|15.48|211|W|,Nangloi Jat|delhi|IN|77.07|28.68|205|W|,Nanjin|chongqing|CN|106.27|29.98|143|W|,Nanjing|jiangsu|CN|118.78|32.06|9314|W|nankin;nam kinh;nanchino;nanquim;nankijn,Nankana Sahib|punjab|PK|73.71|31.45|130|W|,Nanning|guangxi|CN|108.32|22.82|3839|W|nam ninh;nan ning,Nanpiao|liaoning|CN|120.75|41.1|157|W|,Nanping|fujian|CN|118.17|26.64|467|W|nam binh;nan pching,Nanqiao|shanghai|CN|121.45|30.92|361|W|,Nansana|central region|UG|32.53|0.36|532|W|,Nantes|pays de la loire|FR|-1.55|47.22|325|W|,Nantong|jiangsu|CN|120.87|32.03|2273|W|nam thong;nan tchung,Nantou|guangdong|CN|113.29|22.72|130|W|,Nanyang|henan|CN|112.55|33.01|1811|W|nam duong;nan jang,Napa|CA|US|-122.29|38.3|80|N|,Naperville|IL|US|-88.15|41.79|147|NW|,Naples|campania|IT|14.27|40.85|909|W|neapel;napels;napoli;neapol;neapole;napoles,Nara-shi|nara|JP|135.8|34.69|367|W|nara,Narashino|chiba|JP|140.04|35.68|176|W|,Narayanganj|dhaka division|BD|90.5|23.61|223|W|,Narela|delhi|IN|77.09|28.85|800|W|,Narita|chiba|JP|140.32|35.78|132|W|,Narowal|punjab|PK|74.87|32.1|130|W|,Narsingdi|dhaka division|BD|90.72|23.92|281|W|,Nashik|maharashtra|IN|73.79|20|1486|W|,Nashua|NH|US|-71.47|42.77|87|N|,Nashville|TN|US|-86.78|36.17|689|NW|,Nasim Shahr|tehran|IR|51.16|35.57|200|W|,Nasimshahr|tehran|IR|51.16|35.57|200|W|,Nasiriyah|dhi qar|IQ|46.26|31.06|558|W|an nasiriya;nasirijja;nasiriya,Nassau|new providence|BS|-77.34|25.06|227|W|nasau,Natal|rio grande do norte|BR|-35.21|-5.79|896|W|,Natick|MA|US|-71.35|42.28|32|N|,National City|CA|US|-117.1|32.68|61|N|,Natore|rajshahi division|BD|88.99|24.41|369|W|,Naucalpan de Juarez|MX15|MX|-99.24|19.48|834|NW|naucalpan,Naugatuck|CT|US|-73.05|41.49|31|N|,Navarre|FL|US|-86.86|30.4|31|N|,Navegantes|benguela|AO|13.39|-12.59|240|W|,Navi Mumbai|maharashtra|IN|73.02|19.04|2600|W|nova bombaim;new bombay,Navoiy|navoiy region|UZ|65.38|40.08|144|W|navoi;nawoi;nevai,Navojoa|MX26|MX|-109.44|27.07|113|N|,Navolato|MX25|MX|-107.7|24.77|29|N|,Navotas|national capital region|PH|120.95|14.67|249|W|,Navsari|gujarat|IN|72.92|20.94|171|W|,Nawabganj|rajshahi division|BD|88.27|24.59|142|W|,Nawabshah|sindh|PK|68.4|26.24|363|W|,Nay Pyi Taw|nay pyi taw|MM|96.13|19.75|925|W|naipidau;naypyidaw;naypyitaw,Nazarabad|alborz province|IR|50.61|35.95|213|W|,Nazran|ingushetiya republic|RU|44.77|43.23|164|W|nasran,Nazret|oromiya|ET|39.27|8.55|456|W|,Ndola|copperbelt|ZM|28.64|-12.96|627|W|,Near North Side|IL|US|-87.63|41.9|85|N|,Needham|MA|US|-71.23|42.28|28|N|,Neenah|WI|US|-88.46|44.19|25|N|,Negombo|western province|LK|79.84|7.21|137|W|negumbo,Neihu|taiwan|TW|121.59|25.08|274|W|distretto di neihu;district de neihu;distrik neihu;neihu district,Neijiang|sichuan|CN|105.06|29.58|1251|W|nej tiang,Neiva|huila department|CO|-75.28|2.93|357|W|,Nek'emte|oromiya|ET|36.55|9.08|156|W|,Nellore|andhra pradesh|IN|79.99|14.45|547|W|nellur,Nepalgunj|lumbini province|NP|81.62|28.05|166|W|,Nepean|ON|CA|-75.72|45.34|180|NW|,Netanya|central district|IL|34.86|32.33|228|W|netania;netanja,Neue Neustadt|saxony anhalt|DE|11.63|52.15|226|W|,Neufchatel-Est-Lebourgneuf|QC|CA|-71.34|46.85|37|N|,Neukoelln|state of berlin|DE|13.43|52.48|164|W|neukolln;berlin neukolln,Neuquen|neuquen|AR|-68.06|-38.95|231|W|ciudad de neuquen,Neuss|north rhine westphalia|DE|6.69|51.2|152|W|,Nevinnomyssk|stavropol kray|RU|41.94|44.63|134|W|nevinnomissk;newinnomyssk;niewinnomyssk,New Albany|IN|US|-85.82|38.29|36|N|,New Bedford|MA|US|-70.93|41.64|101|N|,New Berlin|WI|US|-88.11|42.98|39|N|,New Bern|NC|US|-77.04|35.11|30|N|,New Braunfels|TX|US|-98.12|29.7|70|N|,New Britain|CT|US|-72.78|41.66|72|N|,New Brunswick|NJ|US|-74.45|40.49|57|N|nuevo brunswick,New Cairo|cairo|EG|31.47|30.03|313|W|,New City|IL|US|-87.66|41.81|40|N|,New City|NY|US|-73.99|41.15|33|N|,New Delhi|delhi|IN|77.21|28.62|317|W|neu delhi;nova deli;nove dilli;nueva delhi;nuova delhi;yeni delhi,New Haven|CT|US|-72.93|41.31|130|NW|,New Iberia|LA|US|-91.82|30|30|N|la nouvelle iberie;nueva iberia,New Kingston|saint andrew parish|JM|-76.78|18.01|583|W|,New Lenox|IL|US|-87.97|41.51|25|N|,New London|CT|US|-72.1|41.36|27|N|,New Orleans|LA|US|-90.08|29.95|362|NW|nova orleaes;nowy orlean;nueva orleans;new orleans louisiana;la nouvelle orleans,New Rochelle|NY|US|-73.78|40.91|79|N|nouvelle rochelle;nueva rochelle,New South Memphis|TN|US|-90.06|35.09|641|NW|,New Taipei City|taipei|TW|121.46|25.06|4004|W|new taipei;neu taipeh;nieuw taipei;nouveau taipei;nova taipe;nova tchaj pej;nowe tajpej;nueva taipei;nuova taipei;xinbei city;yeni taipei,New Territories||HK|114.11|22.42|3984|W|new territory hong kong,New Westminster|BC|CA|-122.91|49.21|78|N|new westminister,New York City|NY|US|-74.01|40.71|8804|NW|new york;nueva york;kota new york;new york kenti;nova iorque;nowy jork;nuova york,Newark|NJ|US|-74.17|40.74|281|NW|,Newark|OH|US|-82.4|40.06|47|N|,Newark|CA|US|-122.04|37.53|45|N|,Newark|DE|US|-75.75|39.68|33|N|,Newburgh|NY|US|-74.01|41.5|28|N|,Newcastle|new south wales|AU|151.78|-32.93|508|W|,Newcastle|kwazulu natal|ZA|29.93|-27.76|404|W|,Newcastle upon Tyne|england|GB|-1.61|54.97|300|W|newcastle;newcastle tren song tyne;newcastle on tyne,Newington|CT|US|-72.72|41.7|30|N|,Newmarket|ON|CA|-79.47|44.05|91|N|,Newnan|GA|US|-84.8|33.38|37|N|,Newport|wales|GB|-3|51.59|161|W|,Newport Beach|CA|US|-117.93|33.62|87|N|,Newport News|VA|US|-76.43|36.98|186|NW|,Newton|BC|CA|-122.85|49.13|159|NW|surrey newton,Newton|MA|US|-71.21|42.34|88|N|,Neyagawa|osaka|JP|135.63|34.77|238|W|,Neyshabur|razavi khorasan|IR|58.8|36.21|220|W|nichapur;nischapur;nishapur,Neyveli|tamil nadu|IN|79.5|11.61|179|W|,Ngaoundere|adamaoua|CM|13.58|7.33|238|W|ngaundere,Nghi Son|thanh hoa province|VN|105.82|19.33|302|W|,Nha Trang|khanh hoa|VN|109.19|12.25|579|W|,NIA Valencia|northern mindanao|PH|125.09|7.91|223|W|kota valencia;valencia city,Niagara|ON|CA|-79.41|43.64|31|N|,Niagara Falls|ON|CA|-79.07|43.1|99|N|cataratas del niagara;chutes niagara,Niagara Falls|NY|US|-79.06|43.09|48|N|,Niamey|niamey|NE|2.11|13.51|1323|W|,Nianbo|qinghai|CN|102.42|36.48|260|W|haidong,Nice|provence alpes cote d azur|FR|7.27|43.7|342|W|niza;nicea;nisa;nizza,Nicholasville|KY|US|-84.57|37.88|29|N|,Nicolas Romero|MX15|MX|-99.31|19.64|281|NW|ciudad nicolas romero,Nicosia|nicosia|CY|33.35|35.17|200|W|lefkosa;nikosia;lefkosia;nicosie;nikozja;nikosie,Nigel|gauteng|ZA|28.48|-26.43|140|W|,Niigata|niigata|JP|139.04|37.92|797|W|,Niiza|saitama|JP|139.56|35.82|166|W|,Nijmegen|gelderland|NL|5.85|51.84|177|W|nimwegen;nimega;nimegue,Niles|IL|US|-87.8|42.02|29|N|,Nilopolis|rio de janeiro|BR|-43.41|-22.81|155|W|,Niluefer|bursa province|TR|28.92|40.21|536|W|nilufer,Nimes|occitanie|FR|4.36|43.84|148|W|,Ning'er|yunnan|CN|101.04|23.04|162|W|,Ningbo|zhejiang|CN|121.55|29.88|3731|W|ninh ba,Ningde|fujian|CN|119.52|26.66|429|W|ningteh,Ninh Hoa|khanh hoa|VN|109.12|12.49|230|W|,Nis|central serbia|RS|21.9|43.32|250|W|nisz,Nishi-Tokyo-shi|tokyo|JP|139.54|35.73|207|W|,Nishinomiya|hyogo|JP|135.33|34.72|485|W|,Nishio|aichi|JP|137.05|34.87|169|W|,Niteroi|rio de janeiro|BR|-43.1|-22.88|515|W|,Nizamabad|telangana|IN|78.1|18.67|311|W|,Nizhnekamsk|tatarstan republic|RU|51.82|55.64|234|W|nijnekamsk;nischnekamsk;nizjnekamsk;nizniekamsk;niznekamsk;tubenkama;tuban kama,Nizhnevartovsk|khanty mansia|RU|76.55|60.93|244|W|nijnevartovsk;nischnewartowsk;nizjnevartovsk;nizniewartowsk;niznevartovsk,Nizhniy Novgorod|nizhny novgorod oblast|RU|44|56.33|1259|W|nijni novgorod;nischni nowgorod;nizhny novgorod;nizhni novgorod;nizjnij novgorod;nizni novgorod;gorkij,Nizhny Tagil|sverdlovsk oblast|RU|59.97|57.92|381|W|nizjnij tagil,Njeru|central region|UG|33.18|0.44|178|W|,Nkongsamba|littoral|CM|9.94|4.95|162|W|,Nnewi|anambra|NG|6.92|6.02|193|W|,Noblesville|IN|US|-86.01|40.05|59|N|,Noda|chiba|JP|139.87|35.95|154|W|noda shi,Nogales|MX26|MX|-110.94|31.31|264|NW|heroica nogales;los nogales,Noida|uttar pradesh|IN|77.33|28.58|293|W|,Nong Chok|bangkok|TH|100.86|13.86|157|W|,Nong Khaem|bangkok|TH|100.35|13.71|150|W|,Nor Nork|yerevan|AM|44.57|40.2|137|W|,Norco|CA|US|-117.55|33.93|26|N|,Norfolk|VA|US|-76.29|36.85|238|NW|,Norfolk County|ON|CA|-80.38|42.83|60|N|,Norilsk|krasnoyarsk krai|RU|88.2|69.35|140|W|noril sk;norylsk,Normal|IL|US|-88.99|40.51|54|N|,Norman|OK|US|-97.44|35.22|128|N|,Norristown|PA|US|-75.34|40.12|34|N|,North Andover|MA|US|-71.14|42.7|28|N|,North Bay|ON|CA|-79.47|46.32|50|N|,North Bel Air|MD|US|-76.35|39.54|33|N|,North Bergen|NJ|US|-74.01|40.8|63|N|,North Bethesda|MD|US|-77.12|39.04|43|N|,North Brunswick|NJ|US|-74.48|40.45|43|N|,North Center|IL|US|-87.68|41.95|34|N|,North Charleston|SC|US|-79.97|32.85|108|N|,North Chicago|IL|US|-87.84|42.33|29|N|,North Chicopee|MA|US|-72.6|42.18|55|N|,North Cowichan|BC|CA|-123.69|48.84|29|N|,North Creek|WA|US|-122.18|47.82|26|N|,North Delta|BC|CA|-122.92|49.17|60|N|nord delta,North Fort Myers|FL|US|-81.88|26.67|39|N|n ft myers,North Highlands|CA|US|-121.37|38.69|42|N|,North Hills|CA|US|-118.48|34.24|56|N|,North Hollywood|CA|US|-118.38|34.17|64|N|lankershim;toluca,North Kingstown|RI|US|-71.47|41.55|28|N|n kingstown,North La Crosse|WI|US|-91.25|43.85|50|N|,North Las Vegas|NV|US|-115.12|36.2|234|NW|,North Lauderdale|FL|US|-80.23|26.22|43|N|n lauderdale,North Lawndale|IL|US|-87.72|41.86|35|N|,North Little Rock|AR|US|-92.27|34.77|66|N|,North Miami|FL|US|-80.19|25.89|62|N|,North Miami Beach|FL|US|-80.16|25.93|43|N|,North Olmsted|OH|US|-81.92|41.42|32|N|,North Peoria|IL|US|-89.58|40.72|113|N|,North Port|FL|US|-82.24|27.04|62|N|,North Providence|RI|US|-71.47|41.85|33|N|,North Richland Hills|TX|US|-97.23|32.83|69|N|,North Ridgeville|OH|US|-82.02|41.39|32|N|,North Royalton|OH|US|-81.72|41.31|30|N|n royalton,North Shore|auckland|NZ|174.75|-36.8|258|W|,North Stamford|CT|US|-73.54|41.14|121|N|,North Tonawanda|NY|US|-78.86|43.04|30|N|,North Vancouver|BC|CA|-123.07|49.32|88|N|vancouver utara,Northampton|england|GB|-0.88|52.25|245|W|,Northampton|MA|US|-72.64|42.33|28|N|,Northbrook|IL|US|-87.83|42.13|33|N|,Northglenn|CO|US|-104.99|39.89|39|N|,Northridge|CA|US|-118.54|34.23|68|N|,Norwalk|CA|US|-118.08|33.9|107|N|,Norwalk|CT|US|-73.41|41.12|88|N|,Norwich|england|GB|1.3|52.63|143|W|,Norwich|CT|US|-72.08|41.52|39|N|,Norwood|MA|US|-71.2|42.19|28|N|,Norzagaray|central luzon|PH|121.05|14.91|140|W|,Nossa Senhora do Socorro|sergipe|BR|-37.13|-10.86|204|W|,Notre-Dame-de-Grace|QC|CA|-73.61|45.48|68|N|,Nottingham|england|GB|-1.15|52.95|323|W|,Nou Barris|catalonia|ES|2.18|41.44|166|W|distrito nou barris;distrito de nou barris,Nouadhibou|dakhlet nouadhibou|MR|-17.04|20.94|146|W|nawazibu;nouadibou;nuadibu;port etienne,Nouakchott||MR|-15.98|18.09|1184|W|nawakszut;nuakchot;nuaksot;nuaksott,Nova Friburgo|rio de janeiro|BR|-42.53|-22.28|189|W|nueva friburgo,Nova Iguacu|rio de janeiro|BR|-43.45|-22.76|843|W|,Nova Vida|luanda|AO|13.22|-8.91|464|W|,Novato|CA|US|-122.57|38.11|55|N|,Novi|MI|US|-83.48|42.48|58|N|,Novi Sad|vojvodina|RS|19.84|45.25|215|W|nowy sad;neusatz,Novo Hamburgo|rio grande do sul|BR|-51.13|-29.68|253|W|,Novocherkassk|rostov|RU|40.09|47.42|166|W|novotcherkassk;novotjerkassk;novotsjerkassk;novotserkassk;novocerkassk;nowoczerkask;nowotscherkassk,Novokuznetsk|kuzbass|RU|87.14|53.76|539|W|novokoeznetsk;novokouznetsk;novokusnetsk;novokuzneck;novokuznetk;nowokusnezk;nowokuznieck,Novomoskovsk|tula oblast|RU|38.29|54.01|130|W|nowomoskowsk,Novorossiysk|krasnodar krai|RU|37.76|44.73|241|W|novorossijsk;novorossiejsk;noworossijsk;noworosyjsk,Novosibirsk|novosibirsk oblast|RU|82.93|55.02|1612|W|novossibirsk;nowosibirsk;nowosybirsk;novo nikolaevsk;novonikolayevsk,Novozavodskyi|chernihiv oblast|UA|31.26|51.49|179|W|novozavodskyi raion;novozavodskyi rayon,Novyye Kuz'minki|moscow|RU|37.75|55.7|143|W|,Nowrangapur|odisha|IN|82.55|19.23|1220|W|,Nueva Italia de Ruiz|MX16|MX|-102.09|19.02|32|N|,Nueva Rosita|MX07|MX|-101.22|27.94|38|N|,Nuevo Casas Grandes|MX06|MX|-107.91|30.42|55|N|,Nuevo Laredo|MX28|MX|-99.52|27.48|416|NW|novo laredo,Nuevo Mexico|MX14|MX|-103.44|20.76|28|N|,Nukus|karakalpakstan|UZ|59.61|42.46|332|W|noukous,Numazu|shizuoka|JP|138.87|35.1|189|W|,Nunoa|santiago metropolitan|CL|-70.58|-33.45|255|W|,Nuremberg|bavaria|DE|11.08|49.45|515|W|nurnberg;neurenberg;norimberga;norimberk;norymberga;nuremberga,Nusantara|east kalimantan|ID|116.71|-0.97|147|W|ikn nusantara;ibu kota negara nusantara;nusantara capital city,Nutana Sector|SK|CA|-106.64|52.1|72|N|,Nutley|NJ|US|-74.16|40.82|27|N|,Nyala|southern darfur|SD|24.88|12.05|565|W|niala;nijala,Nyingchi|tibet|CN|94.36|29.65|200|W|,Nyzhnodniprovsk|dnipropetrovsk|UA|35.12|48.48|160|W|nyzhnodniprovsk vuzol,Nzerekore|nzerekore region|GN|-8.82|7.76|226|W|,O'Fallon|MO|US|-90.7|38.81|85|N|,O'Fallon|IL|US|-89.91|38.59|29|N|,Oak Creek|WI|US|-87.86|42.89|35|N|,Oak Forest|IL|US|-87.74|41.6|28|N|,Oak Hill|VA|US|-77.4|38.93|33|N|,Oak Lawn|IL|US|-87.76|41.71|56|N|oaklawn,Oak Park|IL|US|-87.78|41.89|52|N|,Oak Park|MI|US|-83.18|42.46|29|N|,Oak Ridge|TN|US|-84.27|36.01|29|N|,Oakdale|MN|US|-92.96|44.96|28|N|,Oakland|CA|US|-122.27|37.8|419|NW|,Oakland Park|FL|US|-80.13|26.17|44|N|,Oakley|CA|US|-121.71|38|39|N|,Oakton|VA|US|-77.3|38.88|34|N|,Oakville|ON|CA|-79.68|43.45|213|NW|,Oakville|MO|US|-90.3|38.47|36|N|,Oaxaca|MX20|MX|-96.73|17.06|255|NW|oaxaca city;oaxaca by;oaxaca de juarez,Obalende|lagos|NG|3.42|6.45|342|W|,Oberhausen|north rhine westphalia|DE|6.86|51.48|219|W|,Obihiro|hokkaido|JP|143.2|42.92|166|W|,Obolon|kyiv city|UA|30.51|50.51|239|W|obolonskyi raion;obolonskyi rayon;obolonskyy raion;obolonskyy rayon,Obuase|ashanti|GH|-1.67|6.2|179|W|obuasi,Ocala|FL|US|-82.14|29.19|58|N|,Oceanside|CA|US|-117.38|33.2|175|NW|,Oceanside|NY|US|-73.64|40.64|32|N|,Ocoee|FL|US|-81.54|28.57|43|N|,Ocosingo|MX05|MX|-92.09|16.91|41|N|,Ocotlan|MX14|MX|-102.77|20.35|83|N|,Ocoyoacac|MX15|MX|-99.46|19.27|26|N|,Ocozocoautla de Espinosa|MX05|MX|-93.37|16.76|39|N|la ventosa,Ocumare del Tuy|miranda|VE|-66.78|10.12|166|W|ocumare,Odawara|kanagawa|JP|139.16|35.26|188|W|,Odense|south denmark|DK|10.39|55.4|180|W|ottensee,Odenton|MD|US|-76.7|39.08|37|N|,Odesa|odesa|UA|30.74|46.49|1010|W|odessa;khadjibey,Odessa|TX|US|-102.37|31.85|114|N|,Odintsovo|moscow oblast|RU|37.28|55.67|137|W|odincovo;odincowo;odinzowo;odintovo,OErebro|orebro|SE|15.21|59.27|155|W|orebro,Ogaki|gifu|JP|136.62|35.35|161|W|,Ogbomoso|oyo state|NG|4.24|8.13|433|W|,Ogden|UT|US|-111.97|41.22|85|N|,Oildale|CA|US|-119.02|35.42|32|N|,Oita|oita|JP|131.6|33.23|477|W|oita shi;oitashi,Ojinaga|MX06|MX|-104.54|29.57|28|N|,Ojo de Agua|MX15|MX|-99.01|19.68|386|NW|,Okanagan Mission|BC|CA|-119.48|49.82|38|N|,Okara|punjab|PK|73.45|30.81|533|W|,Okayama|okayama|JP|133.93|34.65|724|W|okajama,Okazaki|aichi|JP|137.17|34.95|384|W|,Okene|kogi state|NG|6.24|7.55|479|W|,Okinawa|okinawa|JP|127.8|26.34|142|W|,Oklahoma City|OK|US|-97.52|35.47|681|NW|kota oklahoma;okla city,Okotoks|AB|CA|-113.98|50.73|30|N|,Okrika|rivers state|NG|7.08|4.74|133|W|,Olathe|KS|US|-94.82|38.88|134|NW|,Oldenburg|lower saxony|DE|8.21|53.14|159|W|oldemburgo;oldenbourg;oldenburgo,Oldham|england|GB|-2.12|53.54|237|W|,Olinda|pernambuco|BR|-34.86|-8.01|364|W|,Olive Branch|MS|US|-89.83|34.96|36|N|,Olmaliq|tashkent region|UZ|69.6|40.84|133|W|almalyk;almalik,Olney|PA|US|-75.12|40.04|39|N|mccartersville,Olney|MD|US|-77.07|39.15|33|N|,Olongapo|central luzon|PH|120.28|14.83|221|W|kota olongapo;olongapo city,Olsztyn|warmia masuria|PL|20.49|53.78|169|W|olstyn;allenstein,Olympia|WA|US|-122.9|47.04|55|N|,Omaha|NE|US|-95.94|41.26|486|NW|,Omdurman|khartoum|SD|32.48|15.64|1849|W|omdourman;umm durman,Ome|tokyo|JP|139.24|35.78|133|W|oume,Omsk|omsk oblast|RU|73.37|54.99|1172|W|omsc,Omuta|fukuoka|JP|130.45|33.03|131|W|,Ondo|ondo state|NG|4.84|7.09|375|W|,Ongata Rongai|kajiado county|KE|36.76|-1.4|172|W|,Ongole|andhra pradesh|IN|80.04|15.5|208|W|,Onitsha|anambra|NG|6.79|6.15|1553|W|,Onomichi|hiroshima|JP|133.2|34.42|131|W|onomici,Ontario|CA|US|-117.65|34.06|171|NW|,Ooty|tamil nadu|IN|76.7|11.41|233|W|ootacamund;udagamandalam;udhagamandalam;utakamand,Opelika|AL|US|-85.38|32.65|29|N|,Opportunity|WA|US|-117.24|47.65|25|N|,Oradea|bihor county|RO|21.92|47.05|183|W|grosswardein;gran varadino;oradea mare;oradia;velky varadin,Orai|uttar pradesh|IN|79.45|25.99|158|W|,Oral|west kazakhstan|KZ|51.43|51.25|330|W|oural;uralsk;ural sk,Oran|oran|DZ|-0.64|35.7|803|W|orano;ora,Orange|CA|US|-117.85|33.79|140|NW|,Orange|NJ|US|-74.23|40.77|34|N|,Orangevale|CA|US|-121.23|38.68|33|N|,Orangeville|ON|CA|-80.1|43.92|30|N|,Orcutt|CA|US|-120.44|34.87|28|N|,Ordos|inner mongolia|CN|109.78|39.61|1940|W|,Ordu|ordu|TR|37.89|40.98|229|W|cotyora,Oregon City|OR|US|-122.61|45.36|35|N|,Orekhovo-Borisovo|moscow|RU|37.73|55.61|144|W|,Orel|oryol oblast|RU|36.08|52.97|303|W|orjol;oryol;orzel,Orem|UT|US|-111.69|40.3|94|N|,Orenburg|orenburg oblast|RU|55.1|51.77|564|W|orenbourg;oremburgo,Orillia|ON|CA|-79.42|44.61|31|N|,Orizaba|MX30|MX|-97.1|18.85|123|N|,Orland Park|IL|US|-87.85|41.63|58|N|,Orlando|FL|US|-81.38|28.54|334|NW|,Orleans|ON|CA|-75.5|45.46|125|N|,Ormoc|eastern visayas|PH|124.61|11.01|238|W|kota ormoc;ormoc city,Ormond Beach|FL|US|-81.06|29.29|40|N|,Oro Valley|AZ|US|-110.97|32.39|45|N|,Orsk|orenburg oblast|RU|58.49|51.23|246|W|,Orumiyeh|west azerbaijan|IR|45.08|37.55|577|W|ourmia;urmia;urmiye,Oruro|oruro|BO|-67.09|-17.97|208|W|,Osaka|osaka|JP|135.5|34.69|2753|W|osaka shi;osaacke,Osan|gyeonggi do|KR|127.07|37.15|238|W|,Osasco|sao paulo|BR|-46.79|-23.53|728|W|,Osh|osh region|KG|72.8|40.53|322|W|och;osch;osj;osz,Oshawa|ON|CA|-78.85|43.9|175|NW|,Oshkosh|WI|US|-88.54|44.02|66|N|,Oshodi|lagos|NG|3.34|6.56|170|W|,Oslo|oslo|NO|10.75|59.91|1082|W|,Osmaniye|osmaniye|TR|36.25|37.07|202|W|,Osnabrueck|lower saxony|DE|8.05|52.27|166|W|osnabruck,Osogbo|osun state|NG|4.56|7.77|645|W|oshogbo,Osorno|los lagos region|CL|-73.13|-40.57|135|W|,Ossining|NY|US|-73.86|41.16|25|N|,Ostrava|moravian silesian region|CZ|18.28|49.83|279|W|mahrisch ostrau;ostrawa,Oswego|IL|US|-88.35|41.68|33|N|,Ota|tokyo|JP|139.72|35.56|748|W|ota ku,Ota|ogun state|NG|3.23|6.69|251|W|,Ota|gunma|JP|139.37|36.3|224|W|,Otsu|shiga|JP|135.87|35|345|W|ocu,Ottawa|ON|CA|-75.7|45.41|1017|NW|otava;aa,Ottawa South|ON|CA|-75.69|45.39|125|N|,Ouagadougou|centre|BF|-1.53|12.37|2415|W|uagadugu;wagadugu,Ouargla|ouargla|DZ|5.33|31.95|169|W|uargla;warkala,Oujda|oriental|MA|-1.91|34.68|539|W|ucda;ujda;wadzda,Oulu|north ostrobothnia|FI|25.47|65.01|216|W|uleaborg,Overbrook|PA|US|-75.24|39.99|32|N|,Overland Park|KS|US|-94.67|38.98|186|NW|,Oviedo|asturias|ES|-5.84|43.36|220|W|,Oviedo|FL|US|-81.21|28.67|38|N|,Owasso|OK|US|-95.85|36.27|34|N|,Owatonna|MN|US|-93.23|44.08|25|N|,Owensboro|KY|US|-87.11|37.77|59|N|,Owerri|imo state|NG|7.03|5.48|545|W|,Owings Mills|MD|US|-76.78|39.42|30|N|,Owo|ondo state|NG|5.59|7.2|276|W|,Oxford|england|GB|-1.26|51.75|162|W|oksford;oxonia;oxnaford,Oxford Circle|PA|US|-75.07|40.05|48|N|,Oxnard|CA|US|-119.18|34.2|207|NW|,Oxon Hill-Glassmanor|MD|US|-76.97|38.8|35|N|,Oyama|tochigi|JP|139.8|36.3|167|W|,Oyo|oyo state|NG|3.93|7.85|736|W|oio,Ozone Park|NY|US|-73.84|40.68|53|N|,Paarl|western cape|ZA|18.98|-33.73|236|W|,Pabellon de Arteaga|MX01|MX|-102.28|22.15|28|N|,Pabna|rajshahi division|BD|89.24|24.01|186|W|,Pachuca de Soto|MX13|MX|-98.73|20.12|256|NW|pachuca,Pacifica|CA|US|-122.49|37.61|39|N|,Paco do Lumiar|maranhao|BR|-44.11|-2.53|155|W|,Padalarang|west java|ID|107.47|-6.84|193|W|,Padang|west sumatra|ID|100.35|-0.95|942|W|kota padang,Padangsidempuan|north sumatra|ID|99.27|1.38|243|W|,Paderborn|north rhine westphalia|DE|8.75|51.72|142|W|,Padua|veneto|IT|11.89|45.41|203|W|padova;padoa;padoue;padwa,Paech'on-up|south hwanghae|KP|126.3|37.99|159|W|,Pagadian|zamboanga peninsula|PH|123.44|7.83|206|W|,Pahrump|NV|US|-115.98|36.21|36|N|,Pak Kret|nonthaburi|TH|100.5|13.91|190|W|,Pakdasht|tehran|IR|51.68|35.48|236|W|,Palakkad|kerala|IN|76.65|10.77|132|W|palakkat,Palangkaraya|central kalimantan|ID|113.92|-2.21|318|W|kota palangka raya;palangka raya,Palanpur|gujarat|IN|72.44|24.17|141|W|,Palatine|IL|US|-88.03|42.11|69|N|,Palembang|south sumatra|ID|104.75|-2.92|1801|W|kota palembang;palimbao,Palenque|MX05|MX|-91.98|17.51|42|N|ruinas de palenque,Palermo|sicily|IT|13.36|38.12|648|W|palerme;palermu,Palhoca|santa catarina|BR|-48.67|-27.65|222|W|,Pali|rajasthan|IN|73.32|25.77|230|W|,Pallabi|dhaka division|BD|90.37|23.82|597|W|,Pallavaram|tamil nadu|IN|80.15|12.97|233|W|,Palm Bay|FL|US|-80.59|28.03|119|N|,Palm Beach Gardens|FL|US|-80.14|26.82|52|N|,Palm Coast|FL|US|-81.21|29.58|82|N|,Palm Desert|CA|US|-116.38|33.72|51|N|,Palm Harbor|FL|US|-82.76|28.08|57|N|,Palm Springs|CA|US|-116.55|33.83|47|N|,Palma|balearic islands|ES|2.65|39.57|438|W|palma de mallorca;palma de maiorca;palma di maiorca,Palmas|tocantins|BR|-48.33|-10.17|306|W|,Palmdale|CA|US|-118.12|34.58|158|NW|,Palmira|valle del cauca department|CO|-76.3|3.54|312|W|,Palo Alto|CA|US|-122.14|37.44|66|N|,Palopo|south sulawesi|ID|120.2|-2.99|184|W|,Paltan|dhaka division|BD|90.41|23.74|184|W|,Palu|central sulawesi|ID|119.87|-0.91|389|W|kabupaten poso;kota palu,Palwal|haryana|IN|77.33|28.14|131|W|,Pamplona|navarre|ES|-1.64|42.82|208|W|pampeluna;pampelune,Pamulang|west java|ID|106.74|-6.34|174|W|,Panabo|davao region|PH|125.68|7.31|211|W|panabo city,Panalanoy|eastern visayas|PH|125.01|11.25|189|W|,Panama City|panama|PA|-79.52|8.99|408|W|panama;ciudad de panama;panama by;panama stadt;panama stad,Panama City|FL|US|-85.66|30.16|38|N|,Panchkula|haryana|IN|76.85|30.69|211|W|panchkula urban estate,Pandi|central luzon|PH|120.96|14.87|162|W|,Pangkalpinang|bangka belitung islands|ID|106.11|-2.13|226|W|,Panguila|bengo|AO|13.45|-8.69|158|W|,Panihati|west bengal|IN|88.37|22.69|378|W|,Panipat|haryana|IN|76.97|29.39|295|W|,Panjin|liaoning|CN|122.07|41.12|1166|W|,Panorama Hills|AB|CA|-114.08|51.15|25|N|,Panshan|liaoning|CN|122.05|41.19|625|W|,Panuco|MX30|MX|-98.18|22.05|40|N|,Panvel|maharashtra|IN|73.11|18.99|195|W|,Panzhihua|sichuan|CN|101.71|26.59|787|W|,Papantla de Olarte|MX30|MX|-97.32|20.45|53|N|,Par Naogaon|rajshahi division|BD|88.95|24.8|192|W|naogaon,Paracho de Verduzco|MX16|MX|-102.05|19.65|37|N|,Paradise|NV|US|-115.15|36.1|223|NW|,Paradise|CA|US|-121.62|39.76|26|N|,Paragould|AR|US|-90.5|36.06|27|N|,Paraiso|MX27|MX|-93.21|18.4|86|N|,Parakou|borgou|BJ|2.63|9.34|255|W|,Paramaribo|paramaribo district|SR|-55.17|5.87|223|W|,Paramount|CA|US|-118.16|33.89|55|N|,Paramus|NJ|US|-74.08|40.94|26|N|,Parana|entre rios|AR|-60.53|-31.73|247|W|,Paranagua|parana|BR|-48.53|-25.52|150|W|,Paranaque City|national capital region|PH|121.02|14.48|703|W|,Parauapebas|para|BR|-49.9|-6.07|305|W|,Parbhani|maharashtra|IN|76.77|19.27|307|W|,Parc-Extension|QC|CA|-73.63|45.53|33|N|,Parelheiros|sao paulo|BR|-46.73|-23.83|153|W|,Parepare|south sulawesi|ID|119.63|-4.01|160|W|,Paris|ile de france|FR|2.35|48.85|2138|W|parijs;pa ri;parigi;pariisi;paryz;pariz,Paris 11 Popincourt|ile de france|FR|2.38|48.86|138|W|,Paris 11e Arrondissement|ile de france|FR|2.38|48.86|144|W|,Paris 12 Reuilly|ile de france|FR|2.39|48.84|138|W|,Paris 12e Arrondissement|ile de france|FR|2.44|48.84|140|W|,Paris 13 Gobelins|ile de france|FR|2.36|48.83|181|W|,Paris 13e Arrondissement|ile de france|FR|2.36|48.83|177|W|,Paris 14 Observatoire|ile de france|FR|2.33|48.83|136|W|,Paris 15 Vaugirard|ile de france|FR|2.3|48.84|229|W|,Paris 16 Passy|ile de france|FR|2.28|48.86|159|W|,Paris 17 Batignolles-Monceau|ile de france|FR|2.32|48.88|159|W|,Paris 18 Buttes-Montmartre|ile de france|FR|2.34|48.89|183|W|,Paris 19 Buttes-Chaumont|ile de france|FR|2.38|48.88|178|W|,Paris 20 Menilmontant|ile de france|FR|2.4|48.86|185|W|,Park Ridge|IL|US|-87.84|42.01|37|N|,Park Slope|NY|US|-73.99|40.67|65|N|,Parkchester|NY|US|-73.86|40.84|65|N|,Parker|CO|US|-104.76|39.52|49|N|,Parkersburg|WV|US|-81.56|39.27|30|N|,Parkland|WA|US|-122.43|47.16|35|N|,Parkland|FL|US|-80.24|26.31|30|N|,Parkville|MD|US|-76.54|39.38|30|N|,Parkwoods-Donalda|ON|CA|-79.33|43.76|34|N|,Parma|emilia romagna|IT|10.33|44.8|198|W|parme,Parma|OH|US|-81.72|41.4|79|N|,Parnaiba|piaui|BR|-41.78|-2.9|170|W|,Parnamirim|rio grande do norte|BR|-35.26|-5.92|271|W|,Parras de la Fuente|MX07|MX|-102.18|25.44|33|N|,Parsippany|NJ|US|-74.43|40.86|51|N|,Pasadena|TX|US|-95.21|29.69|153|NW|,Pasadena|CA|US|-118.14|34.15|142|NW|,Pasarkemis|west java|ID|106.53|-6.17|263|W|,Pasay|national capital region|PH|121|14.54|416|W|,Pasco|WA|US|-119.1|46.24|69|N|,Pasig City|national capital region|PH|121.06|14.59|853|W|pasig,Pasir Gudang|johor|MY|103.91|1.46|534|W|,Pasir Mas|kelantan|MY|102.14|6.05|230|W|,Pasir Puteh|kelantan|MY|102.4|5.83|137|W|,Paso Robles|CA|US|-120.69|35.63|27|N|el paso de robles,Passaic|NJ|US|-74.13|40.86|71|N|,Passo Fundo|rio grande do sul|BR|-52.41|-28.26|214|W|,Pasto|narino|CO|-77.28|1.21|392|W|,Pasuruan|east java|ID|112.91|-7.65|213|W|kota pasuruan;pasoeroean,Patan|bagmati province|NP|85.31|27.68|299|W|lalitpur,Patan|gujarat|IN|72.13|23.85|133|W|,Paterson|NJ|US|-74.17|40.92|147|NW|,Pathankot|punjab|IN|75.65|32.27|174|W|,Pathein|ayeyarwady|MM|94.73|16.78|237|W|basejn,Patiala|punjab|IN|76.39|30.34|446|W|,Patna|bihar|IN|85.14|25.59|1684|W|,Patos de Minas|minas gerais|BR|-46.52|-18.58|159|W|,Patra|west greece|GR|21.74|38.25|168|W|patrai;patras;patrasso,Patzcuaro|MX16|MX|-101.61|19.51|55|N|,Paulista|pernambuco|BR|-34.87|-7.94|342|W|,Pavlodar|pavlodar region|KZ|76.97|52.28|329|W|pawlodar,Pawtucket|RI|US|-71.38|41.88|71|N|,Paya Terubong|penang|MY|100.28|5.37|226|W|,Payakumbuh|west sumatra|ID|100.63|-0.22|139|W|kota payakumbuh,Peabody|MA|US|-70.93|42.53|52|N|,Peachtree City|GA|US|-84.6|33.4|35|N|,Peachtree Corners|GA|US|-84.22|33.97|40|N|,Pearl|MS|US|-90.13|32.27|26|N|,Pearl City|HI|US|-157.98|21.4|47|N|,Pearland|TX|US|-95.29|29.56|108|N|,Pecs|baranya|HU|18.23|46.08|145|W|cinquechiese;funfkirchen;pecz,Pedreira|sao paulo|BR|-46.65|-23.71|163|W|,Peicheng|jiangsu|CN|116.92|34.74|195|W|,Pekalongan|central java|ID|109.68|-6.89|324|W|kota pekalongan,Pekanbaru|riau|ID|101.44|0.52|1167|W|kota pekanbaru;pakanbaru,Pekin|IL|US|-89.64|40.57|33|N|,Pelentong|johor|MY|103.82|1.52|583|W|,Pelotas|rio grande do sul|BR|-52.34|-31.77|336|W|,Pemalang|central java|ID|109.38|-6.89|184|W|,Pematangsiantar|north sumatra|ID|99.07|2.96|279|W|,Pemba|cabo delgado province|MZ|40.52|-12.97|232|W|,Pembroke Pines|FL|US|-80.22|26|166|NW|,Penalolen|santiago metropolitan|CL|-70.53|-33.47|241|W|,Pengpu|shanghai|CN|121.44|31.29|152|W|,Pengze|jiangxi|CN|116.55|29.9|350|W|,Penjamo|MX11|MX|-101.72|20.43|40|N|,Penn Hills|PA|US|-79.84|40.5|44|N|,Pennsauken|NJ|US|-75.06|39.96|36|N|,Pennsport|PA|US|-75.15|39.93|26|N|,Pensacola|FL|US|-87.22|30.42|53|N|pensacola i florida,Penticton|BC|CA|-119.59|49.48|33|N|,Penza|penza oblast|RU|45.01|53.2|523|W|pensa,Peoria|AZ|US|-112.24|33.58|190|NW|,Peoria|IL|US|-89.59|40.69|115|N|,Perbaungan|north sumatra|ID|98.96|3.57|157|W|,Percut|north sumatra|ID|98.86|3.63|311|W|,Pereira|risaralda department|CO|-75.69|4.81|467|W|,Peristeri|attica|GR|23.69|38.02|139|W|peristerion,Perm|perm krai|RU|56.25|58.01|982|W|molotov,Perote|MX30|MX|-97.24|19.56|37|N|,Perris|CA|US|-117.23|33.78|74|N|,Perry Hall|MD|US|-76.46|39.41|28|N|,Perth|western australia|AU|115.86|-31.95|2384|W|,Perth Amboy|NJ|US|-74.27|40.51|52|N|,Pervouralsk|sverdlovsk oblast|RU|59.94|56.91|133|W|perwouralsk,Peshawar|khyber pakhtunkhwa|PK|71.58|34.01|4758|W|peschawar;pesjawar;peszawar;pexauar;pesaver;pesavar,Pest|budapest|HU|19.08|47.5|1001|W|pesta;peste;peszt,Petah Tiqva|central district|IL|34.89|32.09|253|W|petah tikva;mulebbis;petach tikva;petach tikwa;petah tikwah;petah tiqwa;petaj tikva;pethah tiqva,Petaling Jaya|selangor|MY|101.61|3.11|807|W|,Petaluma|CA|US|-122.64|38.23|60|N|,Petapa|guatemala|GT|-90.56|14.5|135|W|,Petare|miranda|VE|-66.81|10.48|364|W|,Peterborough|england|GB|-0.25|52.57|163|W|,Peterborough|ON|CA|-78.32|44.3|85|N|,Petersburg|VA|US|-77.4|37.23|32|N|,Petionville|ouest|HT|-72.29|18.51|376|W|,Petrogradka|st petersburg|RU|30.31|59.97|130|W|,Petrolina|pernambuco|BR|-40.5|-9.4|418|W|,Petropavl|north kazakhstan|KZ|69.15|54.87|200|W|kizilyar;petropawl;pietropawlowsk,Petropavlovsk-Kamchatsky|kamchatka|RU|158.63|53.06|181|W|petropavlovsk kamchatskiy;petropavlovsk kamciatki;petropavlovsk kamchatski;petropavlovsk kamtchatski;petropavlovsk kamtjatskij;petropavlovsk kamtsjatski;petropavlovsk kamtsatski;petropavlovsk kamcatski;petropavlovsk kamcatskij;pietropawlowsk kamczacki,Petropolis|rio de janeiro|BR|-43.18|-22.5|294|W|,Petrozavodsk|karelia|RU|34.35|61.78|279|W|petroskoi;petrosavodsk;petrosawodsk;petroskoj;petrozawodzk;pietrozawodsk;aanislinna,Pflugerville|TX|US|-97.62|30.44|57|N|,Phan Rang-Thap Cham|khanh hoa|VN|108.99|11.56|207|W|phan rang,Phan Thiet|lam dong|VN|108.1|10.93|228|W|,Pharr|TX|US|-98.18|26.19|76|N|,Phenix City|AL|US|-85|32.47|37|N|,Philadelphia|PA|US|-75.16|39.95|1573|NW|filadelfia;filadelfie;philadelphie,Phnom Penh|phnom penh|KH|104.92|11.56|1573|W|nom pen;phnompenh;phon phen;pnom pene;pnom penh,Pho Yen|thai nguyen|VN|105.89|21.42|231|W|,Phoenix|AZ|US|-112.07|33.45|1650|NW|,Phra Pradaeng|samut prakan|TH|100.53|13.66|196|W|amphoe phra pradaeng,Phu Ly|ninh binh|VN|105.91|20.55|136|W|,Phu My|ho chi minh city hcmc|VN|107.07|10.63|287|W|,Phu Quoc|an giang|VN|103.97|10.22|294|W|koh trol,Phuc Yen|phu tho|VN|105.7|21.24|180|W|,Phusro|jharkhand|IN|86.01|23.76|185|W|,Pickering|ON|CA|-79.13|43.9|91|N|,Pico Rivera|CA|US|-118.1|33.98|64|N|,Piedecuesta|santander department|CO|-73.05|6.99|163|W|,Piedras Negras|MX07|MX|-100.52|28.7|150|NW|piedrasnegras,Pierrefonds|QC|CA|-73.89|45.46|59|N|,Pierrefonds-Roxboro|QC|CA|-73.84|45.5|73|N|,Pietermaritzburg|kwazulu natal|ZA|30.39|-29.62|839|W|,Pijijiapan|MX05|MX|-93.21|15.69|50|N|,Pikesville|MD|US|-76.72|39.37|30|N|,Pikine|dakar|SN|-17.39|14.76|1170|W|,Pilibhit|uttar pradesh|IN|79.8|28.63|131|W|,Pilsen|plzen region|CZ|13.38|49.75|168|W|plzen;pilzno,Pimpri|maharashtra|IN|73.81|18.62|1284|W|,Pimpri-Chinchwad|maharashtra|IN|73.8|18.62|1727|W|pimpri cincvad,Pinar del Rio|pinar del rio|CU|-83.7|22.42|186|W|,Pindamonhangaba|sao paulo|BR|-45.46|-22.92|172|W|,Pindi Bhattian|punjab|PK|73.27|31.9|493|W|,Pine Bluff|AR|US|-92|34.23|44|N|,Pine Hills|FL|US|-81.45|28.56|60|N|,Pinellas Park|FL|US|-82.7|27.84|51|N|,Pinetown|kwazulu natal|ZA|30.89|-29.82|144|W|,Pingdingshan|henan|CN|113.32|33.73|979|W|pching ting san,Pingdu|shandong|CN|119.95|36.78|542|W|,Pingliang|gansu|CN|106.69|35.54|504|W|binh luong;pching liang,Pingwu County|sichuan|CN|104.53|32.41|180|W|,Pingxiang|jiangxi|CN|113.85|27.62|893|W|binh huong;pching siang,Pinotepa Nacional|MX20|MX|-98.05|16.34|29|N|pinotepa,Piracicaba|sao paulo|BR|-47.65|-22.73|440|W|,Piraeus|attica|GR|23.65|37.94|163|W|el pireo;il pireo;le piree;peiraias;peiraiefs;pire;pireo;pireu;pireus;piraus,Piranshahr|west azerbaijan|IR|45.14|36.7|168|W|khaneh;piranschahr;piranszahr;piransehr,Pirituba|sao paulo|BR|-46.73|-23.49|179|W|,Piscataway|NJ|US|-74.4|40.5|56|N|,Pitalito|huila department|CO|-76.05|1.85|135|W|,Pitesti|arges|RO|24.87|44.85|141|W|piteszt;pitest;pitesk,Pittsburg|CA|US|-121.88|38.03|69|N|,Pittsburgh|PA|US|-80|40.44|304|NW|pitsburgo,Pittsfield|MA|US|-73.25|42.45|43|N|,Piura|piura|PE|-80.66|-5.18|630|W|,Pizhou|jiangsu|CN|117.95|34.31|343|W|,Placentia|CA|US|-117.87|33.87|52|N|,Plainfield|NJ|US|-74.41|40.63|51|N|,Plainfield|IL|US|-88.2|41.63|42|N|,Plainfield|IN|US|-86.4|39.7|30|N|,Plainview|NY|US|-73.47|40.78|26|N|,Planaltina|federal district|BR|-47.65|-15.62|189|W|,Plano|TX|US|-96.7|33.02|283|NW|,Plano Piloto|federal district|BR|-47.88|-15.79|198|W|,Plant City|FL|US|-82.11|28.02|37|N|,Plantation|FL|US|-80.23|26.13|92|N|,Playa del Carmen|MX23|MX|-87.08|20.63|149|NW|,Plaza de la Revolucion|havana|CU|-82.39|23.12|139|W|,Pleasant Grove|UT|US|-111.74|40.36|38|N|pleasant grv,Pleasant Hill|CA|US|-122.06|37.95|34|N|,Pleasanton|CA|US|-121.87|37.66|79|N|,Pleasure Ridge Park|KY|US|-85.86|38.15|25|N|,Ploiesti|prahova|RO|26.02|44.95|180|W|ploeszti,Plovdiv|plovdiv|BG|24.75|42.15|329|W|filibe;filippopoli;plowdiw,Plum|PA|US|-79.75|40.5|27|N|,Plumbon|west java|ID|108.47|-6.71|167|W|,Plymouth|england|GB|-4.14|50.37|260|W|,Plymouth|MN|US|-93.46|45.01|75|N|,Pocatello|ID|US|-112.45|42.87|54|N|,Pocos de Caldas|minas gerais|BR|-46.56|-21.79|172|W|,Podgorica|podgorica|ME|19.26|42.44|236|W|,Podolsk|moscow oblast|RU|37.55|55.42|179|W|,Pohang|gyeongsangbuk do|KR|129.36|36.03|492|W|,Poinciana|FL|US|-81.46|28.14|53|N|,Pointe-Claire|QC|CA|-73.82|45.45|30|N|,Pointe-Noire|pointe noire|CG|11.86|-4.78|1032|W|,Pokhara|gandaki pradesh|NP|83.97|28.27|600|W|,Polanco|MX09|MX|-99.2|19.43|50|N|col polanco;colonia polanco,Polokwane|limpopo|ZA|29.47|-23.9|272|W|pietersburg,Poltava|poltava|UA|34.55|49.59|279|W|poltawa;pultava;baltavar;ltava,Pomona|CA|US|-117.75|34.06|153|NW|,Pompano Beach|FL|US|-80.12|26.24|107|N|,Ponce|ponce|PR|-66.62|18.01|137|W|,Ponta Grossa|parana|BR|-50.16|-25.09|292|W|,Ponte Vedra Beach|FL|US|-81.39|30.24|35|N|,Pontiac|MI|US|-83.29|42.64|59|N|,Pontianak|west kalimantan|ID|109.33|-0.03|686|W|kota pontianak,Poole|england|GB|-1.98|50.71|151|W|,Popayan|cauca department|CO|-76.61|2.44|318|W|,Porbandar|gujarat|IN|69.61|21.64|152|W|,Porlamar|nueva esparta|VE|-63.87|10.96|216|W|,Port Arthur|TX|US|-93.94|29.89|55|N|,Port-au-Prince|ouest|HT|-72.34|18.54|1234|W|porto principe;puerto principe,Port Charlotte|FL|US|-82.09|26.98|54|N|,Port Chester|NY|US|-73.67|41|29|N|,Port Coquitlam|BC|CA|-122.77|49.27|58|N|,Port-de-Paix|nord ouest|HT|-72.83|19.94|306|W|porto da paz,Port-Gentil|ogooue maritime|GA|8.78|-0.72|164|W|mandji,Port Harcourt|rivers state|NG|7.01|4.78|2120|W|,Port Huron|MI|US|-82.42|42.97|29|N|,Port Louis|port louis|MU|57.5|-20.16|155|W|puerto louis,Port Moody|BC|CA|-122.82|49.28|27|N|,Port Moresby|national capital|PG|147.15|-9.48|283|W|puerto moresby,Port Orange|FL|US|-81|29.14|59|N|,Port Richmond|PA|US|-75.1|39.99|27|N|richmond,Port Said|port said|EG|32.3|31.27|780|W|bursaid;porto said;puerto said,Port Saint Lucie|FL|US|-80.35|27.29|164|NW|,Port Sudan|red sea|SD|37.22|19.62|489|W|bur sudan;port soudan;porto sudan;porto sudao;puerto sudan,Portage|MI|US|-85.58|42.2|48|N|,Portage|IN|US|-87.18|41.58|36|N|,Portage Park|IL|US|-87.77|41.96|64|N|,Porterville|CA|US|-119.02|36.07|56|N|,Porticos de San Antonio|MX02|MX|-117.03|32.44|34|N|,Portland|OR|US|-122.68|45.52|652|NW|,Portland|ME|US|-70.26|43.66|66|N|,Porto|porto|PT|-8.61|41.15|252|W|oporto,Porto Alegre|rio grande do sul|BR|-51.23|-30.03|1488|W|puerto alegre,Porto-Novo|oueme|BJ|2.6|6.5|264|W|,Porto Seguro|bahia|BR|-39.06|-16.45|182|W|,Porto Velho|rondonia|BR|-63.9|-8.76|548|W|,Portoviejo|manabi|EC|-80.45|-1.06|321|W|,Portsmouth|england|GB|-1.09|50.8|208|W|,Portsmouth|VA|US|-76.3|36.84|96|N|,Portsmouth Heights|VA|US|-76.37|36.82|99|N|,Posadas|misiones|AR|-55.92|-27.39|305|W|,Post Falls|ID|US|-116.95|47.72|30|N|,Potchefstroom|north west|ZA|27.1|-26.72|178|W|,Potomac|MD|US|-77.21|39.02|44|N|,Potosi|potosi department|BO|-65.75|-19.58|141|W|,Potsdam|brandenburg|DE|13.07|52.4|184|W|poczdam;postupim,Poughkeepsie|NY|US|-73.92|41.7|30|N|,Pouso Alegre|minas gerais|BR|-45.94|-22.23|162|W|,Poway|CA|US|-117.04|32.96|50|N|,Poza Rica de Hidalgo|MX30|MX|-97.46|20.53|185|NW|poza rica,Poznan|greater poland|PL|16.93|52.41|536|W|posen;posnania;possen,Praga Poludnie|mazovia|PL|21.09|52.24|179|W|,Prague|prague|CZ|14.42|50.09|1165|W|praag;prag;praga;praha,Praia|praia|CV|-23.51|14.93|137|W|cidade da praia;municipio da praia,Praia Grande|sao paulo|BR|-46.4|-24.01|367|W|,Prairieville|LA|US|-90.97|30.3|26|N|,Prato|tuscany|IT|11.1|43.88|195|W|,Prattville|AL|US|-86.46|32.46|35|N|,Pravyi Bereh|donetsk|UA|37.59|47.11|352|W|pravyy bereh,Prayagraj|uttar pradesh|IN|81.84|25.44|1073|W|allahabad,Prenzlauer Berg Bezirk|state of berlin|DE|13.42|52.54|148|W|prenzlauer berg,Prescott|AZ|US|-112.47|34.54|41|N|,Prescott Valley|AZ|US|-112.32|34.61|42|N|,Presidente Prudente|sao paulo|BR|-51.39|-22.13|234|W|,Preston|england|GB|-2.7|53.76|313|W|,Pretoria|gauteng|ZA|28.19|-25.74|2112|W|pretorie,Prince Albert|SK|CA|-105.77|53.2|35|N|,Prince Edward|ON|CA|-77.25|44|25|N|prince edward county,Prince George|BC|CA|-122.75|53.92|78|N|,Princeton|FL|US|-80.41|25.54|39|N|,Princeton|NJ|US|-74.66|40.35|29|N|stony brook,Prior Lake|MN|US|-93.42|44.71|25|N|,Probolinggo|east java|ID|113.22|-7.75|243|W|kota probolinggo,Proddatur|andhra pradesh|IN|78.55|14.75|177|W|,Progreso|MX31|MX|-89.66|21.28|37|N|progreso de castro,Prokop'yevsk|kuzbass|RU|86.72|53.92|219|W|prokopjevsk;prokopyevsk;prokopjewsk,Providence|RI|US|-71.41|41.82|190|NW|,Provo|UT|US|-111.66|40.23|115|N|,Pskov|pskov oblast|RU|28.33|57.82|210|W|pihkova;pleskau;pskow,Pu'er|yunnan|CN|100.97|22.79|296|W|,Pucallpa|ucayali|PE|-74.55|-8.38|326|W|,Puchong|selangor|MY|101.62|3|375|W|,Pudong|shanghai|CN|121.5|31.24|5681|W|,Puducherry|puducherry|IN|79.83|11.93|657|W|pondichery;pondicherry;territoire de pondichery;pondicherri,Puebla|MX21|MX|-98.21|19.05|1692|NW|puebla city;puebla de zaragoza;puebla de los angeles,Pueblo|CO|US|-104.61|38.25|109|N|,Pueblo West|CO|US|-104.72|38.35|29|N|,Puente Alto|santiago metropolitan|CL|-70.58|-33.61|568|W|,Puente de Vallecas|madrid|ES|-3.66|40.39|244|W|,Puerto Cabello|carabobo|VE|-68.01|10.47|174|W|,Puerto Cortez|cortes department|HN|-87.93|15.83|142|W|puerto cortes,Puerto Escondido|MX20|MX|-97.07|15.86|29|N|,Puerto La Cruz|anzoategui|VE|-64.63|10.21|370|W|puerto cruz;puerto de la cruz,Puerto Montt|los lagos region|CL|-72.94|-41.47|245|W|port montt,Puerto Penasco|MX26|MX|-113.54|31.32|62|N|,Puerto Plata|puerto plata|DO|-70.69|19.79|146|W|,Puerto Princesa|mimaropa|PH|118.74|9.74|222|W|kota puerto princesa;puerto princesa city,Puerto Vallarta|MX14|MX|-105.23|20.62|224|NW|pto vallarta,Pullman|WA|US|-117.18|46.73|32|N|,Punasa|madhya pradesh|IN|76.39|22.24|350|W|,Pune|maharashtra|IN|73.86|18.52|3124|W|poona,Punggol||SG|103.91|1.41|204|W|,Puning|guangdong|CN|116.17|23.31|874|W|,Punto Fijo|falcon|VE|-70.2|11.69|141|W|,Puqi|hubei|CN|113.88|29.72|132|W|,Puri|odisha|IN|85.82|19.8|200|W|,Purisima de Bustos|MX11|MX|-101.88|21.03|43|N|,Purnia|bihar|IN|87.47|25.78|282|W|,Puruandiro|MX16|MX|-101.52|20.09|30|N|,Purwakarta|west java|ID|107.44|-6.56|179|W|kota purwakarta,Purwodadi|central java|ID|110.92|-7.09|139|W|purwodadi grobogan,Purwokerto|central java|ID|109.23|-7.42|230|W|kota purwokerto,Puthia|rajshahi division|BD|88.83|24.37|159|W|,Putian|fujian|CN|119.01|25.44|1539|W|pchu tchien,Putuo|shanghai|CN|121.39|31.25|1239|W|,Puxi|shanghai|CN|121.47|31.24|6683|W|,Puyallup|WA|US|-122.29|47.19|39|N|,Puyang|zhejiang|CN|119.89|29.46|3590|W|pujiang,Puyang|henan|CN|115.04|35.76|655|W|pchu jang,Pyatigorsk|stavropol kray|RU|43.05|44.05|142|W|piatigorsk;pjatigorsk,Pyay|bago region|MM|95.22|18.82|135|W|prome;pyain,Pyeongtaek|gyeonggi do|KR|127.09|36.99|364|W|pyeongtaek si,Pyongyang|pyongyang|KP|125.75|39.03|3222|W|p yongyang;p yongyang si;pchjongjang;phenian;pionguiangue;pionyang;pjongjang;pyongyang si,Qa'em Shahr|mazandaran|IR|52.87|36.47|204|W|,Qadirpur Ran|punjab|PK|71.67|30.29|200|W|,Qalyub|qalyubia|EG|31.21|30.18|156|W|,Qarchak|tehran|IR|51.58|35.43|251|W|,Qarshi|qashqadaryo|UZ|65.79|38.86|278|W|karchi;karsji;karszy;karsi;qarsi,Qazvin|qazvin province|IR|50|36.27|333|W|kazvin;kazwin,Qeladize|sulaymaniyah|IQ|45.13|36.18|140|W|,Qianjiang|hubei|CN|112.89|30.42|179|W|,Qianjiang|chongqing|CN|108.77|29.53|143|W|,Qibao|shanghai|CN|121.36|31.15|283|W|,Qina|qena|EG|32.73|26.16|252|W|,Qingdao|shandong|CN|120.38|36.06|7172|W|cching tao;tsingtau,Qingpu|shanghai|CN|121.11|31.15|1271|W|,Qingyang|gansu|CN|107.64|35.71|2125|W|,Qingyuan|guangdong|CN|113.03|23.7|1738|W|cching juan,Qingzhou|shandong|CN|118.48|36.7|236|W|,Qinhuangdao|hebei|CN|119.59|39.94|759|W|cchin chuang tao,Qinzhou|guangxi|CN|108.65|21.98|1296|W|kham chau;cchin cou,Qionghai|hainan|CN|110.46|19.24|528|W|,Qiqihar|heilongjiang|CN|123.96|47.34|882|W|cicikar,Qitaihe|heilongjiang|CN|131|45.77|345|W|,Qo'qon|fergana|UZ|70.94|40.53|259|W|kokand,Qods|tehran|IR|51.11|35.72|309|W|,Qom|qom province|IR|50.88|34.64|900|W|kom;kum,Quan Ba|ho chi minh city hcmc|VN|106.69|10.77|220|W|,Quan Bon|ho chi minh city hcmc|VN|106.71|10.77|199|W|,Quan GJuc Thinh||VN|105.74|10.31|132|W|,Quan Muoi|ho chi minh city hcmc|VN|106.67|10.77|399|W|,Quan Muoi Mot|ho chi minh city hcmc|VN|106.64|10.76|332|W|,Quan Nam|ho chi minh city hcmc|VN|106.67|10.76|187|W|,Quan Sau|ho chi minh city hcmc|VN|106.65|10.75|271|W|,Quang Ngai|quang ngai|VN|108.79|15.12|278|W|,Quanzhou|fujian|CN|118.59|24.91|1469|W|cchuan cou;chinchew;chinchu;zayton,Quarto Oggiaro|lombardy|IT|9.14|45.51|182|W|,Quebec|QC|CA|-71.21|46.81|531|NW|kota quebec;quebec city,Queen Creek|AZ|US|-111.63|33.25|34|N|,Queens|NY|US|-73.84|40.68|2316|NW|borough of queens;comte de queens;condado de queens;queens county,Queens Village|NY|US|-73.74|40.73|51|N|,Queensbury|NY|US|-73.61|43.38|27|N|,Queimados|rio de janeiro|BR|-43.56|-22.72|149|W|,Quelimane|zambezia province|MZ|36.89|-17.88|349|W|,Quetta|balochistan|PK|67|30.18|1565|W|ketta;kveta;kweta,Quetzaltenango|quetzaltenango|GT|-91.52|14.84|180|W|,Quevedo|los rios|EC|-79.46|-1.03|213|W|,Quezon City|national capital region|PH|121.05|14.65|3084|W|ciudad quezon;quezon stadt,Qui Nhon|gia lai|VN|109.22|13.78|519|W|quy nhon,Quilicura|santiago metropolitan|CL|-70.71|-33.37|210|W|,Quillacollo|cochabamba|BO|-66.28|-17.39|172|W|,Quilmes|buenos aires|AR|-58.25|-34.72|262|W|,Quilpue|valparaiso|CL|-71.44|-33.05|130|W|,Quincy|MA|US|-71|42.25|93|N|,Quincy|IL|US|-91.41|39.94|40|N|,Quinte West|ON|CA|-77.57|44.18|43|N|,Quito|pichincha|EC|-78.52|-0.23|2781|W|san francisco de quito,Qujing|yunnan|CN|103.78|25.48|1408|W|khuc tinh;cchu ting,Quthbullapur|telangana|IN|78.46|17.5|225|W|,Quzhou|zhejiang|CN|118.87|28.96|902|W|cu chau;cchu cou,Ra's Bayrut|beirut|LB|35.48|33.9|1251|W|,Rabak|white nile|SD|32.74|13.18|135|W|,Rabat|rabat sale kenitra|MA|-6.83|34.01|1655|W|,Rach Gia|an giang|VN|105.08|10.01|459|W|,Racine|WI|US|-87.78|42.73|77|N|,Radnor|PA|US|-75.36|40.05|30|N|,Radom|mazovia|PL|21.15|51.4|226|W|,Raebareli|uttar pradesh|IN|81.23|26.23|186|W|rae bareli,Rafsanjan|kerman|IR|55.99|30.41|147|W|,Rahim Yar Khan|punjab|PK|70.3|28.42|517|W|rahimjar khan;rahimyar khan,Rahway|NJ|US|-74.28|40.61|29|N|,Raichur|karnataka|IN|77.36|16.21|234|W|,Raiganj|west bengal|IN|88.12|25.61|170|W|,Raigarh|chhattisgarh|IN|83.4|21.9|150|W|rajgarh,Raipur|chhattisgarh|IN|81.63|21.23|1027|W|,Raj-Nandgaon|chhattisgarh|IN|81.03|21.1|163|W|,Rajamahendravaram|andhra pradesh|IN|81.78|17.01|376|W|rajahmundry,Rajapalayam|tamil nadu|IN|77.55|9.45|130|W|,Rajkot|gujarat|IN|70.79|22.29|1390|W|radzkot,Rajpur Sonarpur|west bengal|IN|88.43|22.44|424|W|rajpur;sonarpur;sonarpur rajpur,Rajshahi|rajshahi division|BD|88.6|24.37|763|W|,Raleigh|NC|US|-78.64|35.77|482|NW|,Ramadi|anbar|IQ|43.31|33.42|223|W|al ramadi;al rumadi;ar ramadi,Ramagundam|telangana|IN|79.47|18.75|242|W|,Ramat Gan|tel aviv|IL|34.81|32.08|170|W|,Ramenki|moscow|RU|37.5|55.7|130|W|,Ramgundam|telangana|IN|79.45|18.8|452|W|,Ramiros|luanda|AO|13.05|-9.06|323|W|,Ramna Maidan|dhaka division|BD|90.4|23.73|143|W|,Ramos Arizpe|MX07|MX|-100.95|25.54|66|N|,Rampur|uttar pradesh|IN|79.03|28.81|296|W|,Ramsey|MN|US|-93.45|45.26|25|N|,Rancagua|o higgins region|CL|-70.74|-34.17|212|W|,Ranchi|jharkhand|IN|85.31|23.34|1120|W|ranci,Rancho Cordova|CA|US|-121.3|38.59|71|N|,Rancho Cucamonga|CA|US|-117.59|34.11|175|NW|,Rancho Palos Verdes|CA|US|-118.39|33.74|42|N|,Rancho Penasquitos|CA|US|-117.12|32.96|60|N|,Rancho Santa Margarita|CA|US|-117.6|33.64|49|N|,Randallstown|MD|US|-76.8|39.37|32|N|,Randburg|gauteng|ZA|28|-26.09|337|W|rendburg,Randfontein|gauteng|ZA|27.7|-26.18|133|W|,Randolph|MA|US|-71.04|42.16|32|N|,Randolph|NJ|US|-74.58|40.85|25|N|randolph township,Rangel|luanda|AO|13.26|-8.83|190|W|,Rangkasbitung|banten|ID|106.25|-6.36|137|W|,Rangpur|rangpur division|BD|89.25|25.75|1031|W|rangpur city;rongpur,Raniganj|telangana|IN|78.49|17.43|217|W|,Raniganj|west bengal|IN|87.13|23.62|131|W|,Ranipet|tamil nadu|IN|79.33|12.92|264|W|,Rapid City|SD|US|-103.23|44.08|73|N|,Ras Al Khaimah|ras al khaimah|AE|55.94|25.79|351|W|ras el khaimah;ra s al chaima;ras al khaimah city;ras al chajma;ras el kheima;resu l hayme,Rasapudipalem|andhra pradesh|IN|83.32|17.73|1728|W|,Rasht|gilan province|IR|49.59|37.28|594|W|rascht;rasjt;raszt;rast;rest,Ratlam|madhya pradesh|IN|75.04|23.33|264|W|,Raurkela Industrial Township|odisha|IN|84.86|22.2|216|W|,Rawalpindi|punjab|PK|73.05|33.6|3357|W|ravalpindi,Rawang|selangor|MY|101.58|3.32|199|W|,Rawson|san juan|AR|-68.54|-31.58|130|W|,Rayon KTZ|kharkiv|UA|36.37|49.94|200|W|khtz district;khtz settlement;novyy kharkiv;rayon khtz;new kharkiv;novyi kharkiv,Raytown|MO|US|-94.46|39.01|29|N|,Reading|england|GB|-0.97|51.46|318|W|,Reading|PA|US|-75.93|40.34|87|N|,Recife|pernambuco|BR|-34.88|-8.05|1653|W|,Red Deer|AB|CA|-113.8|52.27|100|N|,Redan|GA|US|-84.13|33.75|33|N|,Redding|CA|US|-122.39|40.59|91|N|,Redford|MI|US|-83.3|42.38|49|N|,Redlands|CA|US|-117.18|34.06|71|N|,Redmond|WA|US|-122.12|47.67|60|N|,Redmond|OR|US|-121.17|44.27|28|N|,Redondo Beach|CA|US|-118.39|33.85|68|N|,Redwood City|CA|US|-122.24|37.49|85|N|,Reedley|CA|US|-119.45|36.6|25|N|,Reforma|MX05|MX|-93.15|17.86|26|N|,Regensburg|bavaria|DE|12.1|49.02|151|W|ratisbona;ratisbonne;ratyzbona;regensburgo;rezno,Reggio Calabria|calabria|IT|15.66|38.11|182|W|reggio de calabre;reggio di calabria;regio de calabria,Reggio nell'Emilia|emilia romagna|IT|10.63|44.7|171|W|reggio emilia;reggio d emilie,Regina|SK|CA|-104.62|50.45|226|NW|,Rego Park|NY|US|-73.85|40.73|43|N|,Rehovot|central district|IL|34.81|31.89|149|W|rechovot;rechowot;rejovot,Reims|grand est|FR|4.03|49.27|196|W|remes,Reisterstown|MD|US|-76.83|39.47|25|N|,Renca|santiago metropolitan|CL|-70.71|-33.4|147|W|,Renfrew-Collingwood|BC|CA|-123.04|49.24|51|N|,Rengasdengklok|west java|ID|107.3|-6.16|201|W|,Rennes|brittany|FR|-1.67|48.11|227|W|,Reno|NV|US|-119.81|39.53|264|NW|,Renton|WA|US|-122.22|47.48|100|N|,Repentigny|QC|CA|-73.45|45.74|84|N|,Reseda|CA|US|-118.54|34.2|65|N|,Resende|rio de janeiro|BR|-44.45|-22.47|137|W|,Resistencia|chaco|AR|-58.99|-27.46|290|W|ciudad de resistencia,Reston|VA|US|-77.34|38.97|58|N|,Revere|MA|US|-71.01|42.41|53|N|,Rewa|madhya pradesh|IN|81.29|24.53|235|W|,Rewari|haryana|IN|76.62|28.2|143|W|,Rexburg|ID|US|-111.79|43.83|27|N|,Reynoldsburg|OH|US|-82.81|39.95|37|N|,Reynosa|MX28|MX|-98.28|26.08|589|NW|,Rhawnhurst|PA|US|-75.06|40.06|25|N|,Rialto|CA|US|-117.37|34.11|103|N|,Ribeirao das Neves|minas gerais|BR|-44.09|-19.77|346|W|,Ribeirao Preto|sao paulo|BR|-47.81|-21.18|698|W|ribeirao,Richards Bay|kwazulu natal|ZA|32.04|-28.78|252|W|,Richardson|TX|US|-96.73|32.95|110|N|,Richfield|MN|US|-93.28|44.88|36|N|,Richland|WA|US|-119.28|46.29|54|N|,Richmond|VA|US|-77.46|37.55|226|NW|,Richmond|BC|CA|-123.14|49.17|209|NW|,Richmond|CA|US|-122.35|37.94|109|N|,Richmond|IN|US|-84.89|39.83|35|N|,Richmond|KY|US|-84.29|37.75|33|N|,Richmond Hill|ON|CA|-79.44|43.87|202|NW|,Richmond Hill|NY|US|-73.83|40.7|98|N|,Richmond West|FL|US|-80.43|25.61|35|N|,Ridgecrest|CA|US|-117.67|35.62|28|N|,Ridgewood|NY|US|-73.91|40.7|69|N|,Ridgewood|NJ|US|-74.12|40.98|25|N|,Riga|riga|LV|24.11|56.95|742|W|riika;ryga,Rimini|emilia romagna|IT|12.57|44.06|148|W|,Rimouski|QC|CA|-68.52|48.45|42|N|,Rincon de Romos|MX01|MX|-102.32|22.23|27|N|,Rio Blanco|MX30|MX|-97.16|18.83|40|N|,Rio Branco|acre|BR|-67.81|-9.97|419|W|,Rio Claro|sao paulo|BR|-47.56|-22.41|201|W|,Rio Cuarto|cordoba|AR|-64.35|-33.13|157|W|ciudad de rio cuarto,Rio das Ostras|rio de janeiro|BR|-41.95|-22.53|168|W|,Rio de Janeiro|rio de janeiro|BR|-43.18|-22.91|6747|W|,Rio de Teapa|MX27|MX|-92.9|17.77|26|N|,Rio Grande|rio grande do sul|BR|-52.1|-32.03|198|W|,Rio Grande|MX32|MX|-103.03|23.83|32|N|,Rio Pequeno|sao paulo|BR|-46.76|-23.57|131|W|,Rio Rancho|NM|US|-106.66|35.23|87|N|,Rio Verde|goias|BR|-50.93|-17.8|241|W|,Riobamba|chimborazo province|EC|-78.66|-1.67|264|W|,Riohacha|la guajira department|CO|-72.91|11.54|188|W|rio de la hacha,Rioverde|MX24|MX|-99.99|21.93|53|N|,Rishon LeTsiyyon|central district|IL|34.79|31.97|258|W|rishon leziyyon;rischon lezion;rishon le zion;rishon lezion;rishon letsiyon;rishon lsiyon;rishon le siyon;rishon le ziyon;risjon letsion;riszon le cijjon,Riverside|CA|US|-117.4|33.95|317|NW|,Riverton|UT|US|-111.94|40.52|41|N|,Riverview|FL|US|-82.33|27.87|71|N|,Riviera Beach|FL|US|-80.06|26.78|34|N|,Riviere-des-Prairies-Pointe-aux-Trembles|QC|CA|-73.58|45.64|113|N|,Rivne|rivne oblast|UA|26.24|50.62|243|W|riwne;rowne,Riyadh|riyadh region|SA|46.72|24.69|4205|W|riad;riade;rijad;riyad,Rizhao|shandong|CN|119.53|35.41|661|W|z cao,Roanoke|VA|US|-79.94|37.27|100|N|,Robertsonpet|karnataka|IN|78.28|12.96|162|W|robertson pet,Rochester|NY|US|-77.62|43.15|209|NW|,Rochester|MN|US|-92.47|44.02|112|N|,Rochester|NH|US|-70.98|43.3|30|N|,Rochester Hills|MI|US|-83.15|42.66|73|N|,Rock Forest|QC|CA|-72|45.36|35|N|,Rock Hill|SC|US|-81.03|34.92|71|N|,Rock Island|IL|US|-90.58|41.51|38|N|,Rockford|IL|US|-89.09|42.27|148|NW|,Rocklin|CA|US|-121.24|38.79|61|N|,Rockville|MD|US|-77.15|39.08|66|N|hungerford s tavern;hungerfords;hungerfords tavern;montgomery court house;montgomery courthouse;owen s ordinary;williamsburg;williamsburgh,Rockwall|TX|US|-96.46|32.93|42|N|,Rocky Mount|NC|US|-77.79|35.94|55|N|,Rodriguez|calabarzon|PH|121.2|14.76|134|W|,Rogers|AR|US|-94.12|36.33|63|N|,Rogers Park|IL|US|-87.67|42.01|54|N|,Rohini|delhi|IN|77.07|28.74|860|W|,Rohnert Park|CA|US|-122.7|38.34|42|N|,Rohtak|haryana|IN|76.59|28.89|374|W|,Rome|lazio|IT|12.51|41.89|2318|W|rom;roma;rooma;rzym;rim,Rome|GA|US|-85.16|34.26|36|N|,Rome|NY|US|-75.46|43.21|32|N|roma,Romeoville|IL|US|-88.09|41.65|39|N|,Rondonopolis|mato grosso|BR|-54.64|-16.47|263|W|,Roodepoort|gauteng|ZA|27.87|-26.16|326|W|,Rosario|santa fe|AR|-60.64|-32.95|948|W|,Rosarito|MX02|MX|-117.05|32.36|100|N|rosario;rosarito beach baja,Rosedale|NY|US|-73.74|40.66|25|N|,Rosemead|CA|US|-118.07|34.08|54|N|,Rosemont-La Petite-Patrie|QC|CA|-73.61|45.54|146|NW|,Rosenberg|TX|US|-95.81|29.56|35|N|,Rosetta|beheira|EG|30.42|31.4|301|W|rasyid;resid;roseta;rosette,Roseville|CA|US|-121.29|38.75|130|NW|,Roseville|MI|US|-82.94|42.5|47|N|,Roseville|MN|US|-93.16|45.01|35|N|,Roslindale|MA|US|-71.12|42.29|27|N|,Rostock|mecklenburg vorpommern|DE|12.14|54.09|198|W|,Rostov-on-Don|rostov|RU|39.71|47.22|1130|W|rostov na donu;rostow am don;rostov aan de don;rostov del don;rostov do don;rostov sul don;rostov tren song dong;rostov ved don;rostov pe don;rostov sur le don;rostow nad donem,Roswell|GA|US|-84.36|34.02|94|N|,Roswell|NM|US|-104.52|33.39|48|N|,Rotterdam|south holland|NL|4.48|51.92|868|W|roterdao;roterdam,Rouge|ON|CA|-79.17|43.8|46|N|,Round Lake Beach|IL|US|-88.09|42.37|27|N|,Round Rock|TX|US|-97.68|30.51|115|N|,Rourkela|odisha|IN|84.86|22.22|273|W|,Rowland Heights|CA|US|-117.91|33.98|48|N|,Rowlett|TX|US|-96.56|32.9|60|N|,Roxas City|western visayas|PH|122.75|11.59|185|W|,Roy|UT|US|-112.03|41.16|37|N|,Royal Oak|MI|US|-83.14|42.49|59|N|,Royal Palm Beach|FL|US|-80.23|26.71|37|N|,Rubidoux|CA|US|-117.41|34|34|N|,Rubtsovsk|altai krai|RU|81.21|51.51|161|W|roebtsovsk;roubtsovsk;rubcovsk;rubcowsk;rubzowsk;rubtovsk,Ruda Slaska|silesia|PL|18.86|50.26|146|W|ruda o s,Rudrapur|uttarakhand|IN|79.4|28.98|154|W|,Rufisque|dakar|SN|-17.27|14.72|295|W|,Rufisque est|dakar|SN|-17.27|14.72|221|W|,Rugao|jiangsu|CN|120.58|32.37|257|W|,Rui'an|zhejiang|CN|120.66|27.78|927|W|,Ruiru|kiambu county|KE|36.96|-1.15|490|W|,Ruqi|awdal|SO|43.43|9.97|148|W|,Russeifa|zarqa|JO|36.05|32.02|268|W|ar rusajfa;rusajfa;ruseyfa,Russellville|AR|US|-93.13|35.28|29|N|,Rustenburg|north west|ZA|27.24|-25.67|373|W|rustemburgo,Rutchenkivskyi|donetsk|UA|37.7|47.98|168|W|rutchenkivskyi district;rutchenkivskyi rayon;rutchenkove;kirovskyi;kirovskyi rayon,Rutland|BC|CA|-119.39|49.9|34|N|,Ryazan'|ryazan oblast|RU|39.7|54.63|538|W|rjazan;riazan;rjasan,Rybinsk|yaroslavl oblast|RU|38.84|58.05|216|W|ribinsk,Rybnik|silesia|PL|18.54|50.1|142|W|,Rzeszow|subcarpathia|PL|22|50.04|198|W|resov,'s-Hertogenbosch|north brabant|NL|5.3|51.7|160|W|den bosch;bois le duc;bolduque;boscoducale;hertogenbosch;herzogenbusch,Sa Dec|dong thap|VN|105.76|10.29|214|W|,Saaba|centre|BF|-1.41|12.37|136|W|,Saanich|BC|CA|-123.37|48.55|117|N|,Saarbruecken|saarland|DE|7.01|49.23|182|W|saarbrucken;sarrebruck,Sabadell|catalonia|ES|2.11|41.54|211|W|,Sabah as Salim|mubarak al kabir|KW|48.06|29.26|139|W|sabah al salem,Sabha|sabha district|LY|14.43|27.04|149|W|sebha,Sabinas|MX07|MX|-101.12|27.86|54|N|ciudad sabinas,Sabya|jazan region|SA|42.63|17.15|228|W|,Sabzevar|razavi khorasan|IR|57.68|36.21|243|W|sabzawar;sabzewar;sebzevar,Sacaba|cochabamba|BO|-66.04|-17.4|180|W|,Sacoma|sao paulo|BR|-46.6|-23.63|261|W|,Sacramento|CA|US|-121.49|38.58|524|NW|,Saddiqabad|punjab|PK|70.13|28.31|274|W|,Sadr City|baghdad|IQ|44.46|33.39|1211|W|,Safi|marrakesh safi|MA|-9.24|32.3|336|W|asfi;safim;asafi,Saga|saga|JP|130.3|33.23|233|W|saga shi,Sagamihara|kanagawa|JP|139.24|35.57|720|W|,Saginaw|MI|US|-83.95|43.42|49|N|,Saguenay|QC|CA|-71.07|48.42|148|NW|,Saham|al batinah north|OM|56.89|24.17|140|W|,Saharanpur|uttar pradesh|IN|77.55|29.97|484|W|,Saharsa|bihar|IN|86.6|25.87|156|W|,Sahiwal|punjab|PK|72.33|31.97|538|W|,Sahuarita|AZ|US|-110.96|31.96|25|N|,Sahuayo de Morelos|MX16|MX|-102.72|20.06|64|N|,Sai Mai|bangkok|TH|100.65|13.92|188|W|,Saida|saida|DZ|0.15|34.83|142|W|sa ida,Saidpur|rangpur division|BD|88.89|25.78|199|W|,Saint Charles|MO|US|-90.48|38.78|65|N|st charles,Saint Charles|MD|US|-76.94|38.6|36|N|st charles,Saint Clair Shores|MI|US|-82.89|42.5|59|N|st clair shores;saint clr shores,Saint Cloud|MN|US|-94.16|45.56|65|N|st cloud,Saint Cloud|FL|US|-81.28|28.25|35|N|st cloud,Saint-Constant|QC|CA|-73.57|45.37|27|N|,Saint-Denis|reunion|RE|55.45|-20.88|154|W|saint denis de la reunion;st denis,Saint-Etienne|rhone alpes|FR|4.39|45.43|176|W|st etienne,Saint-Eustache|QC|CA|-73.91|45.56|42|N|,Saint George|UT|US|-113.58|37.1|72|N|st george,Saint-Georges|QC|CA|-70.67|46.11|31|N|,Saint-Hubert|QC|CA|-73.42|45.5|82|N|,Saint-Hyacinthe|QC|CA|-72.96|45.63|50|N|st hyacinthe,Saint-Jean-sur-Richelieu|QC|CA|-73.26|45.31|98|N|,Saint-Jerome|QC|CA|-74|45.78|54|N|,Saint John|NB|CA|-66.06|45.27|71|N|saint jean,Saint Joseph|MO|US|-94.85|39.77|76|N|st joseph,Saint-Laurent|QC|CA|-73.67|45.5|98|N|st laurent,Saint-Leonard|QC|CA|-73.6|45.59|79|N|,Saint-Louis|saint louis|SN|-16.49|16.02|254|W|,Saint-Louis-de-Terrebonne|QC|CA|-73.79|45.7|119|N|,Saint Louis Park|MN|US|-93.35|44.95|45|N|st louis park,Saint-Marc|artibonite|HT|-72.7|19.11|266|W|,Saint-Michel|QC|CA|-73.62|45.57|56|N|,Saint Paul|MN|US|-93.09|44.94|303|NW|st paul,Saint Peters|MO|US|-90.63|38.8|52|N|city of saint peters,Saint Petersburg|st petersburg|RU|30.31|59.94|5351|W|pietari;san petersburgo;st petersburg;petrohrad;saint petersbourg;san pietroburgo;sankt peterburg;sankt petersborg;sankt petersburg;sint petersburg;sao petersburgo;leningrad;leningrado;petrograd;petrogrado,Saint-Quentin-en-Yvelines|ile de france|FR|2.02|48.77|146|W|,Sainte-Foy|QC|CA|-71.29|46.78|111|N|,Sainte-Julie|QC|CA|-73.33|45.58|29|N|,Sainte-Therese|QC|CA|-73.83|45.64|25|N|,Saitama|saitama|JP|139.66|35.91|1324|W|,Sakai|osaka|JP|135.47|34.58|826|W|,Saki|oyo state|NG|3.39|8.67|178|W|,Sakura|chiba|JP|140.23|35.72|173|W|,Salaberry-de-Valleyfield|QC|CA|-74.13|45.25|42|N|,Salalah|dhofar|OM|54.09|17.02|163|W|salala,Salamanca|MX11|MX|-101.2|20.57|160|NW|,Salamanca|madrid|ES|-3.68|40.43|147|W|,Salamanca|castille and leon|ES|-5.66|40.97|144|W|salamanka;salamanque,Salatiga|central java|ID|110.49|-7.33|198|W|,Salavat|bashkortostan republic|RU|55.91|53.38|159|W|salauat;salawat,Sale|rabat sale kenitra|MA|-6.8|34.05|972|W|sala,Sale Al Jadida|rabat sale kenitra|MA|-6.74|34|200|W|,Salem|tamil nadu|IN|78.16|11.65|917|W|selam,Salem|OR|US|-123.04|44.94|175|NW|,Salem|MA|US|-70.9|42.52|42|N|,Salem|NH|US|-71.2|42.79|29|N|,Salem|VA|US|-80.05|37.29|25|N|,Salina|KS|US|-97.61|38.84|47|N|,Salina Cruz|MX20|MX|-95.19|16.18|84|N|,Salinas|CA|US|-121.66|36.68|157|NW|,Salisbury|NC|US|-80.47|35.67|34|N|,Salisbury|MD|US|-75.6|38.36|32|N|,Salt Lake City|UT|US|-111.89|40.76|215|NW|kota salt lake,Salta|salta|AR|-65.42|-24.81|520|W|ciudad de salta,Saltillo|MX07|MX|-100.98|25.43|709|NW|,Saltivka|kharkiv|UA|36.35|50.02|409|W|saltivskyi masyv,Salto|sao paulo|BR|-47.29|-23.2|141|W|,Salvador|bahia|BR|-38.49|-12.98|2711|W|salvador de bahia,Salvatierra|MX11|MX|-100.88|20.22|37|N|,Salzburg|state of salzburg|AT|13.04|47.8|157|W|salcburk;salisburgo;salzbourg;salzburgo,Samalut|minya|EG|30.71|28.31|142|W|,Samambaia|federal district|BR|-48.1|-15.88|218|W|,Samara|samara oblast|RU|50.14|53.21|1163|W|kuibyschew;kuibyshev;kuybyshev,Samarinda|east kalimantan|ID|117.15|-0.49|865|W|kota samarinda,Samarkand|samarqand region|UZ|66.96|39.65|595|W|samarcanda;samarcande;samarkanda;samarqand;semerkant,Samarra'|salah ad din|IQ|43.89|34.2|158|W|,Samba|luanda|AO|13.2|-8.88|364|W|,Sambalpur|odisha|IN|83.98|21.47|189|W|,Sambhal|uttar pradesh|IN|78.57|28.58|196|W|,Sambizanga|luanda|AO|13.28|-8.79|177|W|sambizanha,Sammamish|WA|US|-122.08|47.64|52|N|,Sampit|central kalimantan|ID|112.95|-2.53|166|W|,Samsun|samsun|TR|36.34|41.28|394|W|,Samut Prakan|samut prakan|TH|100.6|13.6|388|W|mueang samut prakan;paknam,San Agustin|MX14|MX|-103.47|20.55|30|N|colonia san agustin,San Andres Cholula|MX21|MX|-98.3|19.05|39|N|,San Andres Tuxtla|MX30|MX|-95.21|18.45|61|N|,San Angelo|TX|US|-100.44|31.46|99|N|,San Antonio|TX|US|-98.49|29.42|1526|NW|,San Bernardino|CA|US|-117.29|34.11|216|NW|,San Bernardino Tlaxcalancingo|MX21|MX|-98.28|19.03|54|N|,San Bernardo|santiago metropolitan|CL|-70.7|-33.59|249|W|,San Blas-Canillejas|madrid|ES|-3.62|40.44|157|W|,San Bruno|CA|US|-122.41|37.63|43|N|,San Buenaventura|MX15|MX|-98.86|19.3|44|N|,San Carlos|CA|US|-122.26|37.51|29|N|,San Clemente|CA|US|-117.61|33.43|65|N|,San Cristobal|tachira|VE|-72.24|7.77|289|W|,San Cristobal|san cristobal|DO|-70.11|18.42|154|W|,San Cristobal de las Casas|MX05|MX|-92.64|16.73|215|NW|san cristobal,San Diego|CA|US|-117.16|32.72|1404|NW|,San Dimas|CA|US|-117.81|34.11|34|N|,San Felipe|yaracuy|VE|-68.74|10.34|206|W|,San Felipe|MX11|MX|-101.22|21.48|28|N|,San Fernando|central luzon|PH|120.68|15.03|251|W|kota san fernando;san fernando city,San Fernando|MX28|MX|-98.15|24.85|29|N|,San Fernando de Apure|apure|VE|-67.47|7.89|229|W|san fernando,San Francisco|CA|US|-122.42|37.77|827|NW|sao francisco,San Francisco Acuautla|MX15|MX|-98.86|19.35|27|N|acuautla,San Francisco del Rincon|MX11|MX|-101.86|21.02|71|N|,San Francisco Tesistan|MX14|MX|-103.48|20.8|62|N|,San Gabriel|CA|US|-118.11|34.1|40|N|sao gabriel,San Isidro|MX15|MX|-98.95|19.34|33|N|,San Jacinto|CA|US|-116.96|33.78|46|N|,San Jeronimo|MX15|MX|-99.59|19.28|26|N|,San Jeronimo Cuatro Vientos|MX15|MX|-98.84|19.29|36|N|,San Jose|CA|US|-121.89|37.34|997|NW|,San Jose|san jose|CR|-84.08|9.93|335|W|,San Jose|mimaropa|PH|121.07|12.35|143|W|,San Jose del Cabo|MX03|MX|-109.7|23.05|136|NW|,San Jose del Castillo|MX14|MX|-103.24|20.51|39|N|,San Jose del Monte|central luzon|PH|121.05|14.81|357|W|kota san jose del monte;san jose del monte city,San Jose Guadalupe Otzacatipan|MX15|MX|-99.59|19.34|31|N|,San Juan|san juan|PR|-66.11|18.47|418|W|,San Juan|national capital region|PH|121.03|14.6|134|W|san juan city,San Juan|TX|US|-98.16|26.19|36|N|,San Juan Capistrano|CA|US|-117.66|33.5|36|N|,San Juan de los Lagos|MX14|MX|-102.33|21.25|48|N|,San Juan de los Morros|guarico|VE|-67.35|9.91|160|W|,San Juan del Rio|MX22|MX|-100|20.39|138|NW|,San Juan Sacatepequez|guatemala|GT|-90.64|14.72|136|W|,San Leandro|CA|US|-122.16|37.72|90|N|,San Lorenzo|central department|PY|-57.51|-25.34|227|W|,San Luis|san luis|AR|-66.32|-33.29|169|W|ciudad de san luis,San Luis|AZ|US|-114.78|32.49|31|N|,San Luis de la Paz|MX11|MX|-100.51|21.3|49|N|,San Luis Obispo|CA|US|-120.66|35.28|47|N|,San Luis Potosi|MX24|MX|-100.97|22.15|722|NW|san luis potosi city,San Luis Rio Colorado|MX26|MX|-114.77|32.46|176|NW|,San Marcos|CA|US|-117.17|33.14|92|N|,San Marcos|TX|US|-97.94|29.88|60|N|,San Martin|piura|PE|-80.67|-5.19|130|W|,San Martin Azcatepec|MX15|MX|-98.97|19.69|35|N|,San Martin Texmelucan de Labastida|MX21|MX|-98.44|19.28|155|NW|san martin texmelucan,San Mateo|calabarzon|PH|121.12|14.7|134|W|,San Mateo|CA|US|-122.33|37.56|103|N|,San Mateo Atenco|MX15|MX|-99.53|19.27|67|N|,San Miguel|san miguel department|SV|-88.18|13.48|247|W|,San Miguel|buenos aires|AR|-58.71|-34.54|168|W|,San Miguel Ajusco|MX09|MX|-99.2|19.22|29|N|,San Miguel de Allende|MX11|MX|-100.74|20.92|174|NW|,San Miguel de Tucuman|tucuman|AR|-65.21|-26.82|548|W|tucuman,San Miguel del Padron|havana|CU|-82.33|23.1|159|W|,San Miguel Topilejo|MX09|MX|-99.14|19.2|34|N|,San Miguelito|panama|PA|-79.47|9.05|321|W|,San Nicolas de los Arroyos|buenos aires|AR|-60.21|-33.33|134|W|san nicolas,San Nicolas de los Garza|MX19|MX|-100.3|25.74|412|NW|san nicolas de los garzas,San Pablo|calabarzon|PH|121.33|14.07|300|W|san pablo city,San Pablo|CA|US|-122.35|37.96|30|N|,San Pablo Autopan|MX15|MX|-99.66|19.36|35|N|,San Pablo de las Salinas|MX15|MX|-99.09|19.67|156|NW|san pablo,San-Pedro|bas sassandra district|CI|-6.64|4.75|390|W|,San Pedro|calabarzon|PH|121.05|14.36|348|W|,San Pedro|CA|US|-118.29|33.74|83|N|san pedro y san pablo,San Pedro|MX07|MX|-102.98|25.76|48|N|san pedro de las colonias,San Pedro de Macoris|san pedro de macoris|DO|-69.31|18.45|217|W|,San Pedro Garza Garcia|MX19|MX|-100.4|25.66|132|NW|garza garcia;san pedro,San Pedro Sula|cortes department|HN|-88.03|15.51|801|W|,San Rafael|CA|US|-122.53|37.97|59|N|sao rafael,San Ramon|CA|US|-121.98|37.78|76|N|,San Salvador|san salvador department|SV|-89.19|13.69|525|W|salvador;san salwador,San Salvador de Jujuy|jujuy|AR|-65.29|-24.19|257|W|,San Salvador Tizatlalli|MX15|MX|-99.59|19.26|61|N|,San Sebastian|basque country|ES|-1.97|43.31|185|W|donostia;la bella easo;saint sebastien;sanse;sao sebastiao,San Sebastian el Grande|MX14|MX|-103.43|20.53|28|N|,San Tan Valley|AZ|US|-111.53|33.19|81|N|,Sanaa|amanat alasimah|YE|44.21|15.35|1937|W|san a;sana;sana a,Sanandaj|kurdistan province|IR|47|35.31|349|W|sanandadsch;sanandadz;sanandij;senendec,Sancaktepe|istanbul|TR|29.23|41|489|W|,Sanctorum|MX21|MX|-98.25|19.1|27|N|,Sandacho|hyogo|JP|135.23|34.88|132|W|,Sandakan|sabah|MY|118.12|5.84|439|W|,Sandusky|OH|US|-82.71|41.45|25|N|,Sandy|UT|US|-111.88|40.59|87|N|sandy city,Sandy Hills|UT|US|-111.85|40.58|89|N|,Sandy Springs|GA|US|-84.38|33.92|105|N|,Sanford|FL|US|-81.27|28.8|58|N|,Sanford|NC|US|-79.18|35.48|29|N|,Sangli|maharashtra|IN|74.56|16.85|601|W|turmeric city,Sanhe|hebei|CN|117.07|39.98|965|W|,Sanhe|chongqing|CN|107.73|29.87|140|W|fengdu xian;fengtuhein,Sanliurfa|sanliurfa|TR|38.79|37.17|449|W|sanli urfa;edesse;edesa;edessa,Sanmenxia|henan|CN|111.19|34.78|669|W|san men sia,Sanming|fujian|CN|117.62|26.25|602|W|san ming;tam minh,Sanshui|guangdong|CN|112.89|23.15|153|W|,Sant Andreu|catalonia|ES|2.19|41.44|142|W|distrito sant andreu,Sant Marti|catalonia|ES|2.2|41.42|235|W|distrito de sant marti,Santa Ana|CA|US|-117.87|33.75|310|NW|,Santa Ana|santa ana department|SV|-89.56|13.99|176|W|,Santa Ana Chiautempan|MX29|MX|-98.19|19.31|48|N|,Santa Anita - Los Ficus|lima region|PE|-76.97|-12.05|184|W|,Santa Barbara|CA|US|-119.7|34.42|91|N|,Santa Barbara d'Oeste|sao paulo|BR|-47.41|-22.75|189|W|,Santa Catarina|MX19|MX|-100.46|25.67|304|NW|ciudad santa catarina,Santa Clara|villa clara province|CU|-79.97|22.41|250|W|,Santa Clara|CA|US|-121.96|37.35|126|N|,Santa Clarita|CA|US|-118.54|34.39|182|NW|,Santa Cruz|CA|US|-122.03|36.97|64|N|,Santa Cruz de la Sierra|santa cruz department|BO|-63.18|-17.79|1831|W|santa cruz;santa cruz da serra,Santa Cruz de Tenerife|canary islands|ES|-16.25|28.47|211|W|tenerife;teneriffa,Santa Cruz do Sul|rio grande do sul|BR|-52.43|-29.72|138|W|,Santa Cruz Xoxocotlan|MX20|MX|-96.74|17.03|67|N|santa cruz;xoxocotlan,Santa Fe|santa fe|AR|-60.71|-31.65|391|W|ciudad de santa fe,Santa Fe|NM|US|-105.94|35.69|87|N|,Santa Isabel|MX02|MX|-115.57|32.63|29|N|,Santa Luzia|minas gerais|BR|-43.85|-19.77|219|W|,Santa Maria|rio grande do sul|BR|-53.81|-29.68|271|W|,Santa Maria|CA|US|-120.44|34.95|105|N|,Santa Maria Chimalhuacan|MX15|MX|-98.95|19.42|70|N|,Santa Marta|magdalena department|CO|-74.19|11.24|499|W|,Santa Monica|CA|US|-118.49|34.02|93|N|,Santa Paula|CA|US|-119.06|34.35|30|N|,Santa Rita|paraiba|BR|-34.98|-7.11|149|W|,Santa Rosa|calabarzon|PH|121.11|14.31|216|W|kota santa rosa;santa rosa city,Santa Rosa|CA|US|-122.71|38.44|178|NW|,Santa Rosa Beach|FL|US|-86.23|30.4|32|N|,Santa Rosalia de Camargo|MX06|MX|-105.17|27.68|40|N|,Santa Teresa|MX15|MX|-99.23|19.84|36|N|,Santa Teresa del Tuy|miranda|VE|-66.66|10.23|278|W|,Santana de Parnaiba|sao paulo|BR|-46.92|-23.44|163|W|,Santander|cantabria|ES|-3.8|43.47|173|W|,Santarem|para|BR|-54.71|-2.44|360|W|,Santee|CA|US|-116.97|32.84|57|N|,Santiago|santiago metropolitan|CL|-70.65|-33.46|4837|W|santiago de chile;santiago del cile;santiago do chile;santiago du chili,Santiago|MX19|MX|-100.15|25.43|36|N|villa de santiago,Santiago de Cuba|santiago de cuba province|CU|-75.82|20.02|555|W|santiago di cuba,Santiago de los Caballeros|santiago province|DO|-70.69|19.45|1200|W|santiago,Santiago de Queretaro|MX22|MX|-100.39|20.59|1594|NW|queretaro city,Santiago de Surco|lima region|PE|-77.01|-12.14|251|W|,Santiago del Estero|santiago del estero|AR|-64.26|-27.8|252|W|,Santiago Papasquiaro|MX10|MX|-105.42|25.04|26|N|,Santiago Teyahualco|MX15|MX|-99.12|19.66|53|N|teyahualco,Santo Andre|sao paulo|BR|-46.54|-23.66|662|W|,Santo Domingo|nacional|DO|-69.89|18.47|2201|W|saint domingue;santo domingo city;ciudad trujillo,Santo Domingo de los Colorados|santo domingo de los tsachilas|EC|-79.18|-0.25|458|W|santo domingo,Santo Domingo Este|santo domingo province|DO|-69.85|18.49|700|W|,Santo Domingo Oeste|santo domingo province|DO|-70|18.5|701|W|,Santo Domingo Tehuantepec|MX20|MX|-95.24|16.32|67|N|,Santol|central luzon|PH|120.57|15.16|298|W|,Santos|sao paulo|BR|-46.33|-23.96|418|W|baixada santista,Sants-Montjuic|catalonia|ES|2.15|41.37|183|W|,Sanya|hainan|CN|109.51|18.25|1031|W|san ja;tam a,Sao Bernardo do Campo|sao paulo|BR|-46.56|-23.69|840|W|,Sao Caetano do Sul|sao paulo|BR|-46.55|-23.62|172|W|,Sao Carlos|sao paulo|BR|-47.89|-22.02|266|W|,Sao Felix do Xingu|para|BR|-51.99|-6.64|132|W|,Sao Joao de Meriti|rio de janeiro|BR|-43.37|-22.8|466|W|,Sao Jose|santa catarina|BR|-48.63|-27.62|295|W|,Sao Jose de Ribamar|maranhao|BR|-44.06|-2.56|259|W|,Sao Jose do Rio Preto|sao paulo|BR|-49.38|-20.82|480|W|rio preto,Sao Jose dos Campos|sao paulo|BR|-45.89|-23.18|727|W|sjcampos;vale paraiba;vale do paraiba,Sao Jose dos Pinhais|parana|BR|-49.21|-25.53|349|W|,Sao Leopoldo|rio grande do sul|BR|-51.15|-29.76|209|W|,Sao Lucas|sao paulo|BR|-46.54|-23.59|138|W|,Sao Luis|maranhao|BR|-44.3|-2.53|917|W|maranham,Sao Mateus|sao paulo|BR|-46.48|-23.61|155|W|,Sao Mateus|espirito santo|BR|-39.86|-18.72|134|W|,Sao Paulo|sao paulo|BR|-46.64|-23.55|12400|W|san paolo;sao paulo capital,Sao Rafael|sao paulo|BR|-46.45|-23.63|148|W|,Sao Vicente|sao paulo|BR|-46.39|-23.96|338|W|,Sapele|delta|NG|5.68|5.89|305|W|,Sapopemba|sao paulo|BR|-46.52|-23.6|266|W|,Sapporo|hokkaido|JP|141.35|43.07|1973|W|sapporo shi;sapporoshi,Sapucaia do Sul|rio grande do sul|BR|-51.15|-29.82|132|W|,Saqqez|kurdistan province|IR|46.27|36.25|165|W|saggiz;saghghez,Sarajevo|federation of b h|BA|18.36|43.85|696|W|sarajewo;saraybosna,Saransk|mordoviya republic|RU|45.17|54.18|318|W|,Sarasota|FL|US|-82.53|27.34|55|N|,Saratoga|CA|US|-122.02|37.26|30|N|,Saratoga Springs|NY|US|-73.78|43.08|27|N|saratoga spgs,Saratoga Springs|UT|US|-111.9|40.35|25|N|,Saratov|saratov oblast|RU|45.99|51.54|844|W|saratow,Sargodha|punjab|PK|72.67|32.09|975|W|,Sarh|moyen chari|TD|18.38|9.15|138|W|,Sari|mazandaran|IR|53.06|36.56|255|W|,Sariwon-si|north hwanghae|KP|125.76|38.51|310|W|sariwon,Sarnia|ON|CA|-82.4|42.98|72|N|,Sarria-Sant Gervasi|catalonia|ES|2.14|41.4|147|W|,Sasaram|bihar|IN|84.02|24.95|147|W|,Sasebo|nagasaki|JP|129.73|33.17|243|W|,Saskatoon|SK|CA|-106.67|52.13|266|NW|,Sasolburg|free state|ZA|27.82|-26.81|135|W|,Satna|madhya pradesh|IN|80.83|24.58|282|W|,Saugor|madhya pradesh|IN|78.74|23.84|274|W|,Saugus|MA|US|-71.01|42.46|26|N|,Sault Ste. Marie|ON|CA|-84.33|46.52|72|N|sault sainte marie,Saurimo|lunda sul|AO|20.39|-9.66|393|W|,Savage|MN|US|-93.34|44.78|30|N|,Savannah|GA|US|-81.1|32.08|147|NW|,Savar|dhaka division|BD|90.25|23.85|286|W|sabhar;savar upazila,Saveh|markazi|IR|50.36|35.02|220|W|,Sawangan|west java|ID|106.77|-6.4|197|W|,Sawtelle|CA|US|-118.45|34.04|39|N|,Sayama|saitama|JP|139.41|35.85|160|W|,Sayreville|NJ|US|-74.36|40.46|44|N|,Sayreville Junction|NJ|US|-74.33|40.47|42|N|,Sayula|MX14|MX|-103.6|19.88|26|N|,Schaerbeek|brussels capital|BE|4.38|50.87|132|W|schaarbeek;schaerbeek schaarbeek,Schaumburg|IL|US|-88.08|42.03|74|N|,Schenectady|NY|US|-73.94|42.81|65|N|,Schererville|IN|US|-87.45|41.48|28|N|,Schertz|TX|US|-98.27|29.55|43|N|,Scottsdale|AZ|US|-111.9|33.51|236|NW|,Scranton|PA|US|-75.66|41.41|77|N|,Seaside|CA|US|-121.85|36.61|33|N|,SeaTac|WA|US|-122.29|47.45|28|N|,Seattle|WA|US|-122.33|47.61|780|NW|,Sector 1|bucharest|RO|26.05|44.49|225|W|,Sector 2|bucharest|RO|26.13|44.45|290|W|,Sector 3|bucharest|RO|26.17|44.42|385|W|,Sector 4|bucharest|RO|26.12|44.38|287|W|,Sector 5|bucharest|RO|26.07|44.39|271|W|,Sector 6|bucharest|RO|26.02|44.44|367|W|,Secunderabad|telangana|IN|78.54|17.5|204|W|,Security-Widefield|CO|US|-104.71|38.75|32|N|,Seeb|muscat|OM|58.19|23.67|470|W|as sib;sib,Segou|segou|ML|-6.26|13.44|205|W|segu,Seguin|TX|US|-97.96|29.57|27|N|,Sejong|sejong si|KR|127.29|36.59|394|W|sedzong;yeongi,Sekondi|western|GH|-1.71|4.93|285|W|,Sekondi-Takoradi|western|GH|-1.76|4.93|138|W|sekondi,Selayang Baru Utara|selangor|MY|101.67|3.25|542|W|,Semarang|central java|ID|110.42|-6.99|1694|W|kota semarang,Semey|abai region|KZ|80.25|50.42|292|W|semei;semej;alash kala;semipalatinsk,Senador Canedo|goias|BR|-49.09|-16.71|175|W|,Sendai|miyagi|JP|140.87|38.27|1096|W|,Sengkang New Town||SG|103.89|1.39|267|W|sengkang,Sennar|sennar|SD|33.57|13.57|130|W|sannar;sinnar,Seogwipo|jeju do|KR|126.56|33.25|178|W|,Seongnam-si|gyeonggi do|KR|127.14|37.44|914|W|seongnam,Seoul|seoul|KR|126.98|37.57|10349|W|seoel;seoul si;seul;soul;hanyang,Sepang|selangor|MY|101.75|2.69|212|W|,Sept-Iles|QC|CA|-66.38|50.2|28|N|,Serang|banten|ID|106.15|-6.12|735|W|kabupaten serang,Serekunda|banjul|GM|-16.68|13.44|340|W|serrekunda,Seremban|negeri sembilan|MY|101.94|2.73|372|W|,Seri Kembangan|selangor|MY|101.72|3.03|130|W|,Serilingampalle|telangana|IN|78.3|17.49|150|W|,Serra|espirito santo|BR|-40.31|-20.13|520|W|,Setagaya|tokyo|JP|139.65|35.64|940|W|setagaya city,Setapak|selangor|MY|101.73|3.21|353|W|,Sete Lagoas|minas gerais|BR|-44.25|-19.47|238|W|,Setia Alam|selangor|MY|101.46|3.1|150|W|,Setif|setif|DZ|5.41|36.19|252|W|sathif;satif,Settat|casablanca settat|MA|-7.62|33|155|W|sattat,Sevastopol|sevastopol city|UA|33.52|44.61|547|W|akyar;sebastopol;sebastopoli;sewastopol;sivastopol,Severn|MD|US|-76.7|39.14|44|N|,Severna Park|MD|US|-76.55|39.07|37|N|,Severnyy|moscow|RU|37.55|55.94|200|W|,Severodvinsk|arkhangelskaya|RU|39.83|64.56|194|W|sewerodwinsk;siewierodwinsk,Sevilla|andalusia|ES|-5.97|37.38|686|W|seville;sevilha;sevilia;sewilla;siviglia,Sewell|NJ|US|-75.14|39.77|37|N|,Sfax|sfax governorate|TN|10.76|34.74|280|W|safakes;safakis,Sha Tin|sha tin|HK|114.18|22.38|495|W|shatin,Shagamu|ogun state|NG|3.65|6.85|214|W|sagamu,Shah Alam|selangor|MY|101.53|3.09|740|W|,Shahin Shahr|isfahan|IR|51.55|32.86|173|W|,Shahjanpur|uttar pradesh|IN|79.91|27.88|320|W|shahjahanpur,Shahkot|punjab|PK|73.49|31.57|244|W|,Shahreza|isfahan|IR|51.86|32.01|134|W|,Shahriar|tehran|IR|51.06|35.66|309|W|,Shahrisabz|qashqadaryo|UZ|66.83|39.06|142|W|chakhrisabz;sachrisabz;sjachrisabz;sehr i sebz;sachrizabz,Shahrud|semnan|IR|54.98|36.42|165|W|emamshahr,Shahuwadi|maharashtra|IN|73.95|16.91|180|W|,Shaker Heights|OH|US|-81.54|41.47|27|N|,Shakhty|rostov|RU|40.22|47.72|221|W|chakhty;schachty;shajty;sjachty;sjakhty;szachty;sahti;sachty;sahty,Shakopee|MN|US|-93.53|44.8|39|N|,Sham Shui Po|sham shui po district|HK|114.16|22.33|431|W|,Shanghai|shanghai|CN|121.46|31.22|24874|W|schanghai;shangai;sjanghai;szanghaj;xangai;sangay;sanghay;sanghaj,Shangluo|shaanxi|CN|109.93|33.87|531|W|,Shangqiu|henan|CN|115.66|34.41|1859|W|,Shangrao|jiangxi|CN|117.94|28.45|1116|W|sang zao,Shangri-La|yunnan|CN|99.71|27.83|186|W|,Shangyu|zhejiang|CN|120.87|30.02|770|W|,Shangzhi|heilongjiang|CN|128|45.21|131|W|,Shanhaiguan|hebei|CN|119.75|40|140|W|,Shantipur|west bengal|IN|88.43|23.25|149|W|,Shantou|guangdong|CN|116.68|23.35|3838|W|san tchou,Shanwei|guangdong|CN|115.35|22.78|491|W|san vi;san wej,Shaoguan|guangdong|CN|113.58|24.8|1028|W|sao kuan,Shaoxing|zhejiang|CN|120.58|30|2300|W|sao sing,Shaoyang|hunan|CN|111.46|27.24|753|W|sao jang,Sharjah|sharjah|AE|55.41|25.33|1800|W|sharjah city;charjah;sarja;schardscha;sharja;szardza;sarika;sardza,Shashamane|oromiya|ET|38.6|7.2|208|W|shashemene,Shawinigan|QC|CA|-72.75|46.57|38|N|,Shawnee|KS|US|-94.72|39.04|65|N|,Shawnee|OK|US|-96.93|35.33|31|N|,Sheboygan|WI|US|-87.71|43.75|48|N|,Sheepshead Bay|NY|US|-73.94|40.59|122|N|,Sheffield|england|GB|-1.47|53.38|556|W|,Shekhupura|punjab|PK|73.99|31.71|591|W|sekhupura,Shelby|MI|US|-83.03|42.67|74|N|,Shelton|CT|US|-73.09|41.32|41|N|,Shengavit|yerevan|AM|44.48|40.16|140|W|,Shenglilu|chongqing|CN|105.88|29.35|134|W|,Shenyang|liaoning|CN|123.43|41.79|7050|W|sen jang,Shenzhen|guangdong|CN|114.07|22.55|17494|W|sen cen,Sherbrooke|QC|CA|-71.9|45.4|129|N|,Sherman|TX|US|-96.61|33.64|40|N|,Sherman Oaks|CA|US|-118.45|34.15|52|N|,Sherwood|AR|US|-92.22|34.82|30|N|,Sherwood Park|AB|CA|-113.32|53.52|70|N|,Shevchenkivskyi|kyiv city|UA|30.47|50.46|220|W|,Shevchenko|poltava|UA|34.54|49.56|147|W|shevchenkivskyi rayon,Shibganj|rajshahi division|BD|89.32|25|378|W|,Shibin al Kawm|monufia|EG|31.01|30.55|267|W|,Shibuya|tokyo|JP|139.71|35.66|230|W|shibuya city,Shihezi|xinjiang|CN|86.04|44.3|572|W|,Shijiazhuang|hebei|CN|114.48|38.04|3938|W|s tia cuang,Shijie|guangdong|CN|113.79|23.1|246|W|,Shikarpur|sindh|PK|68.64|27.96|204|W|,Shillong|meghalaya|IN|91.88|25.57|143|W|,Shimla|himachal pradesh|IN|77.17|31.1|173|W|simla,Shimonoseki|yamaguchi|JP|130.94|33.96|265|W|simonoseki,Shimotoda|saitama|JP|139.69|35.81|140|W|,Shinagawa|ehime|JP|133.01|33.64|422|W|shinagawa city,Shinjuku|tokyo|JP|139.71|35.69|349|W|,Shinyanga|shinyanga|TZ|33.42|-3.66|139|W|,Shiqi|guangdong|CN|113.39|22.52|342|W|,Shiqiao|guangdong|CN|113.36|22.95|135|W|,Shiraz|fars|IR|52.53|29.61|1249|W|schiras;chiraz;sziraz;xiraz;siraz,Shirley|NY|US|-72.87|40.8|27|N|,Shivaji Nagar|maharashtra|IN|73.85|18.53|1000|W|,Shivamogga|karnataka|IN|75.57|13.93|322|W|shimoga,Shivpuri|madhya pradesh|IN|77.66|25.42|179|W|,Shiyan|hubei|CN|110.78|32.65|3460|W|s jen,Shizuishan|ningxia|CN|106.39|38.98|739|W|,Shizuoka|shizuoka|JP|138.38|34.98|693|W|sizuoka,Sholapur|maharashtra|IN|75.91|17.67|997|W|solapur,Shomolu|lagos|NG|3.37|6.54|154|W|,Shoreline|WA|US|-122.34|47.76|55|N|,Shoreview|MN|US|-93.15|45.08|26|N|,Shouguang|shandong|CN|118.74|36.88|473|W|,Shreveport|LA|US|-93.75|32.53|187|NW|,Shrewsbury|MA|US|-71.71|42.3|33|N|,Shrirampur|west bengal|IN|88.34|22.75|226|W|serampore,Shuangcheng|heilongjiang|CN|126.31|45.38|130|W|,Shuangyashan|heilongjiang|CN|131.13|46.68|600|W|song ap son;suang ja san,Shubra al Khaymah|qalyubia|EG|31.25|30.13|1240|W|,Shuizhai|guangdong|CN|115.76|23.93|140|W|,Shujaabad|punjab|PK|71.29|29.88|151|W|,Shulin|taipei|TW|121.42|24.99|180|W|shulin district;sulin,Shunan|yamaguchi|JP|131.83|34.08|149|W|,Shuozhou|shanxi|CN|112.42|39.32|433|W|,Shyamnagar|west bengal|IN|88.37|22.83|441|W|,Shymkent|shymkent|KZ|69.6|42.31|1200|W|chymkent;schymkent;sjymkent;szymkent;tsjimkent;cimkent;simkent;symkent,Si Racha|chon buri|TH|100.93|13.17|178|W|,Sialkot|punjab|PK|74.53|32.49|911|W|sijalkot,Sibiu|sibiu county|RO|24.15|45.8|134|W|hermannstadt;sybin;sibin,Sibu|sarawak|MY|111.82|2.3|198|W|,Sicklerville|NJ|US|-74.97|39.72|42|N|,Sidi Bel Abbes|sidi bel abbes|DZ|-0.63|35.19|210|W|sidi belabbas;sidi bilabbas;sidi bu l abbas,Sidoarjo|east java|ID|112.72|-7.45|139|W|,Sidon|south governorate|LB|35.37|33.56|163|W|saida;sayda;sidone;sydon,Siem Reap|siem reap|KH|103.86|13.36|139|W|ciudad de siem riep;khett siem reab;siem reab,Sierra Vista|AZ|US|-110.3|31.55|43|N|,Siguiri|kankan region|GN|-9.17|11.42|148|W|,Sikar|rajasthan|IN|75.14|27.61|244|W|,Sikasso|sikasso|ML|-5.67|11.32|349|W|,Silao de la Victoria|MX11|MX|-101.43|20.94|74|N|silao,Silchar|assam|IN|92.8|24.83|178|W|,Silifke|mersin|TR|33.93|36.38|132|W|,Siliguri|west bengal|IN|88.43|26.71|515|W|shiliguri,Silver Lake|CA|US|-118.27|34.09|32|N|,Silver Spring|MD|US|-77.03|38.99|71|N|,Simele|duhok|IQ|42.85|36.86|152|W|,Simferopol|crimea|UA|34.11|44.96|336|W|simferopoli;akmescit;sinferopoli;symferopol,Simi Valley|CA|US|-118.78|34.27|126|N|,Sincelejo|sucre department|CO|-75.39|9.3|277|W|,Sinch'on-up|south hwanghae|KP|125.48|38.35|141|W|,Sinfra|zanzan district|CI|-5.91|6.62|245|W|,Singa|sennar|SD|33.93|13.15|250|W|sindscha;sindza,Singapore||SG|103.85|1.29|5638|W|singapour;singapur;singapura;danmaxi;temasek,Singaraja|bali|ID|115.09|-8.11|133|W|,Singida|singida|TZ|34.74|-4.82|232|W|,Singkawang|west kalimantan|ID|108.98|0.91|253|W|,Singosari|east java|ID|112.67|-7.89|182|W|,Singrauli|madhya pradesh|IN|82.68|24.2|220|W|,Sinjhoro|sindh|PK|68.81|26.03|354|W|,Sinnuris|faiyum|EG|30.87|29.41|133|W|,Sinop|mato grosso|BR|-55.5|-11.86|223|W|,Sinp'o|south hamgyong|KP|128.19|40.04|152|W|,Sinuiju|p yongan bukto|KP|124.4|40.1|288|W|,Sioux City|IA|US|-96.4|42.5|82|N|kota sioux,Sioux Falls|SD|US|-96.73|43.54|171|NW|,Siping|jilin|CN|124.38|43.16|555|W|s pching;ssupingkai,Sirjan|kerman|IR|55.68|29.45|199|W|sircan;sirdschan;sirdzan,Sirsa|haryana|IN|75.03|29.53|182|W|,Sisli|istanbul|TR|28.99|41.06|314|W|,Sitapur|uttar pradesh|IN|80.68|27.56|164|W|,Sitiawan|perak|MY|100.7|4.22|156|W|,Sittwe|rakhine|MM|92.9|20.15|177|W|akyab,Situbondo|east java|ID|114.01|-7.71|685|W|,Sivakasi|tamil nadu|IN|77.8|9.45|234|W|,Sivas|sivas|TR|37.02|39.75|264|W|,Siverek|sanliurfa|TR|39.32|37.76|175|W|,Siwan|bihar|IN|84.36|26.22|135|W|,Skardu|gilgit baltistan|PK|75.63|35.3|260|W|,Skikda|skikda|DZ|6.91|36.88|182|W|sukaikida;sukajkida,Skokie|IL|US|-87.73|42.03|64|N|,Skopje|grad skopje|MK|21.43|42|474|W|escopia;uskup,Skudai|johor|MY|103.66|1.54|159|W|,Slidell|LA|US|-89.78|30.28|27|N|,Slough|england|GB|-0.6|51.51|164|W|,Smithtown|NY|US|-73.2|40.86|26|N|,Smolensk|smolensk oblast|RU|32.05|54.78|330|W|,Smyrna|GA|US|-84.51|33.88|56|N|,Smyrna|TN|US|-86.52|35.98|46|N|,Snowdon|QC|CA|-73.63|45.49|32|N|,Soacha|cundinamarca|CO|-74.22|4.58|655|W|,Sobral|ceara|BR|-40.35|-3.69|216|W|,Soc Trang|can tho city|VN|105.97|9.6|221|W|,Sochi|krasnodar krai|RU|39.72|43.6|327|W|sotsji;soci;soczi;sotchi;sotji;sotschi;sotsi,Socorro|TX|US|-106.3|31.65|33|N|,Socorro Mission Number 1 Colonia|TX|US|-106.29|31.64|28|N|,Sodo|south ethiopia regional state|ET|37.76|6.86|204|W|,Sofia|sofia capital|BG|23.32|42.7|1152|W|sofie;sofya,Sohag|sohag|EG|31.69|26.56|266|W|sauhadz;sevhac,Soka|saitama|JP|139.8|35.84|249|W|,Sokoto|sokoto|NG|5.24|13.06|1040|W|,Soledad|atlantico|CO|-74.76|10.92|342|W|,Soledad|CA|US|-121.33|36.42|25|N|solebad,Soledad de Graciano Sanchez|MX24|MX|-100.94|22.19|332|NW|,Solingen|north rhine westphalia|DE|7.08|51.17|164|W|,Sollentuna|stockholm|SE|17.95|59.43|139|W|,Solwezi|north western|ZM|26.39|-12.17|301|W|solwesi,Somerset West|western cape|ZA|18.82|-34.08|225|W|somerset wes,Somerton|PA|US|-75.01|40.12|33|N|,Somerville|MA|US|-71.1|42.39|80|N|,Son Tay|hanoi|VN|105.51|21.14|230|W|,Sonargaon|dhaka division|BD|90.62|23.65|130|W|,Songcheng|fujian|CN|120|26.88|165|W|,Songea|ruvuma|TZ|35.65|-10.68|286|W|,Songjiang|shanghai|CN|121.22|31.03|1973|W|,Songnim-ni|north hwanghae|KP|125.64|38.76|152|W|,Sonipat|haryana|IN|77.02|28.99|289|W|,Sorel-Tracy|QC|CA|-73.11|46.04|41|N|sorel,Sorocaba|sao paulo|BR|-47.46|-23.5|762|W|,Sorong|southwest papua|ID|131.26|-0.88|219|W|kota sorong,Sorsogon|bicol region|PH|123.99|12.97|187|W|,Soshanguve|gauteng|ZA|28.1|-25.47|872|W|,Sosnowiec|silesia|PL|19.1|50.29|227|W|sosnovec,Soubre|bas sassandra district|CI|-6.59|5.78|131|W|,Souk Ahras|souk ahras|DZ|7.95|36.29|153|W|souq ahras;suk aharas;suk ahras,Sousse|sousse governorate|TN|10.64|35.83|221|W|susa,South Bel Air|MD|US|-76.34|39.53|48|N|,South Bend|IN|US|-86.25|41.68|101|N|,South Boston|MA|US|-71.05|42.33|571|NW|,South Chicago|IL|US|-87.55|41.74|28|N|guney chicago,South Dublin|leinster|IE|-6.34|53.29|301|W|comte de dublin sud;condado de dublin sur;condado de south dublin;contea di south dublin;dublin poludniowy;dublin south;jizni dublin,South Fulton|GA|US|-84.67|33.59|107|N|,South Gate|CA|US|-118.21|33.95|96|N|,South Gate|MD|US|-76.63|39.13|29|N|,South Hill|WA|US|-122.27|47.14|52|N|,South Jordan|UT|US|-111.93|40.56|66|N|,South Jordan Heights|UT|US|-111.95|40.56|37|N|,South Kingstown|RI|US|-71.52|41.45|30|N|,South Laurel|MD|US|-76.85|39.07|26|N|,South Lawndale|IL|US|-87.71|41.84|73|N|,South Miami Heights|FL|US|-80.38|25.6|36|N|,South Ozone Park|NY|US|-73.82|40.67|75|N|,South Pasadena|CA|US|-118.15|34.12|26|N|,South Peabody|MA|US|-70.95|42.51|50|N|,South Portland|ME|US|-70.24|43.64|25|N|,South Riverdale|ON|CA|-79.34|43.65|27|N|,South San Francisco|CA|US|-122.41|37.65|67|N|,South Shore|IL|US|-87.58|41.76|51|N|,South Suffolk|VA|US|-76.59|36.72|80|N|,South Surrey|BC|CA|-122.79|49.05|77|N|,South Tangerang|banten|ID|106.72|-6.29|1429|W|tangerang selatan,South Valley|NM|US|-106.68|35.01|40|N|,South Vineland|NJ|US|-75.03|39.45|58|N|,South Whittier|CA|US|-118.04|33.95|57|N|,Southampton|england|GB|-1.4|50.9|269|W|,Southaven|MS|US|-90.01|34.99|52|N|southhaven,Southend-on-Sea|england|GB|0.71|51.54|295|W|,Southfield|MI|US|-83.22|42.47|73|N|,Southgate|MI|US|-83.19|42.21|29|N|,Southglenn|CO|US|-104.95|39.59|42|N|,Southington|CT|US|-72.88|41.6|43|N|,Southlake|TX|US|-97.13|32.94|29|N|,Soweto|gauteng|ZA|27.86|-26.27|1695|W|,Soyapango|san salvador department|SV|-89.14|13.71|329|W|,Soyo|zaire|AO|12.37|-6.13|221|W|,Spanaway|WA|US|-122.43|47.1|27|N|,Spanish Fork|UT|US|-111.65|40.11|37|N|,Spanish Town|saint catherine parish|JM|-76.96|17.99|145|W|,Sparks|NV|US|-119.75|39.53|96|N|,Spartanburg|SC|US|-81.93|34.95|37|N|,Split|split dalmatia|HR|16.44|43.51|149|W|spalato,Spokane|WA|US|-117.43|47.66|229|NW|,Spokane Valley|WA|US|-117.24|47.67|94|N|,Spring|TX|US|-95.42|30.08|54|N|,Spring Hill|FL|US|-82.53|28.48|98|N|,Spring Hill|TN|US|-86.93|35.75|36|N|,Spring Valley|NV|US|-115.25|36.11|178|NW|,Spring Valley|NY|US|-74.04|41.11|32|N|,Spring Valley|CA|US|-117|32.74|28|N|,Springdale|AR|US|-94.13|36.19|77|N|,Springfield|MO|US|-93.3|37.22|170|NW|,Springfield|MA|US|-72.59|42.1|154|NW|,Springfield|IL|US|-89.64|39.8|114|N|,Springfield|OR|US|-123.02|44.05|60|N|,Springfield|OH|US|-83.81|39.92|59|N|,Springfield|VA|US|-77.19|38.79|30|N|,Springfield Gardens|NY|US|-73.76|40.66|30|N|,Springs|gauteng|ZA|28.4|-26.25|186|W|,Springville|UT|US|-111.61|40.17|32|N|,Spruce Grove|AB|CA|-113.92|53.53|38|N|,Sri Ganganagar|rajasthan|IN|73.87|29.92|237|W|,Srikakulam|andhra pradesh|IN|83.9|18.3|137|W|,Srinagar|jammu and kashmir|IN|74.81|34.09|1206|W|,St. Albert|AB|CA|-113.64|53.63|57|N|saint albert,St. Catharines|ON|CA|-79.24|43.17|136|NW|sainte catharine,St. Charles|MD|US|-76.92|38.61|33|N|,St. Charles|IL|US|-88.31|41.91|32|N|,St Helens|england|GB|-2.73|53.45|183|W|,St. James-Assiniboia East|MB|CA|-97.23|49.89|27|N|,St. John's|NL|CA|-52.71|47.56|110|N|saint john s;saint jean de terre neuve;saint jean;san juan de terranova;st johns,St. Johns|FL|US|-81.55|30.08|40|N|,St. Louis|MO|US|-90.2|38.63|279|NW|saint louis;san luis,St. Petersburg|FL|US|-82.68|27.77|257|NW|saint pete;saint petersburg,St. Thomas|ON|CA|-81.18|42.77|38|N|saint thomas,Stamford|CT|US|-73.54|41.05|128|N|,Stanton|CA|US|-117.99|33.8|38|N|,Starkville|MS|US|-88.82|33.45|25|N|,Staryy Oskol|belgorod oblast|RU|37.85|51.3|226|W|stary oskol;staryi oskol,State College|PA|US|-77.86|40.79|42|N|,Staten Island|NY|US|-74.14|40.56|468|NW|borough of staten island,Statesboro|GA|US|-81.78|32.45|30|N|,Statesville|NC|US|-80.89|35.78|26|N|,Stavanger|rogaland|NO|5.73|58.97|151|W|,Stavropol|stavropol kray|RU|41.96|45.03|433|W|stawropol;stauropoli,Sterling|VA|US|-77.43|39.01|27|N|,Sterling Heights|MI|US|-83.03|42.58|132|NW|,Sterlitamak|bashkortostan republic|RU|55.95|53.64|267|W|starletamaq,Stevens Point|WI|US|-89.57|44.52|26|N|,Steveston|BC|CA|-123.18|49.13|25|N|,Stillwater|OK|US|-97.06|36.12|48|N|,Stittsville|ON|CA|-75.92|45.25|40|N|,Stockbridge|GA|US|-84.23|33.54|28|N|,Stockholm|stockholm|SE|18.07|59.33|1515|W|estocolmo;stoccolma;stokolm;sztokholm;tukholma,Stockport|england|GB|-2.16|53.41|139|W|,Stockton|CA|US|-121.29|37.96|305|NW|,Stoke-on-Trent|england|GB|-2.19|53|258|W|,Stonecrest|GA|US|-84.13|33.71|50|N|,Stonegate-Queensway|ON|CA|-79.5|43.64|25|N|,Stoney Creek|ON|CA|-79.77|43.22|76|N|,Stouffville|ON|CA|-79.25|43.97|36|N|,Stoughton|MA|US|-71.1|42.13|26|N|,Stow|OH|US|-81.44|41.16|34|N|,Strasbourg|grand est|FR|7.75|48.58|274|W|estrasburgo;straatsburg;strasburg;strasburgo;strazburg;strassburg;strasburk,Stratford|CT|US|-73.13|41.18|51|N|,Stratford|ON|CA|-80.95|43.37|31|N|,Strawberry Hill|BC|CA|-122.88|49.13|41|N|,Streamwood|IL|US|-88.18|42.03|40|N|,Strogino|moscow|RU|37.41|55.82|152|W|,Strongsville|OH|US|-81.84|41.31|44|N|,Studio City|CA|US|-118.4|34.15|34|N|,Stuttgart|baden wurttemberg|DE|9.18|48.78|612|W|estugarda;stoccarda,Subang|west java|ID|107.76|-6.57|137|W|,Subang Jaya|selangor|MY|101.58|3.04|708|W|,Sucre|chuquisaca department|BO|-65.26|-19.03|224|W|,Suez|suez|EG|32.53|29.97|699|W|sues;suveys,Suffolk|VA|US|-76.58|36.73|88|N|,Sugar Land|TX|US|-95.63|29.62|88|N|,Suginami|ibaraki|JP|140.28|36.2|588|W|suginami city,Suicheng|jiangsu|CN|117.93|33.9|256|W|,Suihua|heilongjiang|CN|126.97|46.65|252|W|suej chua;tuy hoa,Suining|sichuan|CN|105.57|30.51|656|W|suej ning,Suisun|CA|US|-122.04|38.24|28|N|,Suita|osaka|JP|135.52|34.76|385|W|,Suitland|MD|US|-76.92|38.85|25|N|,Suitland-Silver Hill|MD|US|-76.93|38.85|33|N|silver hill,Suizhou|hubei|CN|113.36|31.71|618|W|suej cou;tuy chau,Sujangarh|rajasthan|IN|74.47|27.7|183|W|,Sujiatun|liaoning|CN|123.34|41.66|148|W|,Sukabumi|west java|ID|106.93|-6.92|365|W|kota sukabumi,Sukkur|sindh|PK|68.86|27.7|563|W|,Sukrah|ariana governorate|TN|10.25|36.88|159|W|,Sulaymaniyah|sulaymaniyah|IQ|45.43|35.56|878|W|as sulajmanijja;slemani;solimania;souleimaniye;sulaimaniyya;sulaymaniyya;suleimania;suleimaniya;sulejmanie;suleymaniye,Suleja|niger state|NG|7.18|9.18|162|W|,Sullana|piura|PE|-80.69|-4.9|160|W|,Sultan Pur Majra|delhi|IN|77.08|28.69|181|W|,Sultanah|medina region|SA|39.59|24.49|946|W|,Sultanbeyli|istanbul|TR|29.27|40.96|358|W|,Sultangazi|istanbul|TR|28.87|41.11|436|W|,Sumare|sao paulo|BR|-47.27|-22.82|279|W|,Sumayl|duhok|IQ|42.85|36.86|152|W|,Sumbawanga|rukwa|TZ|31.62|-7.97|303|W|,Sumbe|kwanza sul|AO|13.84|-11.21|205|W|,Sumedang|west java|ID|107.92|-6.86|200|W|,Sumgayit|sumqayit|AZ|49.67|40.59|427|W|sumgait;sumgjajet;sumqayit,Sumida|tokyo|JP|139.82|35.73|287|W|sumida city,Summerville|SC|US|-80.18|33.02|48|N|,Sumter|SC|US|-80.34|33.92|40|N|,Sumy|sumy|UA|34.8|50.92|256|W|soemy;soumy;sumi,Sun City|AZ|US|-112.27|33.6|37|N|,Sun Prairie|WI|US|-89.21|43.18|32|N|,Sunch'on|south pyongan|KP|125.93|39.43|437|W|,Suncheon|jeollanam do|KR|127.49|34.95|276|W|sunch on,Sunderland|england|GB|-1.38|54.9|170|W|,Sungai Buloh|selangor|MY|101.56|3.21|222|W|,Sungai Petani|kedah|MY|100.49|5.65|544|W|,Sunggal|north sumatra|ID|98.62|3.58|157|W|,Sunnyside|NY|US|-73.94|40.74|49|N|,Sunnyvale|CA|US|-122.04|37.37|155|NW|,Sunrise|FL|US|-80.11|26.13|84|N|,Sunrise Manor|NV|US|-115.07|36.21|189|NW|,Sunset|BC|CA|-123.1|49.22|36|N|,Sunset Park|NY|US|-74.01|40.65|126|N|,Sunshine Coast|queensland|AU|153.08|-26.66|398|W|costa de sunshine;costa do sunshine;cote du soleil,Superior|WI|US|-92.1|46.72|26|N|,Suqian|jiangsu|CN|118.3|33.95|1437|W|,Surabaya|east java|ID|112.75|-7.25|3018|W|kota surabaya;soerabaja;surabaia;surabaja,Surakarta|central java|ID|110.83|-7.56|526|W|kota surakarta,Surat|gujarat|IN|72.83|21.2|4591|W|surate,Surat Thani|surat thani|TH|99.33|9.14|132|W|,Surendranagar|gujarat|IN|71.65|22.73|179|W|,Surgut|khanty mansia|RU|73.42|61.26|300|W|soergoet;sourgout,Surprise|AZ|US|-112.33|33.63|143|NW|,Surrey|BC|CA|-122.83|49.11|568|NW|,Surrey City Centre|BC|CA|-122.85|49.19|33|N|,Surulere|lagos|NG|3.36|6.5|191|W|,Sutton|england|GB|-0.2|51.35|187|W|london borough of sutton,Suwaylih|balqa|JO|35.84|32.02|151|W|,Suwon|gyeonggi do|KR|127.01|37.29|1234|W|suwon si,Suzano|sao paulo|BR|-46.31|-23.54|320|W|,Suzhou|jiangsu|CN|120.6|31.3|6715|W|su cou;to chau,Suzhou|anhui|CN|116.98|33.64|1647|W|,Suzuka|mie|JP|136.58|34.88|195|W|,Swansea|wales|GB|-3.94|51.62|300|W|,Swindon|england|GB|-1.78|51.56|201|W|,Sydney|new south wales|AU|151.21|-33.87|5638|W|sidney;syd;sydney city,Sydney|NS|CA|-60.18|46.14|105|N|,Sykhiv|lviv|UA|24.06|49.79|151|W|,Syktyvkar|komi|RU|50.82|61.66|245|W|syktywkar;siktivkar,Sylhet|sylhet division|BD|91.87|24.9|237|W|srihotto,Sylmar|CA|US|-118.45|34.31|79|N|,Syracuse|NY|US|-76.15|43.05|144|NW|siracusa,Syracuse|UT|US|-112.06|41.09|27|N|,Syzran|samara oblast|RU|48.47|53.16|189|W|sysran,Szczecin|west pomerania|PL|14.55|53.43|395|W|stettin;estetino;stettino;stetin,Szeged|csongrad|HU|20.15|46.25|160|W|seghedin;seghedino;szegedin;szeghed,Ta'if|mecca region|SA|40.42|21.27|688|W|at ta if;taif;taef,Taboao da Serra|sao paulo|BR|-46.79|-23.63|273|W|,Tabora|tabora|TZ|32.83|-5.02|308|W|,Tabriz|east azerbaijan|IR|46.29|38.08|1424|W|tebriz;tabris,Tabuk|tabuk region|SA|36.57|28.4|667|W|tebuk,Tacambaro de Codallos|MX16|MX|-101.46|19.24|25|N|,Tacheng|xinjiang|CN|82.96|46.75|161|W|,Tachikawa|tokyo|JP|139.42|35.71|183|W|,Tacloban|eastern visayas|PH|125|11.24|259|W|kota tacloban;tacloban city,Tacna|tacna|PE|-70.25|-18.01|286|W|,Tacoma|WA|US|-122.44|47.25|222|NW|,Taganrog|rostov|RU|38.91|47.24|279|W|,Taguatinga|federal district|BR|-48.06|-15.83|193|W|,Taguig|national capital region|PH|121.08|14.52|1308|W|city of taguig,Tahoua|tahoua region|NE|5.27|14.89|159|W|,Tahta|sohag|EG|31.5|26.77|134|W|,Tai'an|shandong|CN|117.12|36.19|1735|W|,Tai Po|tai po|HK|114.17|22.45|274|W|,Taicang|jiangsu|CN|121.09|31.45|831|W|,Taichung|taiwan|TW|120.68|24.15|2850|W|kota taichung;taizhong;tchaj cung;dai trung,Tainan|taiwan|TW|120.21|22.99|1856|W|kota tainan;tainan city;tchaj nan;dai nam,Taipei|taiwan|TW|121.53|25.05|7871|W|kota taipei;taipeh;taipe;tajpej;tchaj pej,Taiping|perak|MY|100.73|4.85|217|W|,Taishan|guangdong|CN|112.78|22.25|145|W|dai son,Taito|tokyo|JP|139.78|35.71|211|W|taito city,Taiyuan|shanxi|CN|112.56|37.87|4303|W|tchaj juan;thai nguyen,Taiz|ta izz|YE|44.02|13.58|940|W|taez,Taizhou|jiangsu|CN|119.91|32.49|1607|W|tchaj cou;thai chau,Taizhou|zhejiang|CN|121.43|28.66|1485|W|tchaj cou;thai chau,Takamatsu|kagawa|JP|134.05|34.33|418|W|takamacu;takamatsu shi;takamatsushi,Takaoka|toyama|JP|137.02|36.75|170|W|,Takarazuka|hyogo|JP|135.36|34.8|226|W|,Takasaki|gunma|JP|139.02|36.33|372|W|,Takatsuki|osaka|JP|135.62|34.85|354|W|,Takeo|takeo|KH|104.78|10.99|843|W|,Takoradi|western|GH|-1.76|4.9|389|W|takoradze,Tala|MX14|MX|-103.7|20.65|35|N|,Talatona|luanda|AO|13.19|-8.92|500|W|,Talca|maule region|CL|-71.65|-35.42|197|W|,Talcahuano|biobio|CL|-73.12|-36.72|150|W|,Talhar|sindh|PK|68.81|24.88|200|W|,Talisay|central visayas|PH|123.85|10.24|133|W|talisay city,Tallahassee|FL|US|-84.28|30.44|201|NW|,Tallinn|harjumaa|EE|24.75|59.44|394|W|tallinna;talin;tallin;lindanas;reval;revel;raaveli,Tam Ky|da nang city|VN|108.47|15.57|165|W|,Tam O'Shanter-Sullivan|ON|CA|-79.3|43.78|27|N|,Tama|tokyo|JP|139.47|35.64|148|W|,Tamale|northern|GH|-0.84|9.4|464|W|,Taman Petaling|kuala lumpur|MY|101.65|3.2|423|W|,Tamarac|FL|US|-80.25|26.21|64|N|,Tambacounda|tambacounda|SN|-13.67|13.77|149|W|,Tambaram|tamil nadu|IN|80.13|12.92|174|W|,Tambov|tambov oblast|RU|41.44|52.74|293|W|tambow,Tamiami|FL|US|-80.4|25.76|55|N|,Tampa|FL|US|-82.46|27.95|414|NW|,Tampere|pirkanmaa|FI|23.79|61.5|260|W|tammerfors,Tampico|MX28|MX|-97.88|22.29|309|NW|,Tampines Estate||SG|103.94|1.36|265|W|tampines,Tampines New Town||SG|103.95|1.35|259|W|,Tan An|tay ninh|VN|106.41|10.54|215|W|,Tan Chau|an giang|VN|105.24|10.8|175|W|,Tando Adam|sindh|PK|68.66|25.77|174|W|,Tando Allahyar|sindh|PK|68.72|25.46|421|W|,Tando Bago|sindh|PK|68.97|24.79|426|W|,Tanga|tanga|TZ|39.1|-5.07|393|W|,Tangail|dhaka division|BD|89.92|24.25|180|W|,Tangerang|banten|ID|106.63|-6.18|1927|W|kota tangerang,Tanggu|tianjin|CN|117.65|39.02|535|W|taku,Tanghe|henan|CN|112.83|32.69|278|W|,Tangier|tanger tetouan al hoceima|MA|-5.8|35.77|1035|W|tanger;tanca;tangeri,Tangshan|hebei|CN|118.18|39.64|3372|W|tchang san,Tanjung Pinang|riau islands|ID|104.46|0.92|227|W|kota tanjungpinang,Tanjungbalai|north sumatra|ID|99.8|2.97|190|W|,Tanta|gharbia|EG|31|30.79|576|W|,Tantou|guangdong|CN|113.83|22.75|320|W|,Tantoyuca|MX30|MX|-98.23|21.35|30|N|,Tanzhou|guangdong|CN|113.47|22.26|382|W|,Taoyuan|taiwan|TW|121.3|24.99|475|W|taoyuan district;dao vien;taoyuan city,Taozhou|anhui|CN|119.41|30.91|146|W|,Tapachula|MX05|MX|-92.26|14.91|353|NW|,Tarakan|north kalimantan|ID|117.59|3.31|255|W|kota tarakan,Taranto|apulia|IT|17.25|40.46|198|W|tarde;tarent;tarente;tarento,Taraz|zhambyl|KZ|71.37|42.9|358|W|taras,Targu Mures|mures county|RO|24.56|46.54|212|W|neumarkt am mieresch;neumarkt;tirgu mures,Tariba|tachira|VE|-72.22|7.82|138|W|,Tarija|tarija department|BO|-64.73|-21.54|159|W|,Tarime|mara|TZ|34.37|-1.35|133|W|,Tarlac City|central luzon|PH|120.6|15.48|401|W|,Tarragona|catalonia|ES|1.25|41.12|141|W|tarragone,Tarsus|mersin|TR|34.89|36.92|350|W|tars;tarse;tarso,Tartus|tartus|SY|35.89|34.89|458|W|tartous,Tasek Glugor|penang|MY|100.5|5.48|135|W|tasek gelugor,Tashkent|tashkent|UZ|69.22|41.26|1978|W|tachkent;taschkent;tasjkent;taskent;taszkent,Tasikmalaya|west java|ID|108.22|-7.33|770|W|kota tasikmalaya,Taubate|sao paulo|BR|-45.56|-23.03|322|W|,Taunggyi|shan state|MM|97.04|20.79|160|W|,Taunton|MA|US|-71.09|41.9|56|N|,Tauranga|bay of plenty|NZ|176.17|-37.69|161|W|,Tawau|sabah|MY|117.89|4.24|372|W|tawao,Taxco de Alarcon|MX12|MX|-99.61|18.55|50|N|taxco,Tay Ho|hanoi|VN|105.81|21.07|168|W|,Tay Ninh|tay ninh|VN|106.1|11.31|135|W|,Taylor|MI|US|-83.27|42.24|61|N|,Taylorsville|UT|US|-111.94|40.67|60|N|,Taytay|calabarzon|PH|121.13|14.56|231|W|,Taza|fes meknes|MA|-4.01|34.21|162|W|,Tbilisi|tbilisi|GE|44.83|41.69|1049|W|tbilissi;tiblissi;tiflis,Teaneck|NJ|US|-74.02|40.9|40|N|,Teapa|MX27|MX|-92.95|17.56|26|N|,Tebessa|tebessa|DZ|8.12|35.4|194|W|tibissa,Tecamachalco|MX21|MX|-97.73|18.88|28|N|,Tecate|MX02|MX|-116.63|32.57|64|N|,Tecax|MX31|MX|-89.29|20.21|25|N|tekax,Tecoman|MX08|MX|-103.88|18.92|85|N|,Tegal|central java|ID|109.14|-6.87|297|W|kota tegal,Tegucigalpa|francisco morazan department|HN|-87.21|14.08|850|W|,Tehran|tehran|IR|51.42|35.69|7153|W|tahran;teera;teerao;teheran,Tehuacan|MX21|MX|-97.4|18.46|248|NW|,Teixeira de Freitas|bahia|BR|-39.74|-17.54|145|W|,Tejupilco de Hidalgo|MX15|MX|-100.15|18.9|25|N|,Tel Aviv|tel aviv|IL|34.78|32.08|432|W|tel aviv yaffo;tel aviv yafo;tel awiw,Telford|england|GB|-2.45|52.68|155|W|,Teluk Intan|perak|MY|101.02|4.02|232|W|teluk anson,Teluknaga|west java|ID|106.64|-6.1|175|W|,Tema|greater accra|GH|-0.02|5.67|155|W|,Temara|rabat sale kenitra|MA|-6.91|33.93|342|W|,Temecula|CA|US|-117.15|33.49|110|N|,Temirtau|karaganda|KZ|72.95|50.05|170|W|temirtaou;temirtaw;temyrtau,Temixco|MX17|MX|-99.23|18.85|97|N|,Tempe|AZ|US|-111.91|33.41|175|NW|,Tempe Junction|AZ|US|-111.94|33.41|158|NW|,Temple|TX|US|-97.34|31.1|72|N|,Temple City|CA|US|-118.06|34.11|36|N|,Temple Terrace|FL|US|-82.39|28.04|25|N|,Temuco|araucania|CL|-72.6|-38.74|238|W|,Teni|tamil nadu|IN|77.48|10.01|1034|W|theni,Tenosique|MX27|MX|-91.42|17.47|32|N|,Teofilo Otoni|minas gerais|BR|-41.51|-17.86|142|W|,Teoloyucan|MX15|MX|-99.18|19.74|51|N|,Tepatitlan de Morelos|MX14|MX|-102.76|20.82|91|N|,Tepeaca|MX21|MX|-97.9|18.97|27|N|tepeaca de negrete,Tepeji del Rio de Ocampo|MX13|MX|-99.34|19.9|80|N|,Tepexpan|MX15|MX|-98.94|19.61|102|N|,Tepic|MX18|MX|-104.89|21.51|332|NW|,Tepotzotlan|MX15|MX|-99.22|19.72|38|N|,Tequila|MX14|MX|-103.84|20.88|29|N|municipio tequila,Tequisquiapan|MX22|MX|-99.89|20.52|29|N|,Teresina|piaui|BR|-42.8|-5.09|871|W|,Teresopolis|rio de janeiro|BR|-42.98|-22.42|176|W|,Ternate|north maluku|ID|127.38|0.79|210|W|kota ternate,Ternopil|ternopil|UA|25.59|49.55|225|W|tarnopol;tarnopoli,Terrassa|catalonia|ES|2.02|41.57|218|W|,Terre Haute|IN|US|-87.41|39.47|60|N|,Terrebonne|QC|CA|-73.65|45.7|111|N|,Teshi Old Town|greater accra|GH|-0.11|5.58|144|W|teshie,Tete|tete|MZ|33.59|-16.16|357|W|vila de santiago maior,Tetouan|tanger tetouan al hoceima|MA|-5.37|35.58|415|W|tetuan;tetuao,Tetuan de las Victorias|madrid|ES|-3.7|40.46|155|W|tetuan,Tewksbury|MA|US|-71.23|42.61|29|N|,Texarkana|TX|US|-94.05|33.43|37|N|,Texarkana|AR|US|-94.04|33.44|30|N|,Texas City|TX|US|-94.9|29.38|47|N|,Texcoco de Mora|MX15|MX|-98.88|19.51|105|N|texcoco,Teziutlan|MX21|MX|-97.36|19.82|103|N|,Thai Nguyen|thai nguyen|VN|105.85|21.59|420|W|,Thane|maharashtra|IN|72.96|19.2|1841|W|thana,Thanesar|haryana|IN|76.83|29.97|155|W|,Thanh Hoa|thanh hoa province|VN|105.77|19.8|850|W|,Thanh Khe|da nang city|VN|108.19|16.07|201|W|,Thanh Pho Ba Ria|ho chi minh city hcmc|VN|107.17|10.5|235|W|,Thanh Xuan|hanoi|VN|105.8|20.99|293|W|,Thanjavur|tamil nadu|IN|79.14|10.79|291|W|tanjavur;tandzawur;tancavur,The Acreage|FL|US|-80.27|26.79|38|N|,The Bronx|NY|US|-73.87|40.85|1385|NW|bronx;borough of bronx,The Colony|TX|US|-96.89|33.09|41|N|,The Hague|south holland|NL|4.3|52.08|474|W|den haag;a haia;haag;haga;l aia;la haya;la haye;lahey;s gravenhage,The Hammocks|FL|US|-80.44|25.67|51|N|,The Trails of Frisco|TX|US|-96.87|33.16|51|N|,The Villages|FL|US|-81.96|28.93|51|N|,The Woodlands|TX|US|-95.49|30.16|93|N|woodlands,Thembisa|gauteng|ZA|28.23|-26|511|W|,Thenali|andhra pradesh|IN|80.64|16.24|164|W|,Thessaloniki|central macedonia|GR|22.93|40.64|317|W|salonica;ftohomana;salonic;salonicco;saloniki;selanik;solun;tesalonica;thessalonique,Thetford-Mines|QC|CA|-71.31|46.09|25|N|,Thi Tran GJai Tu|thai nguyen|VN|105.64|21.63|179|W|,Thi Tran GJong Trieu|quang ninh|VN|106.51|21.08|248|W|,Thi Tran Thuan Chau|son la province|VN|103.69|21.44|153|W|,Thies|thies|SN|-16.93|14.79|317|W|,Thies Nones|thies|SN|-16.97|14.78|252|W|,Thika|nairobi county|KE|37.07|-1.03|251|W|,Thiruvananthapuram|kerala|IN|76.95|8.49|788|W|tiruvanantapuram;trivandrum,Thomasville|NC|US|-80.08|35.88|27|N|,Thoothukudi|tamil nadu|IN|78.13|8.77|410|W|thoothukkudi;tuticorin,Thornton|CO|US|-104.97|39.87|133|NW|,Thot Not|can tho city|VN|105.53|10.27|158|W|,Thousand Oaks|CA|US|-118.84|34.17|129|N|,Thrissur|kerala|IN|76.22|10.52|315|W|trichur,Throgs Neck|NY|US|-73.82|40.82|33|N|,Thu Dau Mot|ho chi minh city hcmc|VN|106.65|10.98|373|W|,Thu GJuc|ho chi minh city hcmc|VN|106.77|10.85|524|W|,Thuan An|ho chi minh city hcmc|VN|106.71|10.92|588|W|,Thuan Thanh|bac ninh|VN|106.08|21.05|199|W|,Thunder Bay|ON|CA|-89.25|48.38|108|N|,Thuqbah|eastern province|SA|50.2|26.26|248|W|,Tianjin|tianjin|CN|117.18|39.14|11090|W|tchien tin;thien tan;tiencin;tientsin,Tianshui|gansu|CN|105.74|34.58|1212|W|,Tiaret|tiaret|DZ|1.32|35.37|178|W|tijarat,Ticul|MX31|MX|-89.53|20.4|32|N|,Tieling|liaoning|CN|123.84|42.29|333|W|,Tierra Blanca|MX30|MX|-96.36|18.45|47|N|,Tigard|OR|US|-122.77|45.43|51|N|,Tijuana|MX02|MX|-117|32.5|1922|NW|,Tilburg|north brabant|NL|5.09|51.56|221|W|tilburgo,Timika|central papua|ID|136.68|-4.61|142|W|,Timisoara|timis county|RO|21.23|45.75|250|W|temeswar;freidorf;josephs stadt;temeschburg;temeschwar;temesvar,Timmins|ON|CA|-81.33|48.47|41|N|,Timon|maranhao|BR|-42.84|-5.09|174|W|,Tin Shui Wai|yuen long|HK|114|22.46|286|W|,Tinh Bien|an giang|VN|104.94|10.6|143|W|,Tinley Park|IL|US|-87.78|41.57|57|N|,Tirana|tirana|AL|19.82|41.33|418|W|tiran,Tiraspol|transnistria|MD|29.63|46.84|157|W|tiraspoli;tyraspol,Tirmiz|surxondaryo region|UZ|67.28|37.22|182|W|termez;termiz,Tiruchirappalli|tamil nadu|IN|78.7|10.82|1022|W|tiruchchirappalli;tiruchirapalli;tiruccirappalli;tiruchi;trichinopoly;trichy,Tirunelveli|tamil nadu|IN|77.68|8.73|1435|W|tirunelweli,Tirupati|andhra pradesh|IN|79.42|13.64|295|W|tirumala tirupati,Tiruppur|tamil nadu|IN|77.35|11.12|963|W|tirupur,Tiruvannamalai|tamil nadu|IN|79.07|12.23|145|W|,Tiruvottiyur|tamil nadu|IN|80.3|13.16|249|W|,Titusville|FL|US|-80.81|28.61|45|N|,Tizayuca|MX13|MX|-98.98|19.84|43|N|,Tizimin|MX31|MX|-88.15|21.14|46|N|,Tlahuac|MX09|MX|-99.01|19.29|305|NW|delegacion tlahuac,Tlajomulco de Zuniga|MX14|MX|-103.45|20.47|30|N|,Tlalnepantla|MX15|MX|-99.2|19.54|653|NW|tlalnepantla de baz;tlanepantla de baz,Tlalpan|MX09|MX|-99.16|19.3|574|NW|delegacion tlalpan,Tlapa de Comonfort|MX12|MX|-98.58|17.55|46|N|,Tlapacoyan|MX30|MX|-97.21|19.96|35|N|,Tlaquepaque|MX14|MX|-103.29|20.64|650|NW|san pedro tlaquepaque,Tlaxcala|MX29|MX|-98.24|19.32|84|N|tlaxcala city;tlaxcala de xicotencatl,Tlemcen|tlemcen|DZ|-1.31|34.88|173|W|tilimsan;tremecen,Toamasina|atsinanana|MG|49.4|-18.15|345|W|tamatave,Tobruk|al butnan|LY|23.95|32.09|141|W|thubruq;tobroek;tobrouk;tobruch,Tochigi|tochigi|JP|139.73|36.38|159|W|,Tokch'on|south pyongan|KP|126.26|39.75|237|W|,Tokorozawa|saitama|JP|139.47|35.8|344|W|,Tokushima|tokushima|JP|134.57|34.07|267|W|tokusima,Tokyo|tokyo|JP|139.69|35.69|9733|W|tokio;toquio;edo,Toledo|OH|US|-83.56|41.66|265|NW|,Toledo|central visayas|PH|123.64|10.38|206|W|toledo city,Toledo|parana|BR|-53.74|-24.71|160|W|,Toli-Toli|central sulawesi|ID|120.82|1.04|242|W|tolitoli,Toliara|atsimo andrefana|MG|43.67|-23.35|178|W|tulear,Toluca|MX15|MX|-99.65|19.29|489|NW|toluca de lerdo,Tolyatti|samara oblast|RU|49.35|53.53|702|W|togliatti;togliattigrad;tol yatti;toliatti;toljatti;stavropol,Tomakomai|hokkaido|JP|141.6|42.64|174|W|,Toms River|NJ|US|-74.2|39.95|88|N|,Tomsk|tomsk oblast|RU|84.98|56.5|574|W|,Tonala|MX14|MX|-103.24|20.62|408|NW|,Tonala|MX05|MX|-93.75|16.09|35|N|,Tondabayashicho|osaka|JP|135.6|34.5|132|W|tondabayashi,Tongchuan|shaanxi|CN|108.95|34.9|417|W|,Tongchuanshi|shaanxi|CN|109.08|35.07|223|W|tchung cchuan,Tonghua|jilin|CN|125.93|41.72|510|W|tchung chua;thong hoa,Tongliao|inner mongolia|CN|122.27|43.61|261|W|thong lieu,Tongling|anhui|CN|117.78|30.95|402|W|,Tongshan|jiangsu|CN|117.16|34.18|329|W|xuzhou,Tongzhou|beijing|CN|116.66|39.9|163|W|,Tonk|rajasthan|IN|75.79|26.17|165|W|,Tooele|UT|US|-112.3|40.53|33|N|,Toowoomba|queensland|AU|151.95|-27.56|142|W|,Topeka|KS|US|-95.68|39.05|125|N|,Torbat-e Heydariyeh|razavi khorasan|IR|59.22|35.27|140|W|,Tordher|khyber pakhtunkhwa|PK|72.29|33.99|150|W|,Toronto|ON|CA|-79.4|43.71|2794|NW|,Torrance|CA|US|-118.34|33.84|143|NW|,Torreon|MX07|MX|-103.42|25.54|735|NW|,Torrington|CT|US|-73.12|41.8|34|N|,Torun|kujawsko pomorskie|PL|18.6|53.01|196|W|thorn,Toshima|tokyo|JP|139.74|35.76|301|W|toshima city,Tottenham|england|GB|-0.07|51.6|130|W|,Tottori-shi|tottori|JP|134.23|35.5|188|W|,Touba|diourbel region|SN|-15.88|14.86|1120|W|,Touggourt|touggourt|DZ|6.07|33.11|143|W|tukkurt,Toulon|provence alpes cote d azur|FR|5.93|43.12|168|W|tolone;tolon;tulon,Toulouse|occitanie|FR|1.44|43.6|511|W|tolosa;tolosa de francia;tuluza,Tours|centre val de loire|FR|0.7|47.39|141|W|,Town 'n' Country|FL|US|-82.58|28.01|78|N|,Townsville|queensland|AU|146.81|-19.27|201|W|,Towson|MD|US|-76.6|39.4|55|N|,Toyama|toyama|JP|137.22|36.7|415|W|toyama shi;toyamashi,Toyohashi|aichi|JP|137.38|34.77|377|W|toyohashi shi,Toyokawa|aichi|JP|137.4|34.82|184|W|,Toyonaka|osaka|JP|135.47|34.78|401|W|,Toyota|aichi|JP|137.15|35.08|426|W|tojota,Tra Vinh|vinh long|VN|106.34|9.95|160|W|thanh pho tra vinh,Trabzon|trabzon|TR|39.73|41.01|244|W|trapisonda;trebisonda;trebizonda,Tracy|CA|US|-121.43|37.74|87|N|,Trang Bang|tay ninh|VN|106.36|11.03|161|W|,Trenton|NJ|US|-74.74|40.22|89|N|,Tres Lagoas|mato grosso do sul|BR|-51.7|-20.79|143|W|,Tri-Cities|WA|US|-119.2|46.25|244|NW|,Trieste|friuli venezia giulia|IT|13.78|45.65|204|W|terst;triest,Trindade|goias|BR|-49.49|-16.65|142|W|,Tripoli|tripoli|LY|13.19|32.89|1302|W|trablus;tripolis;trypolis,Tripoli|north lebanon|LB|35.84|34.43|229|W|trablussam;tripolis;trypolis,Trois-Rivieres|QC|CA|-72.55|46.35|144|NW|,Trondheim|trondelag|NO|10.4|63.43|216|W|,Troy|MI|US|-83.15|42.61|83|N|,Troy|NY|US|-73.69|42.73|49|N|,Troy|OH|US|-84.2|40.04|25|N|,Trujillo|la libertad|PE|-79.03|-8.12|1067|W|,Trumbull|CT|US|-73.2|41.24|36|N|,Tsentralnyi|donetsk|UA|37.55|47.1|179|W|tsentralnyi rayon;molotovskyi;molotovskyi rayon;zhovtnevyi;zhovtnevyi rayon,Tseung Kwan O|sai kung district|HK|114.25|22.33|412|W|,Tshikapa|kasai|CD|20.8|-6.42|634|W|,Tsing Yi Town|kwai tsing district|HK|114.1|22.35|182|W|tsing yi,Tsu|mie|JP|136.52|34.73|274|W|,Tsuchiura|ibaraki|JP|140.21|36.09|144|W|,Tsuen Wan|tsuen wan|HK|114.11|22.37|318|W|,Tsukuba|ibaraki|JP|140.12|36.08|241|W|cukuba,Tualatin|OR|US|-122.76|45.38|27|N|,Tuckahoe|VA|US|-77.56|37.59|44|N|,Tucker|GA|US|-84.22|33.85|27|N|,Tucson|AZ|US|-110.93|32.22|542|NW|,Tuen Mun|tuen mun|HK|113.97|22.39|507|W|tuenmen,Tuerkmenabat|lebap|TM|63.58|39.07|230|W|turkmenabat;charjou,Tuguegarao|cagayan valley|PH|121.72|17.62|167|W|tuguegarao city;tuguegaro,Tujunga|CA|US|-118.29|34.25|26|N|,Tula|tula oblast|RU|37.62|54.2|482|W|toela;toula,Tula de Allende|MX13|MX|-99.34|20.05|28|N|,Tulancingo|MX13|MX|-98.36|20.08|102|N|tulancingo de bravo,Tulare|CA|US|-119.35|36.21|62|N|,Tulsa|OK|US|-95.99|36.15|413|NW|,Tultepec|MX15|MX|-99.13|19.68|65|N|,Tultitlan de Mariano Escobedo|MX15|MX|-99.17|19.65|28|N|,Tulua|valle del cauca department|CO|-76.2|4.08|221|W|,Tumkur|karnataka|IN|77.1|13.34|307|W|tumakuru,Tumxuk|xinjiang|CN|79.06|39.87|135|W|tumushuke,Tunduma|songwe|TZ|32.77|-9.3|219|W|,Tungi|dhaka division|BD|90.4|23.89|337|W|tongi,Tunis|tunis governorate|TN|10.17|36.82|693|W|tunez;tunes;tunisi;tunus,Tunja|boyaca|CO|-73.36|5.54|172|W|,Tuong Mai|hanoi|VN|105.86|20.99|136|W|,Tupelo|MS|US|-88.7|34.26|35|N|,Turin|piedmont|IT|7.69|45.07|847|W|torino;turijn;turim;turyn,Turkistan|turkistan|KZ|68.26|43.29|227|W|turkestan;turquistao,Turku|southwest finland|FI|22.27|60.45|206|W|abo,Turlock|CA|US|-120.85|37.49|72|N|,Turmero|aragua|VE|-67.47|10.23|344|W|,Turpan|xinjiang|CN|89.18|42.95|273|W|tourfan;turfan,Tuscaloosa|AL|US|-87.57|33.21|111|N|,Tustin|CA|US|-117.83|33.75|80|N|,Tuxpam de Rodriguez Cano|MX30|MX|-97.41|20.96|84|N|tuxpam,Tuxpan|MX14|MX|-103.38|19.56|27|N|,Tuxtepec|MX20|MX|-96.13|18.09|159|NW|san juan bautista;san juan bautista tuxtla,Tuxtla|MX05|MX|-93.12|16.75|604|NW|tuxtla gtz;tuxtla gutierrez,Tuy Hoa|dak lak|VN|109.32|13.1|155|W|,Tuzla|federation of b h|BA|18.67|44.54|142|W|,Tver|tver oblast|RU|35.9|56.86|420|W|twer;kalinin,Twentynine Palms|CA|US|-116.05|34.14|26|N|,Twin Falls|ID|US|-114.46|42.56|47|N|,Tychy|silesia|PL|18.97|50.14|130|W|tichau,Tyler|TX|US|-95.3|32.35|103|N|,Tyre|south governorate|LB|35.19|33.27|135|W|sur;tiro;tyr;tyros;tyrus,Tyumen|tyumen oblast|RU|65.53|57.15|768|W|tioumen;tjumen;tiumen;tjoemen;tumen,Ube|yamaguchi|JP|131.25|33.94|173|W|,Uberaba|minas gerais|BR|-47.93|-19.75|356|W|,Uberlandia|minas gerais|BR|-48.28|-18.92|754|W|,Udaipur|rajasthan|IN|73.71|24.59|451|W|udajpur,Udon Thani|udon thani|TH|102.79|17.42|130|W|,Udupi|karnataka|IN|74.75|13.33|165|W|,Ueda|nagano|JP|138.28|36.4|157|W|,UEruemqi|xinjiang|CN|87.6|43.8|3029|W|urumqi;urumchi;urumczi;urumtschi;urumci;dihua,UEskuedar|istanbul|TR|29.01|41.02|524|W|uskudar;scutari;skutari,Ufa|bashkortostan republic|RU|55.97|54.74|1120|W|oefa;oufa,Ugep|cross river state|NG|8.08|5.81|200|W|,Uige|uige|AO|15.06|-7.61|322|W|,Uijeongbu-si|gyeonggi do|KR|127.05|37.74|479|W|uijeongbu,Uji|kyoto|JP|135.8|34.89|192|W|udzi,Ujjain|madhya pradesh|IN|75.78|23.18|515|W|udzdzain,Ulan Bator|ulaanbaatar|MN|106.88|47.91|844|W|ulaanbaatar;oulan bator;ulaan baatar;ulan batur;ulanbatar;ula bator,Ulan-Ude|buryatiya republic|RU|107.6|51.83|360|W|oelan oede;oulan oude,Ulanhot|inner mongolia|CN|122.08|46.08|165|W|,Ulanqab|inner mongolia|CN|113.13|40.99|550|W|,Ulhasnagar|maharashtra|IN|73.15|19.22|516|W|,Ulsan|ulsan|KR|129.32|35.54|1098|W|ulsan si,Ulu Bedok||SG|103.93|1.33|276|W|,Uluberiya|west bengal|IN|88.1|22.48|235|W|,Ulyanovsk|ulyanovsk|RU|48.39|54.33|626|W|oulianovsk;uljanowsk;oeljanovsk;ul janovsk;ulianovsk;uljanovsk,Uman|MX31|MX|-89.75|20.88|39|N|,Umarkot|sindh|PK|69.74|25.36|144|W|,Umea|vasterbotten|SE|20.26|63.83|130|W|uumaja,Umraniye|istanbul|TR|29.12|41.02|573|W|,Umuahia|abia state|NG|7.49|5.52|370|W|,Unaizah|al qassim region|SA|44|26.1|183|W|,Ungaran|central java|ID|110.41|-7.14|171|W|,Union|NJ|US|-74.26|40.7|56|N|,Union City|CA|US|-122.02|37.6|74|N|,Union City|NJ|US|-74.02|40.78|69|N|east cost cities,Universal City|CA|US|-118.35|34.14|105|N|,University|FL|US|-82.44|28.07|41|N|,University City|MO|US|-90.31|38.66|35|N|,University Heights|SK|CA|-106.58|52.14|51|N|,University Heights|NY|US|-73.91|40.86|27|N|,University of Texas|TX|US|-97.74|30.29|53|N|,University Park|FL|US|-80.37|25.75|26|N|,University Place|WA|US|-122.55|47.24|32|N|,Unnao|uttar pradesh|IN|80.49|26.55|161|W|,Upland|CA|US|-117.65|34.1|76|N|,Upper Alton|IL|US|-90.15|38.91|29|N|,Upper Arlington|OH|US|-83.06|39.99|34|N|,Upper West Side|NY|US|-73.98|40.79|226|NW|,Uppsala|uppsala|SE|17.64|59.86|177|W|upsala,Uptown|IL|US|-87.65|41.97|55|N|,Urayasu|chiba|JP|139.9|35.66|171|W|,Urbana|IL|US|-88.21|40.11|42|N|,Urbandale|IA|US|-93.71|41.63|44|N|,Urdaneta|ilocos|PH|120.57|15.98|145|W|kota urdaneta;urdaneta de pangasinan,Urganch|xorazm region|UZ|60.63|41.55|145|W|ourguentch;urgench;urgentj;urgenc,Uriangato|MX11|MX|-101.18|20.14|51|N|,Ursynow|mazovia|PL|21.05|52.15|149|W|,Uruapan|MX16|MX|-102.06|19.42|299|NW|uruapan del progreso,Usak|usak|TR|29.41|38.67|369|W|,Usera|madrid|ES|-3.7|40.39|141|W|,Ussuriysk|primorye|RU|131.96|43.8|157|W|oessoeriejsk;ussurijsk;ussuryjsk,Ust-Kamenogorsk|east kazakhstan|KZ|82.61|49.97|319|W|ust kamienogorsk;oskemen,Utica|NY|US|-75.23|43.1|61|N|,Utrecht|utrecht|NL|5.12|52.09|376|W|utreque,Utsunomiya|tochigi|JP|139.88|36.57|518|W|ucunomija,Uvira|south kivu|CD|29.14|-3.4|407|W|,Uyo|akwa ibom state|NG|7.93|5.05|436|W|,Vacaville|CA|US|-121.99|38.36|96|N|,Vadodara|gujarat|IN|73.21|22.3|1822|W|,Val-d'Or|QC|CA|-77.8|48.1|25|N|,Val-des-Arbres|QC|CA|-73.68|45.6|40|N|,Valdivia|los rios region|CL|-73.25|-39.81|133|W|,Valdosta|GA|US|-83.28|30.83|55|N|,Valencia|carabobo|VE|-68|10.16|1619|W|,Valencia|valencia|ES|-0.38|39.47|824|W|valence;valencie;valensiya;valenza;walencja,Valencia|CA|US|-118.61|34.44|148|NW|,Valente Diaz|MX30|MX|-96.22|19.16|25|N|,Valenzuela|national capital region|PH|120.97|14.7|725|W|,Valera|trujillo|VE|-70.6|9.32|244|W|,Valinhos|sao paulo|BR|-47|-22.97|132|W|,Valladolid|castille and leon|ES|-4.72|41.66|300|W|pincia;pucela,Valladolid|MX31|MX|-88.2|20.69|48|N|,Valle de Bravo|MX15|MX|-100.13|19.2|25|N|,Valle de La Pascua|guarico|VE|-66.01|9.22|153|W|,Valle de Santiago|MX11|MX|-101.19|20.39|68|N|,Valle Hermoso|MX28|MX|-97.81|25.67|48|N|,Valledupar|cesar department|CO|-73.25|10.47|490|W|,Vallejo|CA|US|-122.26|38.1|121|N|,Valley Glen|CA|US|-118.42|34.19|60|N|,Valley Stream|NY|US|-73.71|40.66|37|N|,Valparaiso|valparaiso|CL|-71.63|-33.04|282|W|,Valparaiso|IN|US|-87.06|41.47|32|N|,Valparaiso de Goias|goias|BR|-47.98|-16.07|218|W|,Valrico|FL|US|-82.24|27.94|35|N|,Valsad|gujarat|IN|72.93|20.61|139|W|,Van|van|TR|43.38|38.49|525|W|,Van Nuys|CA|US|-118.45|34.19|136|NW|,Vancouver|BC|CA|-123.12|49.25|662|NW|vancover,Vancouver|WA|US|-122.66|45.64|196|NW|,Vanderbijlpark|gauteng|ZA|27.84|-26.71|246|W|,Vantaa|uusimaa|FI|25.04|60.29|252|W|vanda,Vapi|gujarat|IN|72.9|20.37|163|W|,Varamin|tehran|IR|51.65|35.32|225|W|,Varanasi|uttar pradesh|IN|83.01|25.32|1164|W|benares;kashi;waranasi,Varginha|minas gerais|BR|-45.43|-21.55|136|W|,Varna|varna|BG|27.91|43.22|318|W|warna,Varzea Grande|mato grosso|BR|-56.13|-15.65|300|W|,Vasyl'evsky Ostrov|st petersburg|RU|30.25|59.94|203|W|vasilinsaari,Vaudreuil-Dorion|QC|CA|-74.03|45.4|25|N|,Vaughan|ON|CA|-79.5|43.84|323|NW|,Velikiy Novgorod|novgorod oblast|RU|31.27|58.52|222|W|velikij novgorod;novgorod;nowogrod wielki;veliki novgorod;veliky novgorod;weliki nowgorod,Vellore|tamil nadu|IN|79.13|12.92|484|W|velur,Venice|CA|US|-118.46|33.99|40|N|venice beach,Ventura|CA|US|-119.29|34.28|96|N|,Venustiano Carranza|MX09|MX|-99.1|19.44|430|NW|,Veracruz|MX30|MX|-96.14|19.18|428|NW|veracruz llave,Veraval|gujarat|IN|70.37|20.91|171|W|,Verdun|QC|CA|-73.57|45.46|69|N|,Vereeniging|gauteng|ZA|27.93|-26.67|474|W|,Verhunskyi|luhansk|UA|39.37|48.59|185|W|verhunskyi rayon;zhovtnevyi;zhovtnevyi rayon,Vermont Square|CA|US|-118.3|34|47|N|,Vernon|BC|CA|-119.27|50.27|40|N|,Vernon Hills|IL|US|-87.98|42.22|26|N|,Verona|veneto|IT|10.99|45.44|258|W|verone;werona,Vespasiano|minas gerais|BR|-43.92|-19.69|138|W|,Vestal|NY|US|-76.05|42.09|28|N|,Vestavia Hills|AL|US|-86.79|33.45|34|N|,Viamao|rio grande do sul|BR|-51.02|-30.08|231|W|,Viana|luanda|AO|13.37|-8.91|865|W|,Victor Rosales|MX32|MX|-102.7|22.95|32|N|,Victoria|central and western|HK|114.14|22.29|956|W|,Victoria|BC|CA|-123.35|48.44|289|NW|,Victoria|TX|US|-97|28.81|67|N|,Victoria de Durango|MX10|MX|-104.66|24.02|518|NW|durango,Victoria-Downtown|BC|CA|-123.36|48.43|46|N|downtown victoria,Victoria-Fraserview|BC|CA|-123.07|49.22|31|N|,Victoriaville|QC|CA|-71.97|46.05|34|N|,Victorville|CA|US|-117.29|34.54|122|N|,Vidisha|madhya pradesh|IN|77.81|23.53|155|W|vidisa,Vienna|state of vienna|AT|16.37|48.21|1691|W|viena;viyana;wien;vienne;vien;viden;wenen;wieden;bec,Vientiane|vientiane prefecture|LA|102.6|17.97|840|W|vienciana;vientian;wientian,Viet Tri|phu tho|VN|105.4|21.32|415|W|,Viet Yen|bac ninh|VN|106.13|21.27|205|W|distretto di viet yen,Vigo|galicia|ES|-8.72|42.23|293|W|,Vijayapura|karnataka|IN|75.72|16.82|327|W|bidzapur;bijapur;vijapura,Vijayawada|andhra pradesh|IN|80.65|16.51|1143|W|vidzajavada;widzajawada;bejawada,Vila Andrade|sao paulo|BR|-46.73|-23.63|168|W|,Vila Curuca|sao paulo|BR|-46.42|-23.51|140|W|,Vila Flor|luanda|AO|13.31|-8.98|256|W|,Vila Jacui|sao paulo|BR|-46.46|-23.5|134|W|,Vila Velha|espirito santo|BR|-40.29|-20.33|394|W|,Villa Canales|guatemala|GT|-90.53|14.48|155|W|,Villa Mercedes|biobio|CL|-71.98|-37.4|131|W|,Villa Nueva|guatemala|GT|-90.59|14.53|618|W|,Villa Vicente Guerrero|MX29|MX|-98.17|19.12|60|N|,Villaflores|MX05|MX|-93.27|16.23|37|N|,Villagran|MX11|MX|-101|20.51|27|N|,Villahermosa|MX27|MX|-92.94|17.99|353|NW|villa hermosa,Villavicencio|meta department|CO|-73.63|4.13|321|W|,Ville-Emard|QC|CA|-73.6|45.45|30|N|,Ville-Marie|QC|CA|-73.57|45.5|104|N|,Villeray-Saint-Michel-Parc-Extension|QC|CA|-73.61|45.56|144|NW|,Villeurbanne|rhone alpes|FR|4.88|45.77|131|W|,Vilnius|vilnius|LT|25.28|54.69|542|W|vilna;vilnus;wilno;wilna,Vina del Mar|valparaiso|CL|-71.55|-33.02|334|W|,Vineland|NJ|US|-75.03|39.49|60|N|,Vinh|nghe an province|VN|105.69|18.67|790|W|,Vinh Chau|can tho city|VN|105.98|9.32|183|W|,Vinh Long|vinh long|VN|105.97|10.25|137|W|,Vinnytsya|vinnytsia|UA|28.47|49.23|430|W|vinnycja;vinniza;vinnytsia;winnica;winnyzja,Viransehir|sanliurfa|TR|39.76|37.22|154|W|,Virar|maharashtra|IN|72.81|19.46|1222|W|,Virginia Beach|VA|US|-75.98|36.85|454|NW|virginian bch,Visakhapatnam|andhra pradesh|IN|83.2|17.68|1063|W|vishakhapatnam;vizag,Visalia|CA|US|-119.29|36.33|130|NW|,Vista|CA|US|-117.24|33.2|100|N|,Vitebsk|vitebsk|BY|30.2|55.19|358|W|wizebsk;vicebsk;vitsebsk;vitsyebsk;witebsk,Vitoria|espirito santo|BR|-40.34|-20.32|312|W|,Vitoria da Conquista|bahia|BR|-40.84|-14.87|396|W|,Vitoria de Santo Antao|pernambuco|BR|-35.29|-8.12|134|W|,Vizianagaram|andhra pradesh|IN|83.41|18.12|228|W|,Vladikavkaz|north ossetia alania|RU|44.67|43.04|306|W|vladicaucaso;wladikawkas;wladykaukaz,Vladimir|vladimir oblast|RU|40.4|56.14|357|W|wladimir;wladymir;wlodzimierz,Vladivostok|primorye|RU|131.87|43.11|604|W|vladyvostok;wladiwostok;wladywostok,Volgodonsk|rostov|RU|42.15|47.51|167|W|wolgodonsk,Volgograd|volgograd oblast|RU|44.5|48.71|1013|W|volgogrado;wolgograd;estalingrado;stalingrad;stalingrado;tsaritsyn;zarizyn,Vologda|vologda oblast|RU|39.88|59.22|312|W|wologda,Volta Redonda|rio de janeiro|BR|-44.1|-22.52|279|W|v redonda,Volzhsky|volgograd oblast|RU|44.78|48.79|323|W|volzjskij;volzski;wolschski,Voronezh|voronezh oblast|RU|39.19|51.67|1047|W|voronej;voronezj;voronez;woronesch;woronez,Votorantim|sao paulo|BR|-47.44|-23.55|133|W|,Vryheid|kwazulu natal|ZA|30.79|-27.77|150|W|,Vung Tau|ho chi minh city hcmc|VN|107.08|10.35|464|W|cap saint jacques;cape saint james;saint james;st james;ville du cap,Vyhurivshchyna-Troyeshchyna|kyiv city|UA|30.6|50.51|240|W|,Vykhino-Zhulebino|moscow|RU|37.81|55.7|216|W|,Waco|TX|US|-97.15|31.55|132|NW|,Wad Medani|al jazirah|SD|33.52|14.4|332|W|vad medeni;wad madani,Wadi as Sir|amman|JO|35.82|31.95|181|W|wadi al seer,Wafangdian|liaoning|CN|122.01|39.62|454|W|,Wah Cantt|punjab|PK|72.75|33.77|400|W|,Waiau-Pacific Palisades|HI|US|-157.95|21.4|47|N|,Waipahu|HI|US|-158.01|21.39|38|N|,Wakayama|wakayama|JP|135.17|34.23|356|W|,Wake Forest|NC|US|-78.51|35.98|38|N|,Wakefield|NY|US|-73.85|40.9|52|N|,Waldorf|MD|US|-76.94|38.62|67|N|,Walla Walla|WA|US|-118.34|46.06|32|N|,Walnut|CA|US|-117.87|34.02|30|N|,Walnut Creek|CA|US|-122.06|37.91|68|N|,Walnut Grove|BC|CA|-122.64|49.16|25|N|,Walsall|england|GB|-1.98|52.59|172|W|,Waltham|MA|US|-71.24|42.38|63|N|,Wan Chai|wan chai|HK|114.17|22.28|166|W|wanchai,Wandsbek|hamburg|DE|10.08|53.58|411|W|,Wangsa Maju|kuala lumpur|MY|101.74|3.2|215|W|,Wanning|hainan|CN|110.38|18.8|545|W|,Wanxian|chongqing|CN|108.37|30.82|859|W|wan hsien;wanshien,Wanzhou|chongqing|CN|108.4|30.76|1545|W|,Warangal|telangana|IN|79.58|18|704|W|,Warder|somali|ET|45.34|6.97|450|W|,Warner Robins|GA|US|-83.63|32.62|73|N|,Warren|MI|US|-83.01|42.49|134|NW|,Warren|OH|US|-80.82|41.24|40|N|,Warri|delta|NG|5.75|5.52|910|W|,Warrington|england|GB|-2.58|53.39|172|W|,Warsaw|mazovia|PL|21.01|52.23|1702|W|warszawa;varsavia;varsova;varsovia;varsovie;varsava;warsawa;warschau,Warwick|RI|US|-71.42|41.7|81|N|,Wasco|CA|US|-119.34|35.59|26|N|,Washington|DC|US|-77.04|38.9|689|NW|washington d c;district of columbia;washington dc;waszyngton;territory of columbia,Washington Heights|NY|US|-73.94|40.85|152|NW|,Watampone|south sulawesi|ID|120.33|-4.54|149|W|,Waterbury|CT|US|-73.05|41.56|108|N|,Waterford|MI|US|-83.41|42.69|75|N|,Waterfront Communities-The Island|ON|CA|-79.38|43.63|65|N|,Waterloo|ON|CA|-80.52|43.47|104|N|,Waterloo|IA|US|-92.34|42.49|68|N|,Watertown|MA|US|-71.18|42.37|31|N|,Watertown|NY|US|-75.91|43.97|26|N|,Watsonville|CA|US|-121.76|36.91|53|N|,Watthana|bangkok|TH|100.59|13.73|171|W|vadhana,Waukegan|IL|US|-87.84|42.36|88|N|,Waukesha|WI|US|-88.23|43.01|71|N|,Wausau|WI|US|-89.63|44.96|39|N|,Wauwatosa|WI|US|-88.01|43.05|47|N|,Waxahachie|TX|US|-96.85|32.39|33|N|,Wayne|NJ|US|-74.28|40.93|57|N|,Wayne|PA|US|-75.39|40.04|30|N|,Wazirabad|punjab|PK|74.12|32.44|152|W|,Weatherford|TX|US|-97.8|32.76|28|N|,Weifang|shandong|CN|119.1|36.71|2044|W|wej fang,Weihai|shandong|CN|122.11|37.51|844|W|wej chaj,Weinan|shaanxi|CN|109.51|34.5|1199|W|wej nan,Welkom|free state|ZA|26.74|-27.98|431|W|,Welland|ON|CA|-79.25|42.98|52|N|,Wellesley|MA|US|-71.29|42.3|27|N|,Wellington|wellington region|NZ|174.78|-41.29|381|W|,Wellington|FL|US|-80.24|26.66|62|N|,Wenatchee|WA|US|-120.31|47.42|33|N|,Wenchang|hainan|CN|110.8|19.55|560|W|van xuong,Wenshan City|yunnan|CN|104.25|23.36|450|W|,Wentzville|MO|US|-90.85|38.81|35|N|,Wenzhou|zhejiang|CN|120.67|28|2650|W|wen cou;on chau;yongjia,Weru|west java|ID|108.5|-6.71|139|W|,Weslaco|TX|US|-97.99|26.16|39|N|,Wesley Chapel|FL|US|-82.33|28.24|44|N|,West Albany|NY|US|-73.78|42.68|93|N|,West Allis|WI|US|-88.01|43.02|60|N|,West Babylon|NY|US|-73.35|40.72|43|N|,West Bend|WI|US|-88.18|43.43|31|N|,West Bloomfield Township|MI|US|-83.38|42.57|64|N|west bloomfield;xa west bloomfield,West Chicago|IL|US|-88.2|41.88|27|N|,West Coon Rapids|MN|US|-93.35|45.16|62|N|,West Covina|CA|US|-117.94|34.07|108|N|,West Des Moines|IA|US|-93.71|41.58|64|N|,West Elkridge|MD|US|-76.73|39.21|28|N|,West End|BC|CA|-123.13|49.28|47|N|vancouver west end,West Englewood|IL|US|-87.67|41.78|32|N|,West Falls Church|VA|US|-77.19|38.86|29|N|,West Fargo|ND|US|-96.9|46.87|33|N|tay fargo,West Gulfport|MS|US|-89.09|30.4|71|N|,West Hartford|CT|US|-72.74|41.76|63|N|,West Haven|CT|US|-72.95|41.27|54|N|,West Hill|ON|CA|-79.18|43.77|27|N|,West Hills|CA|US|-118.64|34.2|41|N|,West Hollywood|FL|US|-80.18|26.02|60|N|,West Hollywood|CA|US|-118.36|34.09|36|N|tay hollywood,West Humber-Clairville|ON|CA|-79.6|43.72|33|N|,West Islip|NY|US|-73.31|40.71|28|N|,West Jerusalem|jerusalem|IL|35.22|31.78|400|W|vest jerusalem;vestjerusalem;vastra jerusalem;westjerusalem,West Jordan|UT|US|-111.94|40.61|111|N|,West Kelowna|BC|CA|-119.58|49.86|28|N|district of west kelowna,West Lafayette|IN|US|-86.91|40.43|45|N|,West Lake Sammamish|WA|US|-122.1|47.58|33|N|,West Lawn|IL|US|-87.72|41.77|32|N|,West Linn|OR|US|-122.61|45.37|26|N|,West Little River|FL|US|-80.24|25.86|34|N|,West Lynchburg|VA|US|-79.18|37.4|65|N|,West Memphis|AR|US|-90.18|35.15|25|N|,West Milford|NJ|US|-74.37|41.13|26|N|,West New York|NJ|US|-74.01|40.79|53|N|,West Oak Lane|PA|US|-75.17|40.07|38|N|,West Orange|NJ|US|-74.24|40.8|48|N|,West Palm Beach|FL|US|-80.05|26.72|120|N|,West Raleigh|NC|US|-78.66|35.79|338|NW|,West Ridge|IL|US|-87.69|42|72|N|,West Roxbury|MA|US|-71.15|42.28|30|N|,West Sacramento|CA|US|-121.53|38.58|52|N|,West Scarborough|ME|US|-70.39|43.57|27|N|,West Seneca|NY|US|-78.8|42.85|44|N|,West Springfield|MA|US|-72.62|42.11|27|N|,West Torrington|CT|US|-73.14|41.82|36|N|,West Town|IL|US|-87.67|41.89|86|N|,West Valley City|UT|US|-112|40.69|136|NW|west valley,West Vancouver|BC|CA|-123.16|49.33|45|N|vancouver barat,West Village|NY|US|-74.01|40.73|32|N|,West Warwick|RI|US|-71.52|41.7|30|N|,West Whittier-Los Nietos|CA|US|-118.07|33.98|25|N|,Westchester|FL|US|-80.33|25.75|29|N|,Westerville|OH|US|-82.93|40.13|38|N|,Westfield|MA|US|-72.75|42.13|41|N|westfield centre,Westfield|IN|US|-86.13|40.04|36|N|,Westfield|NJ|US|-74.35|40.66|30|N|,Westlake|OH|US|-81.92|41.46|32|N|,Westland|MI|US|-83.4|42.32|82|N|,Westminster|CO|US|-105.04|39.84|116|N|,Westminster|CA|US|-118.01|33.76|92|N|,Westminster-Branson|ON|CA|-79.45|43.78|26|N|,Westmont|CA|US|-118.3|33.94|31|N|,Weston|FL|US|-80.4|26.1|69|N|,Westonaria|gauteng|ZA|27.65|-26.32|156|W|,Westport|CT|US|-73.36|41.14|26|N|,Wethersfield|CT|US|-72.65|41.71|26|N|,Wexford/Maryvale|ON|CA|-79.3|43.75|27|N|,Weymouth|MA|US|-70.94|42.22|54|N|,Whalley|BC|CA|-122.87|49.18|102|N|,Wharton|PA|US|-75.16|39.93|49|N|,Wheat Ridge|CO|US|-105.08|39.77|31|N|wheatridge,Wheaton|IL|US|-88.11|41.87|53|N|,Wheaton|MD|US|-77.06|39.04|48|N|,Wheeling|IL|US|-87.93|42.14|38|N|,Wheeling|WV|US|-80.72|40.06|27|N|,Whitby|ON|CA|-78.93|43.88|138|NW|,Whitchurch-Stouffville|ON|CA|-79.32|44|49|N|,White Bear Lake|MN|US|-93.01|45.08|25|N|,White Plains|NY|US|-73.76|41.03|58|N|,Whitehorse|YT|CA|-135.05|60.72|28|N|,Whitestone|NY|US|-73.82|40.79|36|N|,Whitman|PA|US|-75.16|39.92|49|N|,Whitney|NV|US|-115.04|36.1|38|N|,Whittier|CA|US|-118.03|33.98|87|N|,Wichita|KS|US|-97.34|37.69|396|NW|,Wichita Falls|TX|US|-98.49|33.91|104|N|,Wiesbaden|hesse|DE|8.24|50.09|288|W|,Wigan|england|GB|-2.64|53.54|175|W|,Wildomar|CA|US|-117.28|33.6|35|N|,Wildwood|MO|US|-90.66|38.58|35|N|,Wilkes-Barre|PA|US|-75.88|41.25|40|N|,Williamsburg|NY|US|-73.95|40.71|33|N|,Williamsport|PA|US|-77|41.24|29|N|,Willingboro|NJ|US|-74.87|40.03|31|N|,Williston|ND|US|-103.62|48.15|26|N|,Willoughby|BC|CA|-122.68|49.13|31|N|,Willowbrook|CA|US|-118.26|33.92|35|N|,Willowdale|ON|CA|-79.4|43.77|79|N|,Willowdale East|ON|CA|-79.4|43.77|50|N|,Wilmette|IL|US|-87.72|42.07|27|N|,Wilmington|NC|US|-77.95|34.24|115|N|,Wilmington|DE|US|-75.55|39.75|70|N|,Wilmington|CA|US|-118.26|33.78|52|N|,Wilson|NC|US|-77.92|35.72|49|N|,Winchester|NV|US|-115.12|36.13|27|N|,Winchester|VA|US|-78.16|39.19|27|N|,Windhoek|khomas region|NA|17.08|-22.56|386|W|vinduque;windhuk,Windsor|ON|CA|-83.02|42.3|229|NW|,Windsor|CO|US|-104.9|40.48|32|N|,Windsor|CT|US|-72.64|41.85|28|N|,Windsor|CA|US|-122.82|38.55|27|N|,Winejok|northern bahr al ghazal|SS|27.57|9.01|300|W|,Winnetka|CA|US|-118.57|34.21|47|N|,Winnipeg|MB|CA|-97.15|49.88|749|NW|vinnipeg;winnipeg city,Winona|MN|US|-91.64|44.05|27|N|,Winston-Salem|NC|US|-80.24|36.1|241|NW|,Winter Garden|FL|US|-81.59|28.57|40|N|,Winter Haven|FL|US|-81.73|28.02|37|N|,Winter Park|FL|US|-81.34|28.6|29|N|,Winter Springs|FL|US|-81.31|28.7|34|N|,Woburn|ON|CA|-79.23|43.77|53|N|,Woburn|MA|US|-71.15|42.48|39|N|,Wola|mazovia|PL|20.96|52.23|140|W|,Wollongong|new south wales|AU|150.89|-34.42|280|W|,Wolverhampton|england|GB|-2.12|52.59|263|W|,Wong Tai Sin|wong tai sin district|HK|114.18|22.35|425|W|,Wonju|gangwon do|KR|127.95|37.35|332|W|,Wonsan|kangwon do|KP|127.44|39.15|329|W|gensan,Woodburn|OR|US|-122.86|45.14|25|N|,Woodbury|MN|US|-92.96|44.92|67|N|,Woodhaven|NY|US|-73.86|40.69|36|N|,Woodland|CA|US|-121.77|38.68|58|N|,Woodland Hills|CA|US|-118.61|34.17|70|N|,Woodlands||SG|103.79|1.44|254|W|,Woodlawn|MD|US|-76.73|39.32|37|N|,Woodridge|IL|US|-88.05|41.75|33|N|,Woodside|NY|US|-73.91|40.75|41|N|,Woodstock|ON|CA|-80.75|43.13|40|N|,Woodstock|GA|US|-84.52|34.1|29|N|,Woodstock|IL|US|-88.45|42.31|25|N|,Woonsocket|RI|US|-71.51|42|41|N|,Wooster|OH|US|-81.94|40.81|26|N|,Worcester|MA|US|-71.8|42.26|206|NW|,Wroclaw|lower silesia|PL|17.03|51.1|672|W|breslau;breslavia;vratislav;bresslau;vratislavie,Wuerzburg|bavaria|DE|9.95|49.79|133|W|wurzburg;wurtzbourg;wurtzburgo;wurzburgo,Wugang|hunan|CN|110.63|26.73|132|W|,Wuhai|inner mongolia|CN|106.82|39.68|218|W|wu chaj,Wuhan|hubei|CN|114.27|30.58|10392|W|vuhan;vu han;wu chan,Wuhu|anhui|CN|118.43|31.35|1598|W|wu chu,Wujiaqu|xinjiang|CN|87.52|44.16|154|W|,Wuppertal|north rhine westphalia|DE|7.15|51.26|360|W|,Wuwei|gansu|CN|102.63|37.93|1010|W|,Wuxi|jiangsu|CN|120.29|31.57|4396|W|vo tich;wu si,Wuxue|hubei|CN|115.55|29.85|220|W|,Wuyishan|fujian|CN|118.03|27.76|137|W|ciudad de wuyishan;vu di son;wuyishan city,Wuzhong|ningxia|CN|106.2|37.99|7202|W|,Wuzhou|guangxi|CN|111.29|23.48|761|W|ngo chau;wu cou,Wyandotte|MI|US|-83.15|42.21|25|N|,Wylie|TX|US|-96.54|33.02|46|N|,Wyoming|MI|US|-85.71|42.91|75|N|,Xai-Xai|gaza province|MZ|33.64|-25.05|154|W|,Xalapa de Enriquez|MX30|MX|-96.92|19.53|424|NW|xalapa;jalapa;jalapa enriques;jalapa enriquez,Xalisco|MX18|MX|-104.9|21.44|35|N|jalisco,Xenia|OH|US|-83.93|39.68|25|N|,Xi'an|shaanxi|CN|108.93|34.26|9600|W|tay an;xian,Xiamen|fujian|CN|118.08|24.48|4617|W|amoy;sia men,Xiangtan|hunan|CN|112.9|27.85|959|W|siang tchan;tuong dam,Xiangyang|hubei|CN|112.14|32.04|1294|W|siang jang;tuong duong;xiangfan,Xianning|hubei|CN|114.32|29.84|512|W|,Xiantao|hubei|CN|113.44|30.37|239|W|sientaochen,Xianyang|shaanxi|CN|108.7|34.34|1034|W|ham duong;sien jang,Xiaogan|hubei|CN|113.92|30.93|908|W|siao kan,Xiayang|shanghai|CN|121.12|31.15|137|W|,Xichang|sichuan|CN|102.26|27.9|481|W|,Xico|MX15|MX|-98.95|19.27|384|NW|san miguel xico,Xicotepec de Juarez|MX21|MX|-97.96|20.28|39|N|,Xilinhot|inner mongolia|CN|116.07|43.94|349|W|,Xindi|hubei|CN|113.47|29.82|175|W|,Xingning|guangdong|CN|115.72|24.15|274|W|,Xingtai|hebei|CN|114.49|37.06|798|W|hinh dai;sing tchaj,Xingyi|guizhou|CN|104.91|25.1|322|W|,Xining|qinghai|CN|101.76|36.63|1677|W|si ning;sining;tay ninh,Xinji|hebei|CN|115.22|37.93|145|W|,Xinqiao|shanghai|CN|121.31|31.07|155|W|,Xintai|shandong|CN|117.75|35.9|222|W|,Xinxiang|henan|CN|113.8|35.19|1047|W|,Xinyang|henan|CN|114.07|32.12|1230|W|,Xinyi|jiangsu|CN|118.35|34.38|300|W|,Xinyu|jiangxi|CN|114.93|27.8|839|W|sin ju;tan du,Xinyuan|xinjiang|CN|83.25|43.43|282|W|,Xinzhou|shanxi|CN|112.73|38.41|544|W|han chau;sin cou,Xiuying|hainan|CN|110.29|20|290|W|,Xizhi|taipei|TW|121.66|25.07|204|W|hsichih;xizhi district,Xochimilco|MX09|MX|-99.1|19.25|442|NW|delegacion xochimilco,Xuan Loc|dong nai|VN|107.23|10.93|253|W|,Xuancheng|anhui|CN|118.76|30.95|774|W|,Xuanhua|hebei|CN|115.06|40.61|373|W|,Xuchang|henan|CN|113.86|34.03|1265|W|,Xuhui|shanghai|CN|121.45|31.2|1109|W|,Xuzhou|jiangsu|CN|117.28|34.2|1253|W|pengcheng,Ya'an|sichuan|CN|103|29.99|612|W|,Yachiyo|chiba|JP|140.12|35.74|199|W|,Yaizu|shizuoka|JP|138.32|34.87|139|W|,Yakima|WA|US|-120.51|46.6|93|N|,Yakutsk|sakha|RU|129.72|62.03|235|W|iakoutsk;jakutsk,Yamagata|yamagata|JP|140.37|38.23|248|W|,Yamaguchi|yamaguchi|JP|131.47|34.18|193|W|jamaguci,Yamato|kanagawa|JP|139.45|35.47|242|W|,Yamoussoukro|lacs district|CI|-5.28|6.82|275|W|jamusukro;yamusukro,Yamuna Nagar|haryana|IN|77.28|30.13|217|W|yamunanagar,Yan'an|shaanxi|CN|109.49|36.6|475|W|,Yanbu|medina region|SA|38.06|24.09|200|W|yambo;yanbu al bahr;yenbo,Yancheng|jiangsu|CN|120.16|33.36|1615|W|diem thanh;jen ccheng,Yangcheng|chongqing|CN|106.26|30|186|W|,Yangchun|guangdong|CN|111.78|22.17|153|W|,Yanghang|shanghai|CN|121.44|31.37|204|W|,Yangjiang|guangdong|CN|111.96|21.86|1292|W|duong giang;jang tiang,Yangju|gyeonggi do|KR|127.06|37.83|179|W|,Yangon|yangon|MM|96.16|16.81|4477|W|rangoon;rangoun;rangum;rangun;yankoun,Yangpu|shanghai|CN|121.52|31.26|1210|W|,Yangquan|shanxi|CN|113.56|37.86|731|W|jang cchuan,Yangsan|gyeongsangnam do|KR|129.03|35.34|358|W|jangsan,Yangshuo|guangxi|CN|110.49|24.78|300|W|,Yangzhou|jiangsu|CN|119.44|32.4|1584|W|duong chau;jang cou,Yanji|jilin|CN|129.5|42.89|326|W|dien cat,Yantai|shandong|CN|121.44|37.48|2227|W|jen tchaj;yen dai;chefoo,Yanzhou|shandong|CN|116.83|35.55|254|W|,Yao|osaka|JP|135.6|34.62|273|W|,Yaounde|centre|CM|11.52|3.87|1299|W|jaunde;yaunde,Yarmouth|MA|US|-70.23|41.71|25|N|,Yaroslavl|yaroslavl oblast|RU|39.87|57.63|608|W|jaroslawl;iaroslavl;jaroslavl;jaroslaw,Yasenevo|moscow|RU|37.52|55.61|180|W|,Yautepec|MX17|MX|-99.07|18.88|105|N|yautepec de zaragoza,Yawnghwe|shan state|MM|96.93|20.66|188|W|,Yazd|yazd province|IR|54.37|31.9|477|W|jasd;jazd,Yei|central equatoria|SS|30.68|4.09|260|W|,Yekaterinburg|sverdlovsk oblast|RU|60.62|56.86|1495|W|jekaterinburg;ekaterimburgo;ekaterinbourg;ekaterinburg;ekaterinburgo;jekaterinenburg;jekaterynburg,Yenagoa|bayelsa state|NG|6.27|4.93|365|W|,Yeosu|jeollanam do|KR|127.66|34.76|268|W|josu,Yerevan|yerevan|AM|44.51|40.18|1144|W|erevan;erivan;erywan;jerevan;jerewan,Yibin|sichuan|CN|104.64|28.76|836|W|nghi tan,Yichang|hubei|CN|111.28|30.71|1350|W|i cchang;nghi xuong,Yichun|jiangxi|CN|114.4|27.83|1045|W|i cchun;nghi xuan,Yichun|heilongjiang|CN|128.88|47.72|155|W|i cchun;y xuan,Yinchuan|ningxia|CN|106.27|38.47|1487|W|jin cchuan;ngan xuyen,Yingkou|liaoning|CN|122.23|40.66|591|W|newchwang;eiko,Yingtan|jiangxi|CN|117|28.23|214|W|jing tchan;ung dam,Yintai|shaanxi|CN|109.1|35.12|217|W|,Yishun New Town||SG|103.83|1.43|228|W|,Yiwu|zhejiang|CN|120.08|29.32|1481|W|,Yixing|jiangsu|CN|119.82|31.36|1285|W|,Yizhou|guangxi|CN|108.67|24.5|155|W|,Yogyakarta|yogyakarta|ID|110.36|-7.8|375|W|di yogyakarta;jogjakarta;kota yogyakarta,Yokkaichi|mie|JP|136.62|34.97|305|W|,Yokohama|kanagawa|JP|139.65|35.43|3777|W|jokohama,Yokosuka|kanagawa|JP|139.67|35.28|409|W|jokosuka,Yola|adamawa|NG|12.48|9.21|460|W|,Yonago|tottori|JP|133.33|35.43|148|W|,Yong'an|chongqing|CN|109.46|31.02|144|W|fengjie;feng chieh;kweichow,Yongchuan|chongqing|CN|105.89|29.35|192|W|,Yongji|shanxi|CN|110.44|34.87|452|W|,Yongkang|taiwan|TW|120.26|23.02|233|W|vinh khang;yongkang district,Yongzhou|hunan|CN|111.61|26.42|1020|W|lingling,Yonkers|NY|US|-73.9|40.93|201|NW|,Yopal|casanare department|CO|-72.39|5.34|168|W|,Yorba Linda|CA|US|-117.81|33.89|67|N|,York|england|GB|-1.08|53.96|156|W|,York|PA|US|-76.73|39.96|43|N|,York University Heights|ON|CA|-79.49|43.77|27|N|,Yoshkar-Ola|mariy el republic|RU|47.89|56.64|268|W|iochkar ola;joschkar ola;josjkar ola;joszkar ola;joskar ola,Youngstown|OH|US|-80.65|41.1|64|N|,Yuba City|CA|US|-121.62|39.14|66|N|kota yuba,Yucaipa|CA|US|-117.04|34.03|53|N|,Yuci|shanxi|CN|112.73|37.68|235|W|,Yuen Long|yuen long|HK|114.03|22.45|200|W|,Yuen Long Kau Hui|yuen long|HK|114.03|22.45|169|W|,Yuen Long San Hui|yuen long|HK|114.03|22.43|200|W|,Yuepu|shanghai|CN|121.42|31.43|139|W|,Yueyang|hunan|CN|113.09|29.37|991|W|jue jang,Yukon|OK|US|-97.76|35.51|25|N|,Yulin|guangxi|CN|110.15|22.63|1056|W|ju lin,Yuma|AZ|US|-114.62|32.73|95|N|,Yuncheng|shanxi|CN|110.99|35.02|680|W|jun ccheng,Yunfu|guangdong|CN|112.04|22.93|2612|W|jun fu;van phu,Yunlong|jiangsu|CN|117.25|34.25|345|W|,Yunusobod|tashkent|UZ|69.28|41.37|352|W|,Yuriria|MX11|MX|-101.13|20.21|25|N|,Yushu|qinghai|CN|97.01|33|141|W|,Yuzhno-Sakhalinsk|sakhalin oblast|RU|142.74|46.95|198|W|juzjno sakhalinsk;ioujno sakhalinsk;iujno sahalinsk;iujno sakhalinsk;joezjno sachalinsk;juschno sachalinsk;juzjno sachalinsk;juznosachalinsk;juzno sachalinsk;juzno sahalinsk;yujno sahalinsk;yuzhno sajalinsk,Zaanstad|north holland|NL|4.81|52.45|140|W|,Zabrze|silesia|PL|18.79|50.32|192|W|hindenburg,Zacapu|MX16|MX|-101.79|19.82|50|N|,Zacatecas|MX32|MX|-102.58|22.77|129|N|zacatecas city,Zacatelco|MX29|MX|-98.24|19.22|42|N|,Zacatlan|MX21|MX|-97.96|19.94|33|N|,Zagazig|sharqia|EG|31.5|30.59|430|W|,Zagreb|zagreb|HR|15.98|45.81|663|W|zagabria;zagrep;zagrzeb;zahreb;agram,Zahedan|sistan and baluchestan|IR|60.86|29.5|551|W|,Zama|kanagawa|JP|139.39|35.49|132|W|,Zamboanga|zamboanga peninsula|PH|122.07|6.91|1018|W|zamboanga city,Zamora de Hidalgo|MX16|MX|-102.29|19.98|186|NW|zamora,Zanesville|OH|US|-82.01|39.94|25|N|,Zango|luanda|AO|13.38|-9.01|198|W|,Zanjan|zanjan|IR|48.5|36.68|357|W|zandschan,Zanzibar|zanzibar urban west|TZ|39.2|-6.16|709|W|sansibar stadt;zanzibar by,Zaoyang|hubei|CN|112.75|32.13|184|W|,Zaozhuang|shandong|CN|117.55|34.86|899|W|cao cuang,Zapopan|MX14|MX|-103.39|20.72|1476|NW|,Zaporizhzhya|zaporizhzhia|UA|35.12|47.85|710|W|zaporizjzja;zaporizzja;alessandrovia;saporischschja;zaporiggia;zaporijjia;zaporiyia;zaporizhzhia;zaporoye;zaporozhye;zaporoze;zaporozi;alexandrovsk;saporoschje;saporoshje,Zapotlanejo|MX14|MX|-103.07|20.62|32|N|,Zaragoza|aragon|ES|-0.88|41.66|686|W|saragossa;saragosse;saragozza;saragoca;zaragosa,Zaria|kaduna state|NG|7.72|11.11|980|W|,Zarichnyi|sumy|UA|34.81|50.9|150|W|zarichnyi rayon,Zarqa|zarqa|JO|36.09|32.07|792|W|zarka,Zawiya|az zawiyah|LY|12.73|32.75|186|W|,Zelenograd|moscow|RU|37.18|55.98|215|W|selenograd,Zemun|central serbia|RS|20.4|44.85|155|W|semlin,Zenica|federation of b h|BA|17.9|44.2|164|W|,Zeytinburnu|istanbul|TR|28.9|40.99|280|W|,Zhabei|shanghai|CN|121.46|31.26|840|W|,Zhalantun|inner mongolia|CN|122.74|48.01|132|W|,Zhangjiagang|jiangsu|CN|120.54|31.86|1432|W|,Zhangjiajie|hunan|CN|110.48|29.13|441|W|cang tia tie,Zhangjiakou|hebei|CN|114.87|40.78|692|W|cang tia kchou,Zhangye|gansu|CN|100.45|38.93|507|W|cang jie,Zhangzhou|fujian|CN|117.66|24.51|589|W|chuong chau;cang cou,Zhanjiang|guangdong|CN|110.39|21.23|1400|W|,Zhaodong|heilongjiang|CN|125.96|46.05|154|W|,Zhaoqing|guangdong|CN|112.46|23.05|1553|W|cao cching;shiu hing,Zhaotong|yunnan|CN|103.72|27.32|787|W|chieu thong;cao tchung,Zheleznodorozhnyy|moscow oblast|RU|38.02|55.74|141|W|zjeleznodorozjnyj,Zhengding|hebei|CN|114.57|38.15|193|W|,Zhengzhou|henan|CN|113.65|34.76|4253|W|czengczou;cengcou;ceng cou,Zhenjiang|jiangsu|CN|119.46|32.21|950|W|chinkiang,Zhenping|henan|CN|112.23|33.03|181|W|,Zhenzhou|jiangsu|CN|119.17|32.28|176|W|icheng ku,Zhicheng|hubei|CN|111.5|30.3|159|W|chihkiang,Zhongshan|guangdong|CN|113.38|22.52|3841|W|trung son;xiangshan;cung san,Zhongwei|ningxia|CN|105.19|37.51|1174|W|cung wej,Zhoukou|henan|CN|114.63|33.63|505|W|cou kchou,Zhoushan|zhejiang|CN|122.2|29.99|882|W|,Zhu Cheng City|shandong|CN|119.4|36|1000|W|,Zhubei|taiwan|TW|121.01|24.84|212|W|cu pej,Zhucheng|shandong|CN|119.4|35.99|499|W|,Zhuhai|guangdong|CN|113.57|22.28|2207|W|cu chaj,Zhulebino|moscow|RU|37.85|55.7|150|W|,Zhumadian|henan|CN|114.03|32.98|721|W|,Zhuzhou|hunan|CN|113.15|27.83|1129|W|chu chau;cu cou;jianning,Zhytomyr|zhytomyr oblast|UA|28.68|50.26|261|W|jytomyr;jitomir;schytomyr;zjytomyr;zytomierz;zitomir;zytomyr,Zibo|shandong|CN|118.06|36.79|3129|W|c po;truy bac,Zigong|sichuan|CN|104.78|29.34|1262|W|c kung,Ziguinchor|ziguinchor|SN|-16.27|12.57|214|W|,Zinacantepec|MX15|MX|-99.73|19.28|54|N|,Zinder|zinder region|NE|8.99|13.81|318|W|,Zionsville|IN|US|-86.26|39.95|26|N|,Zipaquira|cundinamarca|CO|-74|5.02|130|W|,Zitong|chongqing|CN|105.83|30.18|212|W|,Ziyang|sichuan|CN|104.65|30.12|905|W|,Zlatoust|chelyabinsk|RU|59.65|55.17|191|W|slatoust;zlato oest;zlatooust,Zliten|misratah|LY|14.57|32.47|203|W|zalitan;zlitan,Zoucheng|shandong|CN|116.97|35.4|277|W|trau thanh,Zuerich|zurich|CH|8.55|47.37|415|W|zurich;curych;zurigo;zurique;zurych;zurih,Zuglo|budapest|HU|19.11|47.52|130|W|lerchenfeld,Zumpango|MX15|MX|-99.1|19.8|280|NW|zumpango de ocampo,Zunyi|guizhou|CN|106.91|27.69|2037|W|cun i;tuan nghia";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var RH=Object.freeze({\u00F8:"o",\u0153:"oe",\u00E6:"ae",\u00DF:"ss",\u0142:"l",\u0111:"d",\u00F0:"d",\u00FE:"th",\u0131:"i",\u0127:"h",\u0167:"t",\u014B:"n",\u0138:"k",\u0259:"e",\u01DD:"e",\u0133:"ij",\u0140:"l",\u017F:"s"}),Lie=new RegExp(`[${Object.keys(RH).join("")}]`,"gu");function _H(r){return r.replace(Lie,e=>RH[e]??e)}function vS(r){return r==null?"":_H(String(r).replace(new RegExp("\\p{No}","gu")," ").normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/&/g,"and").replace(/[^\p{L}\p{Nd}]/gu,"")}var Iie=4;function t7(r){return r.length>=Iie}var Ak=class{constructor(r=(e,t)=>e===t){this.same=r}same;map=new Map;add(r,e){let t=vS(r);if(!t7(t))return;let o=this.map.get(t);if(!o){this.map.set(t,{value:e,ambiguous:!1});return}!o.ambiguous&&!this.same(o.value,e)&&(o.ambiguous=!0)}get(r){if(!t7(r))return;let e=this.map.get(r);return e&&!e.ambiguous?e.value:void 0}isAmbiguous(r){return this.map.get(r)?.ambiguous===!0}entries(){return Array.from(this.map.entries())}};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Rie=new RegExp("([\\p{Ll}\\p{Nd}])(\\p{Lu})","gu"),_ie=/[_\-./]+/g,Uie=/[^\p{L}\p{M}\p{N}\x00-\x7F]/gu;function Bie(r){return r?String(r).normalize("NFC").replace(Rie,"$1 $2").replace(_ie," ").replace(Uie," ").toLowerCase().split(/\s+/).filter(e=>e.length>0):[]}function wk(r){return!(r instanceof Date)||isNaN(r.getTime())?null:r.getUTCHours()===0&&r.getUTCMinutes()===0&&r.getUTCSeconds()===0&&r.getUTCMilliseconds()===0?"utc":r.getHours()===0&&r.getMinutes()===0&&r.getSeconds()===0&&r.getMilliseconds()===0?"local":null}function Die(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())),t=r.getFullYear();return t>=0&&t<100&&e.setUTCFullYear(t),e}function Oie(r,e){let t=[];for(let o of r){if(!o||!/date|time/i.test(String(o.dataType??"")))continue;let n=0,i=!0;for(let a of e){let s=a?a[o.name]:void 0;if(s==null||s==="")continue;if(!(s instanceof Date)){i=!1;break}let l=wk(s);if(l===null){i=!1;break}l==="local"&&n++}i&&n>0&&t.push(o.name)}return t}function UH(r,e){let t=Oie(r,e);return t.length===0?{rows:e,columns:t}:{rows:e.map(o=>{if(!o)return o;let n={...o};for(let i of t){let a=n[i];a instanceof Date&&wk(a)==="local"&&(n[i]=Die(a))}return n}),columns:t}}function Fie(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds())),t=r.getFullYear();return t>=0&&t<100&&e.setUTCFullYear(t),e}function Gie(r){let e=!1;for(let t of r)if(!(t==null||t==="")){if(!(t instanceof Date)||isNaN(t.getTime()))return!1;wk(t)===null&&(e=!0)}return e}function Vie(r,e){let t=[];for(let o of r)!o||!/date|time/i.test(String(o.dataType??""))||Gie(e.map(n=>n?n[o.name]:void 0))&&t.push(o.name);return t}function BH(r,e){let t=Vie(r,e);return t.length===0?{rows:e,columns:t}:{rows:e.map(o=>{if(!o)return o;let n={...o};for(let i of t){let a=n[i];a instanceof Date&&(n[i]=Fie(a))}return n}),columns:t}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Hie="AB|CA|Alberta|-113.75|52.18,AK|US|Alaska|-148.32|61.29,AL|US|Alabama|-86.73|33.08,AR|US|Arkansas|-92.85|35.29,AZ|US|Arizona|-111.99|33.32,BC|CA|British Columbia|-122.73|49.27,CA|US|California|-119.21|35.2,CO|US|Colorado|-105|39.63,CT|US|Connecticut|-73.01|41.42,DC|US|District of Columbia|-77.04|38.9,DE|US|Delaware|-75.59|39.57,FL|US|Florida|-81.29|27.53,GA|US|Georgia|-84.02|33.43,HI|US|Hawaii|-157.73|21.26,IA|US|Iowa|-92.79|41.88,ID|US|Idaho|-115.65|44.2,IL|US|Illinois|-88.05|41.67,IN|US|Indiana|-86.27|40.23,KS|US|Kansas|-96|38.59,KY|US|Kentucky|-84.91|38.13,LA|US|Louisiana|-91.28|30.57,MA|US|Massachusetts|-71.28|42.32,MB|CA|Manitoba|-97.3|49.88,MD|US|Maryland|-76.79|39.18,ME|US|Maine|-70.01|43.92,MI|US|Michigan|-83.69|42.56,MN|US|Minnesota|-93.26|44.98,MO|US|Missouri|-92.66|38.73,MS|US|Mississippi|-89.62|32.36,MT|US|Montana|-111.07|46.37,MX01|MX|Aguascalientes|-102.29|21.91,MX02|MX|Baja California|-116.5|32.46,MX03|MX|Baja California Sur|-110.12|23.52,MX04|MX|Campeche|-91.08|19.25,MX05|MX|Chiapas|-92.77|16.28,MX06|MX|Chihuahua|-106.27|30.1,MX07|MX|Coahuila|-101.88|26.32,MX08|MX|Colima|-103.94|19.15,MX09|MX|Mexico City|-99.13|19.41,MX10|MX|Durango|-104.24|24.64,MX11|MX|Guanajuato|-101.37|20.87,MX12|MX|Guerrero|-99.83|17.31,MX13|MX|Hidalgo|-98.81|20.13,MX14|MX|Jalisco|-103.39|20.64,MX15|MX|M\xE9xico|-99.14|19.51,MX16|MX|Michoac\xE1n|-101.68|19.49,MX17|MX|Morelos|-99.15|18.88,MX18|MX|Nayarit|-104.89|21.5,MX19|MX|Nuevo Le\xF3n|-100.26|25.69,MX20|MX|Oaxaca|-96.23|17.05,MX21|MX|Puebla|-98.12|19.07,MX22|MX|Quer\xE9taro|-100.35|20.57,MX23|MX|Quintana Roo|-87.09|20.7,MX24|MX|San Luis Potos\xED|-100.7|22.22,MX25|MX|Sinaloa|-107.49|24.63,MX26|MX|Sonora|-111.05|29.37,MX27|MX|Tabasco|-92.98|17.99,MX28|MX|Tamaulipas|-98.33|24.92,MX29|MX|Tlaxcala|-98.19|19.31,MX30|MX|Veracruz|-96.31|19.2,MX31|MX|Yucat\xE1n|-89.52|20.94,MX32|MX|Zacatecas|-102.7|22.93,NB|CA|New Brunswick|-65.73|45.83,NC|US|North Carolina|-79.61|35.57,ND|US|North Dakota|-98.8|47.31,NE|US|Nebraska|-96.42|41.07,NH|US|New Hampshire|-71.37|43,NJ|US|New Jersey|-74.34|40.51,NL|CA|Newfoundland and Labrador|-52.77|47.55,NM|US|New Mexico|-106.28|34.69,NS|CA|Nova Scotia|-63.11|44.86,NV|US|Nevada|-115.95|36.72,NY|US|New York|-74.13|40.89,OH|US|Ohio|-82.75|40.53,OK|US|Oklahoma|-97.01|35.66,ON|CA|Ontario|-79.27|43.94,OR|US|Oregon|-122.75|44.96,PA|US|Pennsylvania|-76.12|40.23,PE|CA|Prince Edward Island|-63.13|46.23,QC|CA|Quebec|-73.14|45.89,RI|US|Rhode Island|-71.45|41.79,SC|US|South Carolina|-80.69|33.6,SD|US|South Dakota|-98.66|43.89,SK|CA|Saskatchewan|-105.99|51.63,TN|US|Tennessee|-87.53|35.63,TX|US|Texas|-97.51|31.01,UT|US|Utah|-111.96|40.5,VA|US|Virginia|-77.08|37.61,VT|US|Vermont|-73.21|44.48,WA|US|Washington|-121.46|47.29,WI|US|Wisconsin|-88.6|43.36,WV|US|West Virginia|-81.42|38.99,WY|US|Wyoming|-105.54|42.26,YT|CA|Yukon|-135.05|60.72",zie="006|-66.84|18.26,007|-66.15|18.15,008|-64.74|17.74,009|-66.12|18.37,010|-72.6|42.26,011|-72.53|42.07,012|-73.21|42.37,013|-72.51|42.58,014|-71.81|42.59,015|-71.85|42.23,016|-71.84|42.28,017|-71.44|42.33,018|-71.21|42.64,019|-70.89|42.66,020|-71.28|42.12,021|-71.05|42.31,022|-71.04|42.35,023|-70.86|41.98,024|-71.22|42.37,025|-70.6|41.71,026|-70.2|41.73,027|-71.07|41.77,028|-71.62|41.69,029|-71.47|41.82,030|-71.51|42.9,031|-71.48|43,032|-71.65|43.57,033|-71.58|43.26,034|-72.19|42.91,035|-71.31|44.69,036|-72.32|43.17,037|-72.13|43.69,038|-71.1|43.56,039|-70.76|43.24,040|-70.6|43.78,041|-70.27|43.7,042|-70.49|44.38,043|-69.75|44.3,044|-68.83|45.45,045|-69.57|43.99,046|-67.8|44.79,047|-68.34|46.55,048|-69.17|44.2,049|-69.97|44.99,050|-72.43|43.85,051|-72.65|43.28,052|-73.14|43.03,053|-72.77|42.94,054|-72.98|44.58,056|-72.6|44.35,057|-73.04|43.69,058|-72.12|44.68,059|-71.7|44.79,060|-72.81|41.88,061|-72.69|41.74,062|-72.12|41.81,063|-72.03|41.5,064|-72.61|41.46,065|-72.94|41.36,066|-73.22|41.24,067|-73.24|41.68,068|-73.42|41.28,069|-73.57|41.14,070|-74.28|40.76,071|-74.2|40.74,072|-74.2|40.68,073|-74.08|40.71,074|-74.4|41.09,075|-74.17|40.92,076|-74.01|40.94,077|-74.17|40.28,078|-74.81|40.97,079|-74.55|40.74,080|-74.98|39.78,081|-75.07|39.94,082|-74.68|39.32,083|-75.04|39.45,084|-74.48|39.35,085|-74.62|40.25,086|-74.68|40.23,087|-74.22|39.96,088|-74.72|40.54,089|-74.48|40.45,100|-73.96|40.77,101|-73.95|40.78,102|-74.02|40.72,103|-74.15|40.58,104|-73.85|40.9,105|-73.75|41.27,106|-73.74|41.02,107|-73.84|40.96,108|-73.8|40.95,109|-74.27|41.3,110|-73.69|40.74,111|-73.93|40.76,112|-73.94|40.66,113|-73.84|40.73,114|-73.77|40.69,115|-73.62|40.71,116|-73.88|40.57,117|-73.23|40.82,118|-73.5|40.77,119|-72.53|40.95,120|-74.22|42.92,121|-74.4|43.46,122|-73.81|42.7,123|-73.96|42.82,124|-74.27|42.09,125|-73.7|41.89,126|-73.88|41.69,127|-74.75|41.74,128|-73.91|43.61,129|-74.03|44.53,130|-76.16|43.08,131|-76.46|43.27,132|-76.2|43.03,133|-75.07|43.45,134|-75.35|43.03,135|-75.15|43.14,136|-75.39|44.33,137|-75.2|42.21,138|-75.46|42.43,139|-75.88|42.12,140|-78.48|43.01,141|-78.7|42.49,142|-78.8|42.91,143|-78.96|43.12,144|-77.71|42.96,145|-77.17|43.14,146|-77.65|43.17,147|-78.84|42.21,148|-77.18|42.29,149|-76.78|42.09,150|-80.23|40.56,151|-80.18|40.53,152|-79.97|40.46,153|-80.24|40.01,154|-79.65|39.92,155|-78.8|39.95,156|-79.47|40.33,157|-79.02|40.71,158|-78.66|41.32,159|-78.84|40.35,160|-79.88|40.93,161|-80.3|41.19,162|-79.35|41.08,163|-79.58|41.59,164|-80|41.87,165|-80.04|42.1,166|-78.28|40.48,167|-78.47|41.76,168|-78|40.97,169|-77.37|41.8,170|-77.29|40.44,171|-76.78|40.33,172|-77.81|39.98,173|-76.93|39.89,174|-76.72|39.97,175|-76.24|40.05,176|-76.34|40.05,177|-77.22|41.34,178|-76.77|40.93,179|-76.27|40.69,180|-75.45|40.67,181|-75.47|40.6,182|-75.88|40.9,183|-75.19|41.12,184|-75.38|41.53,185|-75.68|41.37,186|-76.17|41.4,187|-75.86|41.22,188|-76.12|41.82,189|-75.14|40.36,190|-75.37|39.97,191|-75.15|40.01,193|-75.78|39.92,194|-75.46|40.19,195|-75.9|40.42,196|-75.95|40.34,197|-75.68|39.53,198|-75.58|39.77,199|-75.46|38.83,200|-77.02|38.9,201|-77.68|38.9,202|-77.03|38.89,203|-77.01|38.86,204|-77.05|38.89,205|-77.01|38.87,206|-76.76|38.45,207|-76.78|38.88,208|-77.23|39.15,209|-76.99|39.05,210|-76.32|39.53,211|-76.73|39.58,212|-76.58|39.31,214|-76.55|39,215|-79.08|39.56,216|-76.02|38.86,217|-77.5|39.52,218|-75.57|38.27,219|-75.94|39.57,220|-77.25|38.78,221|-77.25|38.92,222|-77.11|38.88,223|-77.13|38.79,224|-77.25|38.22,225|-77.51|38.09,226|-78.25|39.03,227|-78.05|38.49,228|-78.79|38.57,229|-78.55|38.02,230|-78.09|37.66,231|-76.96|37.55,232|-77.46|37.51,233|-76.3|36.68,234|-76.66|36.77,235|-76.26|36.87,236|-76.44|37.12,237|-76.38|36.85,238|-77.41|36.94,239|-78.39|37.03,240|-80.1|37.23,241|-79.89|36.9,242|-82.49|36.83,243|-81.13|36.86,244|-79.51|38.05,245|-79.11|37.15,246|-81.8|37.19,247|-81.14|37.39,248|-81.64|37.47,249|-80.32|37.95,250|-81.45|38.27,251|-81.89|38.64,252|-81.45|38.77,253|-81.64|38.42,254|-78.11|39.45,255|-82.19|38.25,256|-82.08|37.76,257|-82.41|38.4,258|-81.21|37.72,259|-80.89|37.83,260|-80.63|40.05,261|-81.27|39.2,262|-80.02|38.75,263|-80.23|39.27,264|-80.65|39.21,265|-80.05|39.59,266|-80.8|38.48,267|-78.98|39.33,268|-79.12|38.88,270|-80.45|36.24,271|-80.24|36.06,272|-79.82|35.86,273|-79.52|35.55,274|-79.81|36.09,275|-78.54|35.93,276|-78.65|35.81,277|-78.9|35.99,278|-77.32|35.88,279|-76.5|36.19,280|-81.2|35.4,281|-80.41|35.21,282|-80.83|35.22,283|-78.94|34.96,284|-78.23|34.39,285|-77.23|35.06,286|-81.36|36.06,287|-82.78|35.51,288|-82.55|35.6,289|-83.97|35.11,290|-80.88|34.19,291|-80.62|33.71,292|-80.96|34.04,293|-81.86|34.78,294|-80.08|33.05,295|-79.49|34.07,296|-82.57|34.61,297|-80.92|34.83,298|-81.74|33.51,299|-80.96|32.55,300|-84.08|33.85,301|-84.91|34.04,302|-84.55|33.25,303|-84.42|33.77,304|-82.11|32.48,305|-83.81|34.58,306|-83.14|33.86,307|-85.1|34.71,308|-82.34|33.35,309|-82.01|33.4,310|-83.42|32.64,312|-83.64|32.83,313|-81.49|31.68,314|-81.15|32.03,315|-82.21|31.4,316|-83.21|31.02,317|-83.87|31.48,318|-84.69|32.45,319|-84.95|32.47,320|-82.58|30.27,321|-81.48|29.39,322|-81.69|30.3,323|-84.25|30.29,324|-85.58|30.55,325|-87.03|30.76,326|-82.6|29.58,327|-81.28|28.79,328|-81.32|28.47,329|-80.67|27.96,330|-80.58|25.31,331|-80.38|25.74,333|-80.25|26.13,334|-81.01|26.64,335|-82.22|28.19,336|-82.47|28.01,337|-82.73|27.85,338|-81.64|27.72,339|-81.71|26.77,341|-81.32|26.11,342|-82.16|27.29,344|-82.35|29.01,346|-82.52|28.41,347|-81.4|28.29,349|-80.72|27.34,350|-86.8|34.05,351|-86.38|33.43,352|-86.77|33.5,354|-87.86|33.07,355|-87.71|33.96,356|-87.4|34.67,357|-86.26|34.75,358|-86.59|34.69,359|-85.94|34.27,360|-86.09|32.09,361|-86.27|32.31,362|-85.65|33.53,363|-85.56|31.34,364|-86.97|31.38,365|-88.14|31.32,366|-88.19|30.68,367|-87.34|32.33,368|-85.41|32.61,369|-88.25|32.12,370|-87.02|36.12,371|-86.23|35.75,372|-86.83|36.15,373|-85.36|35.32,374|-85.33|35.06,376|-82.3|36.36,377|-84.31|36.27,378|-83.35|36.3,379|-83.97|35.97,380|-89.43|35.55,381|-89.96|35.1,382|-88.68|36.29,383|-88.5|35.61,384|-87.36|35.34,385|-85.34|36.18,386|-89.76|34.57,387|-90.81|33.54,388|-88.63|34.36,389|-89.9|33.77,390|-90|32.53,391|-90.67|32.51,392|-90.22|32.32,393|-88.8|32.42,394|-89.26|31.23,395|-89|30.59,396|-90.67|31.32,397|-88.87|33.53,398|-84.67|31.32,400|-85.29|38.07,401|-86.2|37.85,402|-85.66|38.19,403|-84.2|38.06,404|-84.42|37.53,405|-84.45|38.04,406|-84.87|38.22,407|-84.12|36.95,408|-83.26|36.9,409|-83.74|36.95,410|-84.32|38.64,411|-83.06|38.38,412|-82.67|37.89,413|-83.48|37.58,414|-83.15|37.84,415|-82.39|37.46,416|-82.78|37.54,417|-83.25|37.23,418|-82.88|37.21,420|-88.57|36.9,421|-86.09|36.89,422|-87.11|36.95,423|-87.02|37.52,424|-87.7|37.47,425|-84.71|37.15,426|-84.82|36.81,427|-85.73|37.32,430|-82.9|40.21,431|-82.99|39.69,432|-82.97|39.98,433|-83.38|40.55,434|-83.3|41.42,435|-84.22|41.46,436|-83.54|41.67,437|-81.66|39.85,438|-81.88|40.27,439|-80.9|40.25,440|-80.97|41.64,441|-81.66|41.42,442|-81.6|41.13,443|-81.54|41.07,444|-80.77|41.09,445|-80.64|41.05,446|-81.53|40.65,447|-81.39|40.83,448|-82.77|41.02,449|-82.55|40.74,450|-84.48|39.43,451|-83.84|39.16,452|-84.48|39.18,453|-84.3|39.97,454|-84.18|39.74,455|-83.81|39.94,456|-82.86|38.99,457|-81.78|39.35,458|-84.23|40.83,460|-86.13|40.17,461|-86.18|39.62,462|-86.14|39.79,463|-87.05|41.41,464|-87.34|41.55,465|-86.08|41.44,466|-86.28|41.66,467|-85.21|41.17,468|-85.17|41.09,469|-86.14|40.76,470|-85.08|39.16,471|-86.02|38.43,472|-85.74|39.05,473|-85.15|40.09,474|-86.63|38.99,475|-87.03|38.46,476|-87.53|38.13,477|-87.58|38.03,478|-87.29|39.45,479|-87.11|40.5,480|-82.79|42.83,481|-83.62|42.2,482|-83.1|42.38,483|-83.35|42.66,484|-83.22|43.29,485|-83.69|43.03,486|-84.36|43.99,487|-83.67|44.45,488|-84.67|43.02,489|-84.59|42.74,490|-85.54|42.2,491|-86.36|41.87,492|-84.36|42.06,493|-85.57|43.33,494|-86.14|43.39,495|-85.66|42.96,496|-85.52|44.44,497|-84.37|45.17,498|-86.94|46.17,499|-88.93|46.6,500|-94.77|41.63,501|-92.79|41.84,502|-93.67|42.12,503|-93.63|41.59,504|-93.37|43.17,505|-94.45|42.77,506|-92.45|42.65,507|-92.31|42.49,508|-94.56|40.96,510|-95.91|42.6,511|-96.39|42.52,512|-96.06|43.28,513|-95.16|43.27,514|-95.08|42.11,515|-95.55|41.44,516|-95.37|40.74,520|-90.98|42.46,521|-91.73|43.2,522|-92.31|41.9,523|-91.66|41.87,524|-91.69|41.96,525|-92.46|40.95,526|-91.44|40.88,527|-90.88|41.64,528|-90.61|41.56,530|-88.24|43.51,531|-88.33|42.75,532|-87.98|43.06,534|-87.86|42.74,535|-89.66|42.95,537|-89.38|43.08,538|-90.73|42.88,539|-89.55|43.64,540|-92.46|45.08,541|-88.23|45.09,542|-87.6|44.52,543|-88.01|44.53,544|-89.85|44.93,545|-89.86|45.89,546|-90.87|43.93,547|-91.52|44.85,548|-91.63|46.04,549|-88.96|44.19,550|-92.98|45.17,551|-93.08|44.96,553|-94.06|44.99,554|-93.31|45.01,556|-91.03|47.67,557|-92.68|47.39,558|-92.08|46.96,559|-92.28|43.89,560|-94.04|44.02,561|-95.65|43.92,562|-95.75|45.08,563|-94.59|45.83,564|-94.5|46.63,565|-96.08|46.86,566|-94.31|47.88,567|-96.22|48.39,570|-97.07|43.48,571|-96.76|43.54,572|-97.18|45.04,573|-98.53|43.91,574|-98.93|45.36,575|-100.61|43.86,576|-101.59|45.43,577|-103.11|44.26,580|-97.39|46.66,581|-96.83|46.86,582|-97.72|48.25,583|-99.34|48.32,584|-99.12|46.88,585|-100.98|46.76,586|-102.99|46.75,587|-101.7|48.34,588|-103.48|48.2,590|-108.62|45.98,591|-108.45|45.69,592|-105.6|48.2,593|-105.58|46.4,594|-111.24|47.79,595|-109.12|48.38,596|-111.74|46.65,597|-112.31|45.48,598|-114.25|46.97,599|-114.57|48.37,600|-88.15|42.29,601|-88.47|42.01,602|-87.69|42.04,603|-87.79|41.89,604|-88.09|41.39,605|-88.55|41.69,606|-87.69|41.83,607|-87.82|42.03,608|-87.76|41.84,609|-87.92|40.8,610|-89.56|42.18,611|-89.08|42.28,612|-90.29|41.5,613|-89.16|41.34,614|-90.43|40.82,615|-89.68|40.71,616|-89.61|40.72,617|-88.89|40.52,618|-88.15|40.11,619|-88.19|39.66,620|-90.01|39.13,622|-89.72|38.41,623|-91.02|39.99,624|-88.19|39.04,625|-89.21|39.63,626|-90|39.86,627|-89.66|39.8,628|-88.65|38.35,629|-88.89|37.55,630|-90.83|38.35,631|-90.32|38.64,633|-91.11|39.02,634|-91.78|39.93,635|-92.61|40.2,636|-90.64|37.61,637|-89.81|37.37,638|-89.73|36.55,639|-90.62|36.84,640|-94.1|39.07,641|-94.58|39.14,644|-94.69|40.13,645|-94.83|39.75,646|-93.55|39.89,647|-94.15|38.06,648|-94.35|36.93,650|-92.23|38.45,651|-92.19|38.51,652|-92.38|39.21,653|-93.26|38.71,654|-92.03|37.93,655|-91.92|37.67,656|-93.08|36.76,657|-92.43|37.03,658|-93.3|37.22,660|-95.12|38.84,661|-94.73|39.11,662|-94.72|38.95,664|-96.15|39.64,665|-96.34|39.4,666|-95.76|39.06,667|-95.23|37.64,668|-96.39|38.36,669|-97.86|39.77,670|-98.49|37.33,671|-98.4|37.44,672|-97.33|37.7,673|-95.81|37.23,674|-97.79|38.98,675|-98.99|38.25,676|-99.47|39.34,677|-101.15|39.35,678|-100.82|37.91,679|-101.43|37.18,680|-96.46|41.55,681|-96.05|41.24,683|-96.93|40.39,684|-97.26|40.89,685|-96.69|40.82,686|-97.68|41.55,687|-98.16|42.43,688|-99.15|41.34,689|-98.9|40.34,690|-100.99|40.37,691|-101.59|41.42,692|-100.64|42.67,693|-102.84|42.29,700|-89.93|29.63,701|-89.93|30.02,703|-90.65|29.62,704|-90.27|30.66,705|-92.25|30.2,706|-93.21|30.34,707|-91.2|30.57,708|-91.1|30.45,710|-93.4|32.45,711|-93.75|32.47,712|-91.95|32.56,713|-91.86|31.43,714|-92.84|31.57,716|-91.75|33.61,717|-92.79|33.48,718|-93.84|33.66,719|-93.61|34.4,720|-91.9|34.92,721|-92.56|34.93,722|-92.37|34.7,723|-90.59|35.07,724|-90.76|36.04,725|-91.81|36.01,726|-92.93|36.15,727|-94.05|36.11,728|-93.33|35.3,729|-94.08|35.29,730|-97.83|35.31,731|-97.5|35.43,734|-97.14|34.21,735|-98.81|34.53,736|-99.33|35.52,737|-98.2|36.42,738|-99.54|36.5,739|-101.67|36.74,740|-96.19|36.34,741|-95.96|36.15,743|-95.02|36.55,744|-95.44|35.64,745|-95.65|34.66,746|-97.05|36.71,747|-95.41|34.02,748|-96.66|35.17,749|-94.69|35.23,750|-96.76|33.06,751|-96.32|32.48,752|-96.78|32.79,753|-96.84|32.81,754|-95.67|33.37,755|-94.45|33.3,756|-94.58|32.49,757|-95.37|32.24,758|-95.68|31.44,759|-94.29|31.29,760|-97.54|32.59,761|-97.38|32.77,762|-97.44|33.52,763|-98.87|33.73,764|-98.59|32.61,765|-97.62|31.11,766|-97.06|31.7,767|-97.15|31.57,768|-99.37|31.23,769|-100.88|31.03,770|-95.39|29.79,772|-95.37|29.77,773|-95.24|30.48,774|-96.02|29.38,775|-94.98|29.68,776|-94.16|30.27,777|-94.19|29.96,778|-96.32|30.67,779|-96.95|28.92,780|-99.01|28.67,781|-97.93|29.08,782|-98.53|29.47,783|-98.14|27.63,784|-97.44|27.73,785|-98.19|26.39,786|-98.1|30.27,787|-97.78|30.3,788|-100.26|29.44,789|-96.87|29.92,790|-101.63|35.48,791|-101.85|35.21,792|-100.57|34.25,793|-102.15|33.37,794|-101.88|33.58,795|-100.31|32.7,796|-99.72|32.46,797|-102.22|31.57,798|-104.17|30.53,799|-106.16|31.8,800|-105.11|39.91,801|-104.47|39.51,802|-104.93|39.78,803|-105.31|40.04,804|-106.16|39.98,805|-105.35|40.57,806|-104.49|40.38,807|-103.09|40.4,808|-103.16|39.12,809|-104.67|38.79,810|-103.58|37.77,811|-106.39|37.54,812|-106.39|38.46,813|-108.42|37.49,814|-108.02|38.43,815|-108.7|38.92,816|-107.86|39.99,820|-105.27|41.31,821|-110.51|44.57,822|-104.67|42.39,823|-107.03|41.75,824|-108.65|44.32,825|-108.91|43.14,826|-106.43|43.1,827|-105|44.2,828|-106.71|44.55,829|-109.71|42.82,830|-110.51|43.7,831|-110.53|42.6,832|-112.17|42.66,833|-114.23|42.81,834|-111.63|43.86,835|-115.77|46.07,836|-115.99|44,837|-116.04|43.58,838|-116.47|47.77,840|-110.86|40.53,841|-111.81|40.71,843|-112.18|41.67,844|-112.01|41.23,845|-109.72|38.09,846|-111.68|39.63,847|-112.82|37.61,850|-112.09|33.63,851|-111.41|33,852|-111.69|33.6,853|-113.44|33.49,855|-110.3|33.43,856|-110.59|32,857|-111.09|32.18,859|-109.81|34.23,860|-111.15|35.89,863|-112.57|34.85,864|-113.79|35.66,865|-109.55|36.03,870|-106.9|35.22,871|-106.72|35.12,873|-108.56|35.44,874|-108.23|36.59,875|-106.04|36.27,877|-104.68|36.06,878|-107.94|34,879|-107.48|33.2,880|-108.03|32.37,881|-103.81|34.26,882|-104.07|32.87,883|-105.48|33.62,884|-103.79|35.74,890|-114.84|37,891|-115.42|36.33,893|-116.96|39.5,894|-118.06|41.29,895|-119.72|39.9,897|-119.8|39.18,898|-115.71|40.95,900|-118.32|34.04,902|-118.76|34.07,903|-118.34|33.95,904|-118.48|34.02,905|-118.33|33.83,906|-118.03|33.93,907|-118.45|33.39,908|-118.18|33.8,910|-118.25|34.28,911|-118.13|34.15,912|-118.25|34.19,913|-118.55|34.36,914|-118.47|34.18,915|-118.33|34.19,916|-118.38|34.18,917|-117.78|34.14,918|-118.13|34.09,919|-116.62|32.73,920|-116.7|33.16,921|-117.14|32.85,922|-115.5|33.59,923|-117.14|34.66,924|-117.33|34.17,925|-117.06|33.68,926|-117.73|33.63,927|-117.85|33.74,928|-117.71|33.85,930|-119.12|34.39,931|-119.97|34.48,932|-119.07|35.98,933|-119.01|35.35,934|-120.5|35.38,935|-118.36|37.37,936|-119.72|36.95,937|-119.85|36.71,939|-121.42|36.34,940|-122.31|37.41,941|-122.44|37.77,943|-122.13|37.44,944|-122.32|37.53,945|-122.05|38.09,946|-122.19|37.78,947|-122.26|37.89,948|-122.3|37.97,949|-122.74|38.14,950|-121.42|36.85,951|-121.76|37.33,952|-120.79|38.14,953|-120.56|37.62,954|-123.15|39.08,955|-123.75|40.5,956|-121.34|38.62,957|-120.86|39.13,958|-121.44|38.58,959|-121.73|39.47,960|-122.42|41.06,961|-120.33|40.52,967|-155.53|19.6,968|-157.83|21.34,969|144.77|13.45,970|-121.45|45.3,971|-123.79|45.64,972|-122.74|45.57,973|-123.26|44.68,974|-123.46|43.61,975|-123.06|42.34,976|-120.4|42.67,977|-120.77|44.32,978|-118.59|45.21,979|-117.63|43.34,980|-121.78|47.42,981|-122.32|47.6,982|-121.79|48.39,983|-123.87|47.96,984|-122.46|47.18,985|-123.27|46.94,986|-122.15|45.99,988|-119.91|48,989|-120.57|46.71,990|-117.56|47.62,991|-118.13|47.91,992|-117.4|47.67,993|-118.82|46.4,994|-117.21|46.2,995|-156.93|60.89,996|-151.66|60.82,997|-146.69|65.19,998|-136.2|58.94,999|-131.24|55.86",jie="ABW|-70.02|12.54,AFG|68|34.63,AGO|14.24|-9.84,AIA|-63.06|18.22,ALA|19.93|60.1,ALB|19.81|41.14,AND|1.53|42.51,ARE|55.24|24.99,ARG|-61.28|-32.95,ARM|44.52|40.23,ASM|-170.7|-14.28,ATA|21.28|-80.52,ATF|70.22|-49.35,ATG|-61.84|17.12,AUS|144.91|-33.49,AUT|15.51|47.93,AZE|49.02|40.37,BDI|29.49|-3.34,BEL|4.37|50.89,BEN|2.33|7.65,BES|-68.27|12.15,BFA|-2.08|12.15,BGD|90.42|23.65,BGR|24.92|42.71,BHR|50.57|26.18,BHS|-77.34|25.06,BIH|17.97|44.18,BLM|-62.85|17.9,BLR|27.81|53.57,BLZ|-88.41|17.54,BMU|-64.78|32.29,BOL|-65.79|-17.39,BRA|-45.89|-17.51,BRB|-59.62|13.11,BRN|114.74|4.82,BTN|89.69|27.32,BWA|25.99|-23.43,CAF|18.32|4.94,CAN|-79.4|43.71,CCK|96.82|-12.16,CHE|7.96|47.07,CHL|-71.21|-33.72,CHN|114.44|32,CIV|-4.89|6.16,CMR|11.19|5.41,COD|20.23|-4.72,COG|14.18|-4.04,COK|-159.78|-21.21,COL|-74.85|5.93,COM|43.58|-11.89,CPV|-23.87|15.66,CRI|-84.14|9.99,CUB|-80.25|22.21,CUW|-68.88|12.12,CXR|105.68|-10.42,CYM|-81.38|19.32,CYP|33.31|35,CZE|15.44|49.89,DEU|9.65|51.24,DJI|43.15|11.59,DMA|-61.39|15.3,DNK|11.42|55.79,DOM|-70.07|18.75,DZA|3.55|35.62,ECU|-79.29|-1.4,EGY|31.22|29.84,ERI|38.84|15.25,ESH|-13.19|27.14,ESP|-2.91|39.69,EST|25.17|59.29,ETH|39.02|9.26,FIN|24.87|61.26,FJI|178.2|-17.85,FLK|-57.86|-51.69,FRA|2.87|47.28,FRO|-6.77|62.01,FSM|158.16|6.92,GAB|10.22|-0.06,GBR|-1.37|52.49,GEO|43.92|41.84,GGY|-2.54|49.46,GHA|-0.98|6.4,GIB|-5.35|36.14,GIN|-12.8|9.75,GLP|-61.53|16.23,GMB|-16.59|13.41,GNB|-15.48|11.9,GNQ|9.77|1.86,GRC|23.73|37.98,GRD|-61.75|12.05,GRL|-51.72|64.18,GTM|-90.71|14.73,GUF|-52.64|5.04,GUM|144.82|13.5,GUY|-58.11|6.63,HKG|114.15|22.33,HMD|73.5|-53.1,HND|-87.41|14.94,HRV|16.21|45.31,HTI|-72.34|18.54,HUN|19.21|47.39,IDN|106.85|-6.21,IMN|-4.48|54.15,IND|78.36|21,IOT|71.35|-6.19,IRL|-6.87|53.12,IRN|51.6|34.4,IRQ|44.78|33.65,ISL|-21.7|64.22,ISR|34.97|32.07,ITA|12|42.73,JAM|-76.91|18.03,JEY|-2.1|49.19,JOR|35.96|32.03,JPN|137.27|35.53,KAZ|70.17|47.24,KEN|36.81|-0.97,KGZ|73.96|41.94,KHM|104.7|11.75,KIR|172.98|1.33,KNA|-62.72|17.3,KOR|127.51|36.58,KWT|48.06|29.2,Kosovo|20.9|42.58,LAO|102.6|17.97,LBN|35.53|33.87,LBR|-10.39|6.36,LBY|13.19|32.89,LCA|-60.97|14.04,LIE|9.52|47.14,LKA|80.25|7.25,LSO|27.67|-29.38,LTU|24.18|55.04,LUX|6.08|49.56,LVA|24.13|56.85,MAC|113.55|22.19,MAF|-63.08|18.07,MAR|-6.65|33.43,MCO|7.42|43.74,MDA|28.82|47.09,MDG|47.46|-18.89,MDV|73.51|4.18,MEX|-100.65|21.59,MHL|171.38|7.09,MKD|21.47|41.8,MLI|-7.15|12.95,MLT|14.46|35.91,MMR|96.18|18.74,MNE|19.17|42.53,MNG|105.33|47.94,MNP|145.75|15.21,MOZ|32.58|-25.97,MRT|-14.58|18.01,MSR|-62.21|16.79,MTQ|-61.01|14.64,MUS|57.51|-20.23,MWI|34.34|-14.24,MYS|103.35|3.45,MYT|45.23|-12.77,N. Cyprus|33.56|35.27,NAM|17.19|-21.34,NCL|166.47|-22.26,NER|5.05|14.04,NFK|167.97|-29.05,NGA|5.91|7.87,NIC|-86.17|12.33,NIU|-169.92|-19.05,NLD|5.21|52.09,NOR|9.62|60.46,NPL|84.7|27.64,NRU|166.93|-0.55,NZL|174.54|-38.9,OMN|57.69|23.27,PAK|71.47|30.24,PAN|-79.83|8.98,PCN|-130.1|-25.07,PER|-76.4|-11.18,PHL|121.05|14.65,PLW|134.58|7.52,PNG|147.4|-7.71,POL|19.26|51.79,PRI|-66.24|18.35,PRK|126.54|39.52,PRT|-9.08|39.42,PRY|-57.15|-25.27,PSE|35.23|31.78,PYF|-149.59|-17.57,QAT|51.49|25.32,REU|55.45|-21.08,ROU|25.47|45.38,RUS|51.84|54.52,RWA|29.78|-1.98,SAU|43.01|23.76,SDN|31.67|14.67,SEN|-16.73|14.66,SGP|103.85|1.33,SGS|-36.51|-54.28,SHN|-5.72|-15.92,SJM|15.65|78.22,SLB|159.97|-9.44,SLE|-12.4|8.36,SLV|-89.08|13.7,SMR|12.45|43.94,SOM|44.96|4.91,SPM|-56.18|46.78,SRB|20.62|44.5,SSD|29.91|6.61,STP|6.73|0.34,SUR|-55.18|5.84,SVK|18.69|48.55,SVN|14.83|46.16,SWE|16.03|58.86,SWZ|31.28|-26.43,SXM|-63.05|18.03,SYC|55.46|-4.62,SYR|37.18|35.12,Somaliland|46.23|9.76,TCA|-72.1|21.74,TCD|16.57|11.53,TGO|1.16|6.8,THA|100.71|13.71,TJK|69.39|39.08,TKM|59.4|38.74,TLS|125.65|-8.67,TON|-175.2|-21.14,TTO|-61.4|10.5,TUN|10.23|35.87,TUR|32.1|39.5,TUV|179.19|-8.52,TWN|121.06|24.37,TZA|36.11|-5.88,UGA|32.23|0.59,UKR|32.8|48.99,URY|-56.28|-34.1,USA|-93.51|37.4,UZB|69.22|41.26,VAT|12.45|41.9,VCT|-61.21|13.14,VEN|-67.82|9.83,VGB|-64.62|18.43,VIR|-64.8|17.9,VNM|106.63|10.82,VUT|168.31|-17.74,WLF|-176.17|-13.28,WSM|-171.77|-13.83,YEM|44.62|14.36,ZAF|26.96|-28.33,ZMB|28.41|-13.86,ZWE|30.49|-18.56",DH=new Set(["n a","none","null","nil","unknown","not applicable","not available","not specified","unspecified","missing","blank","empty","tbd","to be determined"]),Xie=new Set(Array.from(DH).filter(r=>r.includes(" ")&&r!=="n a").map(r=>r.replace(/ /g,"")));function xS(r){return r?DH.has(r)||Xie.has(r.replace(/ /g,"")):!0}var Kie=80;function Un(r){return _H(r.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[^\p{L}\p{Nd}\s]/gu," ").replace(/\s+/g," ").trim()}function o7(r){return vS(r)}var Yie="AD AND,AE ARE,AF AFG,AG ATG,AI AIA,AL ALB,AM ARM,AO AGO,AQ ATA,AR ARG,AS ASM,AT AUT,AU AUS,AW ABW,AX ALA,AZ AZE,BA BIH,BB BRB,BD BGD,BE BEL,BF BFA,BG BGR,BH BHR,BI BDI,BJ BEN,BL BLM,BM BMU,BN BRN,BO BOL,BQ BES,BR BRA,BS BHS,BT BTN,BV BVT,BW BWA,BY BLR,BZ BLZ,CA CAN,CC CCK,CD COD,CF CAF,CG COG,CH CHE,CI CIV,CK COK,CL CHL,CM CMR,CN CHN,CO COL,CR CRI,CU CUB,CV CPV,CW CUW,CX CXR,CY CYP,CZ CZE,DE DEU,DJ DJI,DK DNK,DM DMA,DO DOM,DZ DZA,EC ECU,EE EST,EG EGY,EH ESH,ER ERI,ES ESP,ET ETH,FI FIN,FJ FJI,FK FLK,FM FSM,FO FRO,FR FRA,GA GAB,GB GBR,GD GRD,GE GEO,GF GUF,GG GGY,GH GHA,GI GIB,GL GRL,GM GMB,GN GIN,GP GLP,GQ GNQ,GR GRC,GS SGS,GT GTM,GU GUM,GW GNB,GY GUY,HK HKG,HM HMD,HN HND,HR HRV,HT HTI,HU HUN,ID IDN,IE IRL,IL ISR,IM IMN,IN IND,IO IOT,IQ IRQ,IR IRN,IS ISL,IT ITA,JE JEY,JM JAM,JO JOR,JP JPN,KE KEN,KG KGZ,KH KHM,KI KIR,KM COM,KN KNA,KP PRK,KR KOR,KW KWT,KY CYM,KZ KAZ,LA LAO,LB LBN,LC LCA,LI LIE,LK LKA,LR LBR,LS LSO,LT LTU,LU LUX,LV LVA,LY LBY,MA MAR,MC MCO,MD MDA,ME MNE,MF MAF,MG MDG,MH MHL,MK MKD,ML MLI,MM MMR,MN MNG,MO MAC,MP MNP,MQ MTQ,MR MRT,MS MSR,MT MLT,MU MUS,MV MDV,MW MWI,MX MEX,MY MYS,MZ MOZ,NA NAM,NC NCL,NE NER,NF NFK,NG NGA,NI NIC,NL NLD,NO NOR,NP NPL,NR NRU,NU NIU,NZ NZL,OM OMN,PA PAN,PE PER,PF PYF,PG PNG,PH PHL,PK PAK,PL POL,PM SPM,PN PCN,PR PRI,PS PSE,PT PRT,PW PLW,PY PRY,QA QAT,RE REU,RO ROU,RS SRB,RU RUS,RW RWA,SA SAU,SB SLB,SC SYC,SD SDN,SE SWE,SG SGP,SH SHN,SI SVN,SJ SJM,SK SVK,SL SLE,SM SMR,SN SEN,SO SOM,SR SUR,SS SSD,ST STP,SV SLV,SX SXM,SY SYR,SZ SWZ,TC TCA,TD TCD,TF ATF,TG TGO,TH THA,TJ TJK,TK TKL,TL TLS,TM TKM,TN TUN,TO TON,TR TUR,TT TTO,TV TUV,TW TWN,TZ TZA,UA UKR,UG UGA,UM UMI,US USA,UY URY,UZ UZB,VA VAT,VC VCT,VE VEN,VG VGB,VI VIR,VN VNM,VU VUT,WF WLF,WS WSM,YE YEM,YT MYT,ZA ZAF,ZM ZMB,ZW ZWE",Jp=(()=>{let r=new Map;for(let e of Yie.split(",")){let[t,o]=e.split(" ");t&&o&&r.set(t,o)}return r})(),qie=new Set(Jp.keys()),Jie=new Set(Jp.values()),$ie=["en","fr","es","de","it","pt","ru","ja","zh","ko","ar","hi","tr","pl","he","nl","sv","fi","nb","da","cs","el","uk","ro","id","vi","th","sk","hu","hr"],Qie={usa:"USA","u.s.":"USA","u.s.a.":"USA",us:"USA",america:"USA","united states of america":"USA","the united states":"USA",uk:"GBR","u.k.":"GBR","great britain":"GBR",britain:"GBR",england:"GBR","south korea":"KOR","north korea":"PRK",korea:"KOR","ivory coast":"CIV","cote d ivoire":"CIV",vietnam:"VNM",laos:"LAO",syria:"SYR",iran:"IRN",russia:"RUS",moldova:"MDA",tanzania:"TZA",bolivia:"BOL",venezuela:"VEN",brunei:"BRN","czech republic":"CZE",czechia:"CZE",slovakia:"SVK",uae:"ARE","united arab emirates":"ARE",drc:"COD","dr congo":"COD","democratic republic of the congo":"COD","republic of the congo":"COG",congo:"COG",swaziland:"SWZ",eswatini:"SWZ","cape verde":"CPV","cabo verde":"CPV",burma:"MMR",myanmar:"MMR",holland:"NLD","the netherlands":"NLD",netherlands:"NLD",vatican:"VAT","vatican city":"VAT",palestine:"PSE",macau:"MAC",macao:"MAC","hong kong":"HKG",taiwan:"TWN",turkey:"TUR",turkiye:"TUR",macedonia:"MKD","north macedonia":"MKD",gambia:"GMB","the gambia":"GMB",bahamas:"BHS","the bahamas":"BHS","east timor":"TLS","timor leste":"TLS"},Zie=Object.freeze({"Antigua and Barbuda":"ATG","Bosnia and Herzegovina":"BIH","Heard Island and McDonald Islands":"HMD","Saint Kitts and Nevis":"KNA","St Kitts and Nevis":"KNA","Saint Pierre and Miquelon":"SPM","St Pierre and Miquelon":"SPM","Saint Vincent and the Grenadines":"VCT","St Vincent and the Grenadines":"VCT","Sao Tome and Principe":"STP","South Georgia and the South Sandwich Islands":"SGS","Svalbard and Jan Mayen":"SJM","Trinidad and Tobago":"TTO","Turks and Caicos Islands":"TCA","Turks and Caicos":"TCA","Wallis and Futuna":"WLF","Saint Helena, Ascension and Tristan da Cunha":"SHN","Bonaire, Sint Eustatius and Saba":"BES","United Kingdom of Great Britain and Northern Ireland":"GBR","Bolivia, Plurinational State of":"BOL","Bolivia (Plurinational State of)":"BOL","Brunei Darussalam":"BRN","Congo, The Democratic Republic of the":"COD","Congo, Democratic Republic of the":"COD","Democratic Republic of Congo":"COD","Falkland Islands (Malvinas)":"FLK","Holy See (Vatican City State)":"VAT","Holy See":"VAT","Iran, Islamic Republic of":"IRN","Iran (Islamic Republic of)":"IRN","Islamic Republic of Iran":"IRN","Korea, Republic of":"KOR","Republic of Korea":"KOR","Korea (the Republic of)":"KOR","Korea, Democratic People's Republic of":"PRK","Democratic People's Republic of Korea":"PRK","Korea (the Democratic People's Republic of)":"PRK","Lao People's Democratic Republic":"LAO","Micronesia, Federated States of":"FSM","Micronesia (Federated States of)":"FSM","Moldova, Republic of":"MDA","Republic of Moldova":"MDA","Palestine, State of":"PSE","State of Palestine":"PSE","Russian Federation":"RUS","Syrian Arab Republic":"SYR","Taiwan, Province of China":"TWN","Tanzania, United Republic of":"TZA","United Republic of Tanzania":"TZA","Venezuela, Bolivarian Republic of":"VEN","Venezuela (Bolivarian Republic of)":"VEN","Viet Nam":"VNM","Virgin Islands, British":"VGB","Virgin Islands, U.S.":"VIR","Saint Martin (French part)":"MAF","Sint Maarten (Dutch part)":"SXM","Netherlands (Kingdom of the)":"NLD","Macedonia, the former Yugoslav Republic of":"MKD"}),tk=null,dk=null;function OH(){if(tk)return tk;let r=new Map,e=[],t=["en",...$ie.filter(n=>n!=="en")];for(let n of t){let i=null;try{i=new Intl.DisplayNames([n],{type:"region"})}catch{continue}for(let[a,s]of Jp){let l;try{l=i.of(a)}catch{l=void 0}if(!l||l===a)continue;let u=Un(l);u&&!r.has(u)&&r.set(u,s),e.push([l,s])}}for(let[n,i]of Object.entries(Zie)){let a=Un(n);a&&!r.has(a)&&r.set(a,i),e.push([n,i])}for(let[n,i]of Object.entries(Qie)){let a=Un(n);a&&r.set(a,i),e.push([n,i])}let o=new Ak;for(let[n,i]of e){let a=Un(n);r.get(a)===i&&(o.add(n,i),o.add(a,i))}return tk=r,dk=o,r}function eae(){return dk||OH(),dk}function tae(r){if(r==null)return null;let e=String(r).trim();if(!e)return null;let t=Un(e);return OH().get(t)||(xS(t)?null:eae().get(o7(e))??null)}function qw(r){return Jp.get(String(r||"").trim().toUpperCase())??null}function bf(r){if(r==null)return null;let e=String(r).trim();if(!e)return null;let t=e.toUpperCase();return t.length===3&&Jie.has(t)?t:t.length===2&&qie.has(t)?Jp.get(t)??null:tae(e)}var EH={"north-america":"AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI","south-america":"AR BO BR CL CO EC FK GF GY PE PY SR UY VE",europe:"AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA",africa:"AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW",asia:"AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE",oceania:"AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS",antarctica:"AQ BV GS HM TF"},Jw=(()=>{let r=new Map;for(let e of Object.keys(EH))for(let t of EH[e].split(/\s+/))t&&r.set(t,e);return r})();function rae(r){for(let[e,t]of r){let o=Jw.get(e);o&&!Jw.has(t)&&Jw.set(t,o)}}rae(Jp);function FH(r){if(!r)return null;let e=String(r).trim().toUpperCase();if(!e)return null;let t=Jw.get(e);if(t)return t;let o=bf(String(r));return o?Jw.get(o)??null:null}var oae=new Set("AE BH CY EG IL IQ IR JO KW LB OM PS QA SA SY TR YE".split(" ")),W1t=new Set([...oae].map(r=>Jp.get(r)).filter(r=>!!r)),nae=Symbol.for("@bicharts/shape-core/admin1-lookup/v1"),ol=(r=>r[nae]??={lookup:null})(globalThis),iae=(()=>{let r=new Map;return Jp.forEach((e,t)=>r.set(e,t)),r})();function yk(){return ol.lookup!==null}function GH(r){let e=bf(r);return e?iae.get(e)??null:null}var aae=10;function sae(r,e={}){if(!ol.lookup||!r)return{status:"unmatched"};let t=Un(String(r)),o=ol.lookup.cityByKey.get(t);if(!o||o.length===0)return{status:"unmatched"};let n=e.country?GH(e.country):null;if(e.country&&n?o=o.filter(c=>c.cc===n):e.region&&(o=o.filter(c=>FH(c.cc)===e.region)),o.length===0)return{status:"unmatched"};let i=o.filter(c=>c.primary),a=i.length>0?i:o,s=new Map;for(let c of a){let h=`${c.cc}|${c.a1}|${c.lat}|${c.lon}`;s.has(h)||s.set(h,c)}let l=[...s.values()].sort((c,h)=>h.popK-c.popK),u=l[0];return l.length===1||u.popK>=aae*Math.max(l[1].popK,1)?!u.a1&&!u.pid?{status:"unmatched"}:{status:"resolved",cc:u.cc,admin1:u.a1,code:`${u.cc}.${u.a1}`,provinceId:u.pid||null,lat:u.lat,lon:u.lon,popK:u.popK}:{status:"ambiguous",candidates:l.length}}function lae(r,e){if(!ol.lookup||!r)return[];let t=ol.lookup.admin1ByKey.get(Un(String(r)))??[],o=e?GH(e):null;return o?t.filter(n=>n.startsWith(o+".")):[...t]}function uae(r){return!ol.lookup||!r?null:ol.lookup.provinceOfCode.get(r)??null}function cae(r){return!ol.lookup||!r?null:ol.lookup.centers?.get(String(r).trim().toUpperCase())??null}function r7(r,e={}){if(!ol.lookup||!r)return{status:"unmatched"};let t=String(r).trim();if(!t)return{status:"unmatched"};if(ol.lookup.provinceIds.has(t.toUpperCase()))return{status:"resolved",provinceId:t.toUpperCase()};let o=ol.lookup.provinceOfCode.get(t.toUpperCase());if(o)return{status:"resolved",provinceId:o};let n=[...new Set(lae(t,e.country??null).map(uae).filter(i=>!!i))];if(n.length>1&&e.region){let i=n.filter(a=>FH(a.split("-")[0])===e.region);i.length&&(n=i)}return n.length===1?{status:"resolved",provinceId:n[0]}:n.length?{status:"ambiguous",candidates:n.length}:{status:"unmatched"}}var hae={"north-america":"N",world:"W"};function VH(r,e){let t=r.filter(o=>o.row.kinds.includes(hae[e||"north-america"]));return t.length?t:(e||"north-america")==="world"?r:t}var HH=Wie;function mae(){return HH.length>0}var pae={US:"washington",CA:"ottawa",MX:"mexico city",GB:"london",FR:"paris",DE:"berlin",IT:"rome",ES:"madrid",PT:"lisbon",NL:"amsterdam",BE:"brussels",CH:"bern",AT:"vienna",IE:"dublin",PL:"warsaw",SE:"stockholm",NO:"oslo",DK:"copenhagen",FI:"helsinki",IS:"reykjavik",CZ:"prague",SK:"bratislava",HU:"budapest",RO:"bucharest",BG:"sofia",GR:"athens",TR:"ankara",UA:"kyiv",RU:"moscow",RS:"belgrade",HR:"zagreb",SI:"ljubljana",EE:"tallinn",LV:"riga",LT:"vilnius",JP:"tokyo",CN:"beijing",KR:"seoul",KP:"pyongyang",IN:"new delhi",PK:"islamabad",BD:"dhaka",LK:"colombo",TH:"bangkok",VN:"hanoi",PH:"manila",ID:"jakarta",MY:"kuala lumpur",SG:"singapore",MM:"naypyidaw",KH:"phnom penh",LA:"vientiane",NP:"kathmandu",AF:"kabul",IR:"tehran",IQ:"baghdad",SA:"riyadh",AE:"abu dhabi",QA:"doha",KW:"kuwait city",BH:"manama",OM:"muscat",JO:"amman",LB:"beirut",SY:"damascus",IL:"jerusalem",YE:"sanaa",EG:"cairo",LY:"tripoli",TN:"tunis",DZ:"algiers",MA:"rabat",SD:"khartoum",ET:"addis ababa",KE:"nairobi",TZ:"dodoma",UG:"kampala",NG:"abuja",GH:"accra",CI:"yamoussoukro",SN:"dakar",ML:"bamako",CM:"yaounde",CD:"kinshasa",CG:"brazzaville",AO:"luanda",ZM:"lusaka",ZW:"harare",MZ:"maputo",BW:"gaborone",NA:"windhoek",ZA:"pretoria",AU:"canberra",NZ:"wellington",PG:"port moresby",FJ:"suva",BR:"brasilia",AR:"buenos aires",CL:"santiago",PE:"lima",CO:"bogota",VE:"caracas",EC:"quito",BO:"la paz",PY:"asuncion",UY:"montevideo",GY:"georgetown",SR:"paramaribo",CU:"havana",DO:"santo domingo",HT:"port au prince",JM:"kingston",TT:"port of spain",PA:"panama city",CR:"san jose",NI:"managua",HN:"tegucigalpa",SV:"san salvador",GT:"guatemala city",BZ:"belmopan",AZ:"baku",AM:"yerevan",GE:"tbilisi",KZ:"astana",UZ:"tashkent",TM:"ashgabat",KG:"bishkek",TJ:"dushanbe",MN:"ulaanbaatar",BY:"minsk",MD:"chisinau",AL:"tirana",MK:"skopje",BA:"sarajevo",ME:"podgorica",XK:"pristina",CY:"nicosia",MT:"valletta",LU:"luxembourg"},rk=null;function $w(){if(rk)return rk;let r=new Map,e=HH,t=(o,n,i)=>{if(!o)return;let a=r.get(o);a?a.some(s=>s.row===n)||a.push({row:n,primary:i}):r.set(o,[{row:n,primary:i}])};for(let o of e.split(",")){let n=o.split("|");if(n.length<7)continue;let i={a1:n[1],cc:n[2],lon:+n[3],lat:+n[4],pop:+n[5],kinds:n[6]||"N"};n.length>8&&n[8]&&(i.tags=n[8].split(";").filter(Boolean));let a=pae[i.cc];if(a&&vS(n[0])===vS(a)&&(i.tags||(i.tags=[]),i.tags.includes("capital")||i.tags.push("capital")),t(Un(n[0]),i,!0),n.length>7&&n[7])for(let s of n[7].split(";"))t(Un(s),i,!1)}for(let o of r.values())o.sort((n,i)=>i.row.pop-n.row.pop);return rk=r,r}var dae=200,ok=null;function zH(){if(ok)return ok;let r=new Map;for(let[e,t]of $w()){if(!e.endsWith(" city"))continue;let o=e.slice(0,-5);!o||$w().get(o)?.some(n=>n.primary)||t[0].row.pop<dae||r.set(o,t)}return ok=r,r}function jH(r,e){if(!r)return;let t=CH($w(),zH(),r);if(t)return t;if(xS(r))return;let o=e??vS(r);if(t7(o))return CH(yae(),fae(),o)}function CH(r,e,t){let o=r.get(t);if(o?.some(a=>a.primary))return o;let n=e.get(t);if(!n)return o;let i=n.map(a=>({row:a.row,primary:!0}));return o?[...i,...o]:i}var nk=null;function yae(){return nk||(nk=XH($w())),nk}var ik=null;function fae(){return ik||(ik=XH(zH())),ik}function XH(r){let e=new Map;for(let[t,o]of r){let n=vS(t);if(!t7(n))continue;let i=e.get(n);if(!i){e.set(n,o.slice());continue}for(let a of o){let s=i.findIndex(l=>l.row===a.row);s<0?i.push(a):a.primary&&!i[s].primary&&(i[s]=a)}}for(let t of e.values())t.sort((o,n)=>n.row.pop-o.row.pop);return e}var ak=null;function gae(){if(ak)return ak;let r=new Map;for(let t of jie.split(",")){let o=t.split("|");o.length<3||r.set(o[0],{lon:+o[1],lat:+o[2]})}let e=new Map;for(let t of $w().values())for(let o of t){let n=qw(o.row.cc);if(!n)continue;let i=e.get(n);(i===void 0||o.row.pop>i)&&(e.set(n,o.row.pop),r.set(n,{lon:o.row.lon,lat:o.row.lat}))}return ak=r,r}var sk=null;function n7(){if(sk)return sk;let r=new Map;for(let e of Hie.split(",")){let t=e.split("|");if(t.length<5)continue;let o={key:t[0],cc:t[1],name:t[2],lon:+t[3],lat:+t[4]};r.set(Un(o.key),o);let n=Un(o.name);n==="mexico"&&o.cc==="MX"?(r.set("estado de mexico",o),r.set("edomex",o)):r.set(n,o)}return sk=r,r}var lk=null;function bae(){if(lk)return lk;let r=new Ak;for(let[e,t]of n7())r.add(e,t);return lk=r,r}var uk=null;function Sae(){if(uk)return uk;let r=new Map;for(let e of zie.split(",")){let t=e.split("|");t.length<3||r.set(t[0],{lon:+t[1],lat:+t[2]})}return uk=r,r}var Aae=new Set(["USA","PRI","VIR","GUM","ASM","MNP"]),Pk=new Set(["USA","CAN","MEX"]);function kH(r,e){return e!=="north-america"||!!r&&Pk.has(r)}function NS(r){if(r==null)return null;let e=Un(String(r));if(!e)return null;let t=n7().get(e);return t?t.key:xS(e)?null:bae().get(o7(String(r)))?.key??null}function wae(r){return n7().get(Un(r))?.cc??null}function Pae(r){let e=wae(r);return e?qw(e):null}function KH(r){if(r==null)return null;let e=String(r).trim().replace(/\.0+$/,"");if(!e)return null;let t=/^(\d{5})(-\d{4})?$/.exec(e);return t?t[1]:/^\d{3,4}$/.test(e)?e.padStart(5,"0"):null}function vk(r){if(r==null)return[];let e=String(r).trim().replace(/\.0+$/,"");if(!e)return[];if(/^\d{3}$/.test(e)){let o=e.padStart(5,"0").slice(0,3);return o===e?[e]:[e,o]}let t=KH(e);return t?[t.slice(0,3)]:[]}function vae(r){return!!r&&r.ambiguous===!0&&!("precision"in r)}function Nae(r){let e=null,t=typeof r.lat=="string"?r.lat.trim():r.lat,o=typeof r.lon=="string"?r.lon.trim():r.lon;if(t!=null&&t!==""&&o!==void 0&&o!==null&&o!==""){let a=+t,s=+o;if(isFinite(a)&&isFinite(s)&&a>=-90&&a<=90&&s>=-180&&s<=180)if(a===0&&s===0)e={lat:0,lon:0,precision:"latlon"};else return{lat:a,lon:s,precision:"latlon"}}let n=bf(r.country),i=NS(r.state);if(i&&n&&Pae(i)!==n&&(i=null),i&&r.region&&r.region!=="north-america"&&(i=null),r.city!==void 0&&r.city!==null){let a=Un(String(r.city)),s=jH(a,o7(String(r.city))),l=s?VH(s,r.mapKind):null;if(l&&l.length){let u=r.state===void 0||r.state===null?"":String(r.state).trim(),c=u?Un(u):"",h=u?NS(u):null,m=[],p=-1;for(let d of l){let f=d.row,b=0;if(u&&f.a1!=="")if(h&&f.a1===h||Un(f.a1)===c)b++;else continue;if(n)if(qw(f.cc)===n)b++;else continue;b>p?(p=b,m=[d]):b===p&&m.push(d)}m.some(d=>d.primary)&&(m=m.filter(d=>d.primary));let g=new Map;for(let d of m)g.set(d.row.lon.toFixed(2)+","+d.row.lat.toFixed(2),d.row);if(g.size===1){let d=m[0].row;return{lat:d.lat,lon:d.lon,precision:"city"}}if(g.size>1)return{ambiguous:!0,matches:g.size}}if(yk()){let u=sae(String(r.city),{country:r.country??null,region:r.region??null});if(u.status==="ambiguous")return{ambiguous:!0,matches:u.candidates};if(u.status==="resolved"&&kH(qw(u.cc),r.mapKind)){let c=r.state===void 0||r.state===null?"":String(r.state).trim(),h=c?r7(c,{country:r.country??null,region:r.region??null}):null;if(!h||h.status==="resolved"&&h.provinceId===u.provinceId)return{lat:u.lat,lon:u.lon,precision:"city"}}}}if(!n||Aae.has(n))for(let a of vk(r.zip)){let s=Sae().get(a);if(s)return{lat:s.lat,lon:s.lon,precision:"zip3"}}if(i){let a=n7().get(Un(i));if(a)return{lat:a.lat,lon:a.lon,precision:"state"}}if(!i&&r.state!==void 0&&r.state!==null&&String(r.state).trim()&&yk()){let a=r7(String(r.state),{country:r.country??null,region:r.region??null});if(a.status==="ambiguous")return{ambiguous:!0,matches:a.candidates};if(a.status==="resolved"){let s=qw(a.provinceId.split("-")[0]),l=cae(a.provinceId);if(l&&(!n||s===n)&&kH(s,r.mapKind))return{lat:l[1],lon:l[0],precision:"state"}}}if(n&&(r.mapKind!=="north-america"||Pk.has(n))){let a=gae().get(n);if(a)return{lat:a.lat,lon:a.lon,precision:"country"}}return e}var e7={latlon:0,city:1,zip3:2,state:3,country:4},MH=8;function YH(r,e,t){let o=new Array(r.length),n=new Array(r.length),i=new Array(r.length),a=new Set,s=[],l=new Set,u=[],c=new Set,h=[],m={latlon:0,city:0,zip3:0,state:0,country:0},p=0,g=0,d=null;for(let b=0;b<r.length;++b){let w=r[b],P=Nae({...w,mapKind:e,region:t});if(vae(P)){o[b]=null,n[b]=null,i[b]=null,g++;let A=ck(w);A&&!c.has(A.toLowerCase())&&(c.add(A.toLowerCase()),h.length<MH&&h.push(A))}else if(P){if(o[b]=P.lat,n[b]=P.lon,i[b]=P.precision,p++,m[P.precision]++,(d===null||e7[P.precision]>e7[d])&&(d=P.precision),e7[P.precision]>e7.city){let A=ck(w);A&&!l.has(A.toLowerCase())&&(l.add(A.toLowerCase()),u.length<MH&&u.push(A))}}else{o[b]=null,n[b]=null,i[b]=null;let A=ck(w);A&&!a.has(A.toLowerCase())&&(a.add(A.toLowerCase()),s.push(A))}}let f=!mae()&&r.some(b=>b.city!==null&&b.city!==void 0&&String(b.city).trim()!=="");return{lat:o,lon:n,precisions:i,precision:d,precisionCounts:m,coarseExamples:u,unmatched:s,ambiguousRows:g,ambiguousExamples:h,matchedRows:p,totalRows:r.length,...f?{cityTableMissing:!0}:{}}}function ck(r){return[r.city,r.state,r.zip,r.country].filter(t=>t!=null&&String(t).trim()!=="").map(t=>String(t).trim()).join(", ")||(r.label===null||r.label===void 0?"":String(r.label).trim())}function qH(r,e){if(!r)return!1;let t=jH(r);return t?VH(t,e).length>0:!1}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var xae="006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999",Eae=new Set(xae.match(/.{3}/g)??[]),JH=[["AL","Alabama"],["AK","Alaska"],["AZ","Arizona"],["AR","Arkansas"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DE","Delaware"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["IA","Iowa"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["ME","Maine"],["MD","Maryland"],["MA","Massachusetts"],["MI","Michigan"],["MN","Minnesota"],["MS","Mississippi"],["MO","Missouri"],["MT","Montana"],["NE","Nebraska"],["NV","Nevada"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NY","New York"],["NC","North Carolina"],["ND","North Dakota"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VT","Vermont"],["VA","Virginia"],["WA","Washington"],["WV","West Virginia"],["WI","Wisconsin"],["WY","Wyoming"],["DC","District of Columbia"],["PR","Puerto Rico"],["GU","Guam"],["VI","U.S. Virgin Islands"],["AS","American Samoa"],["MP","Northern Mariana Islands"]],Cae=new Set(JH.map(r=>r[0])),kae={"Ala.":"AL","Alab.":"AL","Ariz.":"AZ","Ark.":"AR","Calif.":"CA","Cal.":"CA","Colo.":"CO","Col.":"CO","Conn.":"CT","Del.":"DE","Fla.":"FL","Flor.":"FL","Ga.":"GA","Ill.":"IL","Ind.":"IN","Kan.":"KS","Kans.":"KS","Ky.":"KY","La.":"LA","Md.":"MD","Mass.":"MA","Mich.":"MI","Minn.":"MN","Miss.":"MS","Mo.":"MO","Mont.":"MT","Neb.":"NE","Nebr.":"NE","Nev.":"NV","N.H.":"NH","N.J.":"NJ","N.M.":"NM","N.Mex.":"NM","N. Mex.":"NM","N.Y.":"NY","N.C.":"NC","N.D.":"ND","N.Dak.":"ND","N. Dak.":"ND","Okla.":"OK","Ore.":"OR","Oreg.":"OR","Pa.":"PA","Penn.":"PA","Penna.":"PA","R.I.":"RI","S.C.":"SC","S.D.":"SD","S.Dak.":"SD","S. Dak.":"SD","Tenn.":"TN","Tex.":"TX","Vt.":"VT","Va.":"VA","Wash.":"WA","W.Va.":"WV","W. Va.":"WV","Wis.":"WI","Wisc.":"WI","Wyo.":"WY","D.C.":"DC","Wash. D.C.":"DC","Wash., D.C.":"DC","P.R.":"PR","V.I.":"VI"},$H=(()=>{let r=new Map;for(let[e,t]of JH)r.set(PS(t),e);r.set(PS("Washington DC"),"DC"),r.set(PS("Washington D.C."),"DC"),r.set(PS("US Virgin Islands"),"VI");for(let[e,t]of Object.entries(kae)){let o=PS(e);o&&!r.has(o)&&r.set(o,t)}return r})(),Mae=(()=>{let r=new Ak;for(let[e,t]of $H)r.add(e,t);return r})();function Tae(r){let e=PS(r);return $H.get(e)||(xS(e)?null:Mae.get(o7(r))??null)}var Wae=new Set(["01","02","04","05","06","08","09","10","11","12","13","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","53","54","55","56","60","66","69","72","78"]);function Lae(r){return r.trim().toUpperCase()}function PS(r){return Un(r)}var Iae=new Set(["zip","zipcode","postal","postcode","plz"]);function Rae(r,e){if(!r)return!1;for(let t of Bie(r))if(e.has(t))return!0;return!1}function _ae(r,e){if(r==null)return null;let t=String(r).trim();if(t.length===0)return null;switch(e){case"country-iso3":case"country-iso2":case"country-name":return bf(t);case"us-state-code":case"us-state-name":{let o=Lae(t);return Cae.has(o)?o:Tae(t)}case"us-zip5":return KH(t);case"us-county-fips":return/^\d{5}$/.test(t)&&Wae.has(t.slice(0,2))?t:null;default:return null}}function QH(r){switch(r){case"country-iso3":case"country-iso2":case"country-name":case"us-state-code":case"us-state-name":case"us-zip5":case"us-county-fips":return!0;default:return!1}}function Uae(r,e){return e==="us-zip5"?Eae.has(r.slice(0,3)):!0}function ZH(r,e){let t=new Array(r.length),o=new Set,n=[],i=0;for(let a=0;a<r.length;++a){let s=_ae(r[a],e),l=s!==null&&Uae(s,e)?s:null;if(t[a]=l,l!==null)i++;else{let u=r[a];if(u!=null){let c=String(u).trim();if(c.length>0){let h=c.toLowerCase();o.has(h)||(o.add(h),n.push(c))}}}}return{iso:t,unmatched:n,matchedRows:i,totalRows:r.length}}var L1t=NH(Tie(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Bae=["rate","ratio","pct","percent","percentage","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","z[_-]?score","average","avg","mean","median","stddev","variance","gpa","percentile","quantile","efficiency","accuracy","probability","multiplier","coefficient","correlation","occupancy","age","bmi","temperature","density","pressure","humidity","ph","velocity","speed","elevation","altitude","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps","capita","temperatuur","temperatur","temperatura","teplota","lampotila","homerseklet","sicaklik","pression","presion","pressao","pressione","druck","tryck","tlak","paine","nyomas","presiune","humidite","humedad","umidade","umidita","feuchtigkeit","vochtigheid","kosteus","vlhkost","vitesse","velocidad","velocidade","velocita","geschwindigkeit","snelheid","hastighet","hastighed","rychlost","nopeus","sebesseg","brzina","predkosc","densite","densidad","densidade","densita","dichte","dichtheid","hustota","tiheys","gustoca","moyenne","mediane","promedio","mediana","gemiddelde","durchschnitt","mittelwert","genomsnitt","gennemsnit","gjennomsnitt","keskiarvo","atlag","ortalama","prosjek","srednia","prumer","priemer","medie","taux","tasa","taxa","tasso","verhaltnis","verhouding","aandeel","anteil","andel","osuus","podil","udzial","udio","pourcentage","porcentaje","percentual","prozent","procent","prosentti","szazalek","yuzde","participacion","participacao","pondere","omjer","arany","oran","rata","leeftijd","edad","idade","wiek","eletkor","varsta","puntuacion","pontuacao","punteggio","betyg","ocena","indice","indeks","wskaznik","puan","ocupacion","ocupacao","occupazione","auslastung","bezetting","belaggning","belaegning","belegg","kayttoaste","oblozenie","obsazenost","obsadenost","kihasznaltsag","doluluk","ocupare","popunjenost","efficacite","eficiencia","efficienza","effizienz","effectiviteit","verimlilik"],Dae=["pct","percent","percentage","rate","ratio","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","gpa","percentile","quantile","bmi","density","pressure","humidity","velocity","efficiency","occupancy","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps"],Oae=["latitude","longitude"],Fae=["latitude","longitude"];var Gae=["somme de","suma de","soma de","summe von","som van","somma di","summa av","sum av","sum af","soucet z","suma z","totaal van","total de","toplam","osszeg","nombre de","recuento de","contagem de","anzahl von","aantal van","conteggio di","antal av","lukumaara","pocet z","sum pa","\u0441\u0443\u043C\u043C\u0430","\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E","\u0441\u0443\u043C\u0430","\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C","\u03B1\u03B8\u03C1\u03BF\u03B9\u03C3\u03BC\u03B1","\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2"],Vae=["osszege","sucet","\u7684\u603B\u548C","\u7684\u8BA1\u6570","\u306E\u5408\u8A08","\uC758 \uD569\uACC4"],Hae=["atlaga","priemer","\u7684\u5E73\u5747\u503C","\u306E\u5E73\u5747","\uC758 \uD3C9\uADE0"],I1t=Object.freeze({"nombre de":"count","recuento de":"count","contagem de":"count","anzahl von":"count","aantal van":"count","conteggio di":"count","antal av":"count",lukumaara:"count","pocet z":"count",\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"count",\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C:"count",\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2:"count",\u7684\u8BA1\u6570:"count","minimum de":"min","minimo de":"min","minimo di":"min","minimum von":"min","maximum de":"max","maximo de":"max","massimo di":"max","maximum von":"max"});function fk(r){return[...r].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")}var R1t=new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:"+fk(Gae)+")\\s+)","i");function TH(r){for(let e of r){let t=e.codePointAt(0)??0;if(t>=11904&&t<=40959||t>=44032&&t<=55215)return!0}return!1}var zae="[\u2013\u2014-]";function ez(r){let e=r.filter(n=>!TH(n)),t=r.filter(TH),o=[];return e.length&&o.push("(?:\\s+|\\s*"+zae+"\\s*)("+fk(e)+")"),t.length&&o.push("\\s*("+fk(t)+")"),new RegExp("(?:"+o.join("|")+")\\s*$","i")}var _1t=ez(Vae),U1t=ez(Hae);var B1t=new RegExp("\\b("+Bae.join("|")+")\\b|("+Dae.join("|")+")$","i"),D1t=new RegExp("\\b("+Oae.join("|")+")\\b|("+Fae.join("|")+")$","i");var jae=["count (distinct)","count distinct","distinct count","standard deviation","average","variance","median","product","stddev","std dev","count","sum","avg","min","minimum","max","maximum","var"],O1t=new RegExp("^\\s*("+[...jae].sort((r,e)=>e.length-r.length).map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")+")\\s+of\\s+","i"),Xae={Sum:["Sum of "],Avg:["Average of "],Average:["Average of "],Count:["Count of "],CountNonNull:["Count of "],Min:["Min of ","First ","Earliest "],Max:["Max of ","Last ","Latest "],Median:["Median of "],StandardDeviation:["Standard deviation of "],Variance:["Variance of "]},F1t=new RegExp("^("+Object.keys(Xae).join("|")+")\\((.+)\\)$");var G1t=new RegExp([String.raw`\bisMeasure\b`,String.raw`\bdataType\b`,String.raw`\bcolumns\s*\[\s*-?\d`,String.raw`\.iloc\s*\[[^\]]*,`,String.raw`\.iat\s*\[`,String.raw`\bselect_dtypes\b`,String.raw`\b_get_numeric_data\b`,String.raw`\bis_numeric_dtype\b`,String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`,String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`,String.raw`\bdf\.dtypes\b`,String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`,String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var hk=2,tz=400;function gk(r){return!!bf(r)}function ES(r){let e=new Set;for(let t of r){if(t==null)continue;let o=Un(String(t));if(!xS(o)&&!e.has(o)&&(e.add(o),e.size>=tz))break}return Array.from(e)}function Yw(r){let e=ES(r);if(e.length===0||bk(r)<95)return!1;let t=e.filter(n=>gk(n)&&!NS(n)).length,o=e.filter(n=>!gk(n)&&!!NS(n)).length;return t>=1&&t>=o}function WH(r,e){if(!NS(r))return!1;let t=bf(r);return t?e==="world"?!0:Pk.has(t):!1}function bk(r){let e=ES(r);if(e.length===0)return 0;let t=0;for(let o of e)gk(o)&&t++;return Math.round(t/e.length*1e3)/10}function Sk(r){return NS(r)?!0:yk()?r7(r).status!=="unmatched"||r7(r.trim().replace(/\s+/g,"-")).status!=="unmatched":!1}function mk(r){let e=ES(r);if(e.length===0)return 0;let t=0;for(let o of e)Sk(o)&&t++;return Math.round(t/e.length*1e3)/10}function Nk(r){let e=new Set;for(let t of r){if(t==null)continue;let o=String(t).trim();if(!xS(Un(o))&&!e.has(o)&&(e.add(o),e.size>=tz))break}return Array.from(e)}function LH(r){let e=Nk(r);if(e.length===0)return 0;let t=0;for(let o of e)vk(o).length>0&&t++;return Math.round(t/e.length*1e3)/10}function IH(r,e){return Rae(e,Iae)?!0:Nk(r).some(t=>/^\d{5}(-\d{4})?$/.test(t.replace(/\.0+$/,"")))}function Kae(r,e){let t=ES(r);if(t.length===0)return 0;let o=0;for(let n of t)qH(n,e)&&o++;return Math.round(o/t.length*1e3)/10}function pk(r,e){let t=0;for(let o of ES(r))e(o)&&t++;return t}function Yae(r,e){let t=0;for(let o of Nk(r))e(o)&&t++;return t}function rz(r,e,t,o,n){let i=[],a=[],s={},l={},u=new Set(r),c=E=>e.map(U=>U[E]);for(let E of["city","country"]){let U=t?.[E];U&&u.has(U)&&(s[E]=U)}let h=new Set(n??r);for(let E of["lat","lon"]){let U=t?.[E];U&&h.has(U)&&(s[E]=U)}let m=t?.zip;if(m&&u.has(m)){let E=c(m),U=LH(E);U<95?a.push(`zip=${m} (only ${U}% of values read as ZIPs)`):IH(E,m)?s.zip=m:a.push(`zip=${m} (all values are 3-4 digits with nothing to say they are postal)`)}let p=t?.state;if(p&&u.has(p)){let E=c(p),U=ES(E);U.length>0&&U.every(F=>WH(F,o))?a.push(`state=${p} (every value is "CA", which is both Canada and California)`):Yw(E)?(a.push(`state=${p} (every value is a country, not a state)`),s.country||(s.country=p)):mk(E)<95?a.push(`state=${p} (only ${mk(E)}% of values are states/provinces)`):s.state=p}let g=new Set(Object.values(s).filter(Boolean)),d=r.filter(E=>!g.has(E)&&!E.startsWith("__"));if(!s.state){let E=null;for(let U of d){let F=c(U);if(Yw(F))continue;let L=mk(F);if(L<95)continue;let T=pk(F,Sk),v=pk(F,I=>Sk(I)&&!WH(I,o));T<hk&&v<1||(!E||L>E.pct)&&(E={name:U,pct:L})}E&&(s.state=E.name,g.add(E.name),i.push(`state=${E.name} (${E.pct}% states/provinces)`))}if(!s.zip)for(let E of d){if(g.has(E))continue;let U=c(E),F=LH(U);if(!(F<95)&&IH(U,E)&&!(Yae(U,L=>vk(L).length>0)<hk)){s.zip=E,g.add(E),i.push(`zip=${E} (${F}% ZIP codes)`);break}}let f=s.country;if(!f||!Yw(c(f))){let E=null;for(let U of d){if(g.has(U)||!Yw(c(U)))continue;let F=bk(c(U));(!E||F>E.pct)&&(E={name:U,pct:F})}E&&(f&&(a.push(`country=${f} (only ${bk(c(f))}% of values are country identifiers; using ${E.name} instead)`),l.country=f),s.country=E.name,g.add(E.name),i.push(`country=${E.name}`))}if(!s.city){let E=null;for(let U of d){if(g.has(U))continue;let F=c(U),L=Kae(F,o);L<Kie||pk(F,T=>qH(T,o))<hk||(!E||L>E.pct)&&(E={name:U,pct:L})}E&&(s.city=E.name,i.push(`city=${E.name} (${E.pct}% known cities)`))}let b=s.country?c(s.country):[],w=!!s.country&&Yw(b),P=w?new Set(b.map(E=>bf(E==null?null:String(E))).filter(Boolean)).size:0,A=w&&P>=2,M=!!(s.lat&&s.lon)&&e.some(E=>{let U=+String(E[s.lat]??"").trim(),F=+String(E[s.lon]??"").trim();return isFinite(U)&&isFinite(F)&&U>=-90&&U<=90&&F>=-180&&F<=180&&String(E[s.lat]??"").trim()!==""&&String(E[s.lon]??"").trim()!==""});return s.lat&&s.lon&&!M&&a.push(`lat/lon=${s.lat}/${s.lon} (no row holds a usable coordinate pair)`),s.country&&!A&&!(s.city||s.state||s.zip||M)&&a.push(w?`country=${s.country} (every row resolves to the same country - nothing to place apart)`:`country=${s.country} (values are not country identifiers)`),{bind:s.city||s.state||s.zip||A||M?s:null,backfilled:i,refused:a,...Object.keys(l).length?{labelFallback:l}:{}}}var He=(r,...e)=>({part:r,langs:Object.freeze(e)}),qae=Object.freeze({jaar:He("year","nl"),kwartaal:He("quarter","nl"),maand:He("month","nl"),dag:He("day","nl","sv","da","nb"),jahr:He("year","de"),quartal:He("quarter","de"),monat:He("month","de"),tag:He("day","de"),ann\u00E9e:He("year","fr"),mois:He("month","fr"),jour:He("day","fr"),trimestre:He("quarter","fr","es","pt","it"),a\u00F1o:He("year","es"),mes:He("month","es"),d\u00EDa:He("day","es"),ano:He("year","pt"),m\u00EAs:He("month","pt"),dia:He("day","pt"),anno:He("year","it"),mese:He("month","it"),giorno:He("day","it"),\u0433\u043E\u0434:He("year","ru"),\u043C\u0435\u0441\u044F\u0446:He("month","ru"),\u0440\u0456\u043A:He("year","uk"),\u043C\u0456\u0441\u044F\u0446\u044C:He("month","uk"),\u043A\u0432\u0430\u0440\u0442\u0430\u043B:He("quarter","ru","uk"),\u0434\u0435\u043D\u044C:He("day","ru","uk"),rok:He("year","pl","cs","sk"),kwarta\u0142:He("quarter","pl"),miesi\u0105c:He("month","pl"),dzie\u0144:He("day","pl"),\u010Dtvrtlet\u00ED:He("quarter","cs"),m\u011Bs\u00EDc:He("month","cs"),den:He("day","cs"),\u0161tvr\u0165rok:He("quarter","sk"),mesiac:He("month","sk"),de\u0148:He("day","sk"),\u00E5r:He("year","sv","da","nb"),kvartal:He("quarter","sv","da","nb"),m\u00E5nad:He("month","sv"),m\u00E5ned:He("month","da","nb"),vuosi:He("year","fi"),vuosinelj\u00E4nnes:He("quarter","fi"),kuukausi:He("month","fi"),p\u00E4iv\u00E4:He("day","fi"),\u00E9v:He("year","hu"),negyed\u00E9v:He("quarter","hu"),h\u00F3nap:He("month","hu"),nap:He("day","hu"),y\u0131l:He("year","tr"),\u00E7eyrek:He("quarter","tr"),ay:He("month","tr"),g\u00FCn:He("day","tr"),\u03AD\u03C4\u03BF\u03C2:He("year","el"),\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF:He("quarter","el"),\u03BC\u03AE\u03BD\u03B1\u03C2:He("month","el"),\u03B7\u03BC\u03AD\u03C1\u03B1:He("day","el"),an:He("year","ro"),trimestru:He("quarter","ro"),lun\u0103:He("month","ro"),zi:He("day","ro"),godina:He("year","hr"),tromjese\u010Dje:He("quarter","hr"),mjesec:He("month","hr"),dan:He("day","hr"),\u5E74:He("year","ja","zh"),\u56DB\u534A\u671F:He("quarter","ja"),\u5B63\u5EA6:He("quarter","zh"),\u6708:He("month","ja","zh"),\u65E5:He("day","ja","zh"),\uC5F0\uB3C4:He("year","ko"),\uBD84\uAE30:He("quarter","ko"),\uC6D4:He("month","ko"),\uC77C:He("day","ko"),tahun:He("year","id"),kuartal:He("quarter","id"),triwulan:He("quarter","id"),bulan:He("month","id"),hari:He("day","id"),n\u0103m:He("year","vi"),qu\u00FD:He("quarter","vi"),th\u00E1ng:He("month","vi"),ng\u00E0y:He("day","vi"),\u0E1B\u0E35:He("year","th"),\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A:He("quarter","th"),\u0E40\u0E14\u0E37\u0E2D\u0E19:He("month","th"),\u0E27\u0E31\u0E19:He("day","th"),\u0627\u0644\u0633\u0646\u0629:He("year","ar"),\u0633\u0646\u0629:He("year","ar"),\u0627\u0644\u0639\u0627\u0645:He("year","ar"),\u0639\u0627\u0645:He("year","ar"),\u0627\u0644\u0631\u0628\u0639:He("quarter","ar"),\u0631\u0628\u0639:He("quarter","ar"),"\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629":He("quarter","ar"),\u0627\u0644\u0634\u0647\u0631:He("month","ar"),\u0634\u0647\u0631:He("month","ar"),\u0627\u0644\u064A\u0648\u0645:He("day","ar"),\u064A\u0648\u0645:He("day","ar"),\u05E9\u05E0\u05D4:He("year","he"),\u05E8\u05D1\u05E2\u05D5\u05DF:He("quarter","he"),\u05D7\u05D5\u05D3\u05E9:He("month","he"),\u05D9\u05D5\u05DD:He("day","he"),\u0935\u0930\u094D\u0937:He("year","hi"),\u0938\u093E\u0932:He("year","hi"),\u0924\u093F\u092E\u093E\u0939\u0940:He("quarter","hi"),\u092E\u0939\u0940\u0928\u093E:He("month","hi"),\u092E\u093E\u0939:He("month","hi"),\u0926\u093F\u0928:He("day","hi"),\u0633\u0627\u0644:He("year","fa"),\u0645\u0627\u0647:He("month","fa"),\u0631\u0648\u0632:He("day","fa")}),V1t=Object.freeze(Array.from(new Set(Object.values(qae).flatMap(r=>r.langs)))),H1t=Object.freeze(["fa","ar","he","th"]),z1t=Object.freeze({integer:"number",decimal:"number",double:"number",datetime:"date",date:"date",boolean:"boolean",string:"text"}),j1t=Object.freeze({RENDER_START:"render-start",RENDER_OK:"render-ok",RENDER_ERROR:"render-error",VIEW:"view",VIEW_VERDICT:"view-verdict",REDRAW:"redraw",INTERACT:"interact"}),X1t=Object.freeze(["open","generate","version","rebind","data","sample","fix","resize","other"]),K1t=2**31-1;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var i7="1.20.0";var Qo="d3-mark",ql="d3-legend-mark",Pc="d3-axis-filter",Qw="d3-lift-selected",$p="lch-control",to="data-row-idx",a7="data-bic-note-style",s7="data-lch-sel-rule",xk="clicked-marks",Ek="data-mark-key",Ck="data-lch-no-row-marks",Zw="data-lch-snapshot",eP="llm-xfilter-refresh",l7="__llmAnimStop",tP="__llmXfClear",kk="__llmInitialXfMark",u7="__lchUiState",CS="__lchScroll",c7="__lchClickedMarks",Jae=Object.freeze(["camera","llmZoom"]);var Va="bic-chart-host",kS="lch-has-selection",$h="lch-mark-selected",Sf="lch-tick-active",Qp="--lch-dim-opacity",Mk=.25,Tk=.01;function Wk(r){return!!r&&(!!r[tP]||!!r[l7])}function Lk(r,e){return r&&e}var h7=1e3,m7=250,p7=5e3,d7=3,y7=0,f7=60,g7=3,b7=500;var Ik=95,Rk=50,_k=100,S7="both";var oz=12e4,A7="horizontal",Uk="mark",w7="fit",P7="auto",v7=2e3;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */function Dk(r){if(!r)return[];let e=r.getAttribute("data-row-idx");if(!e)return[];let t=[];for(let o of e.split(",")){let n=parseInt(o.trim(),10);!isNaN(n)&&n>=0&&t.push(n)}return t}var $ae=25e4;function nz(r){if(!Array.isArray(r))return[];let e=new Set,t=[];for(let o of r)if(!(typeof o!="number"||!Number.isSafeInteger(o)||o<0||e.has(o))&&(e.add(o),t.push(o||0),t.length>=$ae))break;return t}function iz(r,e,t={}){let o=Array.from(r??[]);if(t.ctrl||t.shift){let i=new Set(o);for(let a of e)i.has(a)?i.delete(a):i.add(a);return Array.from(i)}return o.length===e.length&&e.every(i=>o.includes(i))?[]:e.slice()}function az(r){try{return r?.querySelector?.(`[${s7}]`)?.getAttribute(s7)===xk?"clicked-marks":"any-row"}catch{return"any-row"}}function Ok(r){if(!r)return"";let e=r.getAttribute(Ek);return e!=null&&e!==""?e:"rows:"+(r.getAttribute(to)||"").replace(/\s+/g,"")}var Bk=r=>new Set(Array.from(r??[]));function rP(r,e){let t=Bk(r),o=Bk(e);if(t.size!==o.size)return!1;for(let n of t)if(!o.has(n))return!1;return!0}function sz(r,e,t,o){let n=Bk(e);if(n.size===0)return{on:r.map(()=>!1),mode:"none",keys:[]};let i=()=>r.map(s=>s.rows.some(l=>n.has(l)));if(t!=="clicked-marks")return{on:i(),mode:"any-row",keys:[]};if(o&&o.keys.length&&rP(o.selection,n)){let s=new Set(o.keys),l=r.map(u=>u.rows.length>0&&s.has(u.key));if(l.some(Boolean))return{on:l,mode:"clicked",keys:r.filter((u,c)=>l[c]).map(u=>u.key)}}let a=r.map(s=>s.rows.length>0&&rP(s.rows,n));return a.some(Boolean)?{on:a,mode:"exact",keys:r.filter((s,l)=>a[l]).map(s=>s.key)}:{on:i(),mode:"fallback-any-row",keys:[]}}function lz(r,e,t,o,n={}){if(!o.length)return null;if(!(n.ctrl||n.shift))return{keys:[t],selection:o.slice()};let i=r&&rP(r.selection,e)?r.keys:[];return{keys:i.includes(t)?i.filter(s=>s!==t):[...i,t],selection:o.slice()}}function N7(r,e){let t=r;for(t&&t.nodeType!==1&&(t=t.parentElement??t.parentNode??null);t&&t!==e;){if(t.nodeType===1&&t.classList?.contains?.($p))return!0;t=t.parentElement??t.parentNode??null}return!1}var Fk=5;function oP(r,e,t=Fk){return r?Math.abs(e.x-r.x)>=t||Math.abs(e.y-r.y)>=t:!1}var Gk="__lchPressAt",Qae=r=>{let e=r?.[Gk];return e&&Number.isFinite(e.x)&&Number.isFinite(e.y)?e:null};function Vk(r){try{r&&(r[Gk]=null)}catch{}}function uz(r){let e=r.ownerDocument,t=null,o=()=>{t?.(),t=null},n=i=>{o();let a=Number(i?.clientX),s=Number(i?.clientY);if(!Number.isFinite(a)||!Number.isFinite(s))return;let l={x:a,y:s,dragged:!1};try{r[Gk]=l}catch{return}let u=c=>{!l.dragged&&oP(l,{x:Number(c?.clientX),y:Number(c?.clientY)})&&(l.dragged=!0)};e.addEventListener("pointermove",u,!0),e.addEventListener("pointerup",o,!0),e.addEventListener("pointercancel",o,!0),t=()=>{e.removeEventListener("pointermove",u,!0),e.removeEventListener("pointerup",o,!0),e.removeEventListener("pointercancel",o,!0)}};return r.addEventListener("pointerdown",n,!0),()=>{r.removeEventListener("pointerdown",n,!0),o()}}function cz(r,e){if(!e||!(Number(e.detail)>0))return!1;let t=Qae(r);if(t?.dragged)return!0;let o=Number(e.clientX),n=Number(e.clientY);return!Number.isFinite(o)||!Number.isFinite(n)?!1:oP(t,{x:o,y:n})}function hz(r){let{root:e,doc:t,log:o}=r,n=m=>{let p=t?.defaultView?.Element??globalThis.Element;return p&&m instanceof p?!0:!!m&&typeof m.closest=="function"&&typeof m.getAttribute=="function"},i=m=>{try{let p=t?.defaultView?.getComputedStyle??(typeof getComputedStyle=="function"?getComputedStyle:null);return p?p(m).pointerEvents:""}catch{return""}},a=m=>{if(m.tagName.toLowerCase()!=="path")return!1;let p=m.getAttribute("fill");if(p!==null&&p!==""&&p!=="none"&&p!=="transparent")return!1;let g=(m.getAttribute("stroke")||"").trim().toLowerCase(),d=parseFloat(m.getAttribute("stroke-opacity")||"1");return g==="transparent"||g==="none"||d<=.01},s=(m,p,g)=>{let d=m.getTotalLength();if(!(d>0))return Number.MAX_VALUE;let f=m.getScreenCTM();if(!f)return Number.MAX_VALUE;let b=Number.MAX_VALUE,w=64;for(let P=0;P<=w;P++){let A=m.getPointAtLength(d*P/w),M=f.a*A.x+f.c*A.y+f.e-p,E=f.b*A.x+f.d*A.y+f.f-g,U=M*M+E*E;U<b&&(b=U)}return Math.sqrt(b)},l=(m,p,g,d)=>{try{if(!m||!a(m)||!m.getAttribute("data-row-idx"))return m;let f=t.elementsFromPoint(p,g),b=[];for(let A of f)e.contains(A)&&(!A.matches||!A.matches(d)||A.getAttribute("data-row-idx")&&a(A)&&b.push(A));if(b.indexOf(m)<0&&b.push(m),b.length<2)return m;let w=m,P=Number.MAX_VALUE;for(let A of b){let M=s(A,p,g);M<P&&(P=M,w=A)}return w!==m&&o("d3-hit-corridor-refined",{candidates:b.length,distPx:Math.round(P),fromRows:(m.getAttribute("data-row-idx")||"").slice(0,24),toRows:(w.getAttribute("data-row-idx")||"").slice(0,24)}),w}catch{return m}};return{isInvisibleStrokePath:a,distToPathCenterline:s,refineHitCorridor:l,findMark:(m,p=".d3-mark",g)=>{if(!n(m))return null;let f=m.closest(p);return f&&g?l(f,g.clientX,g.clientY,p):f},rowIdxsFromMark:Dk,penetrateOverlayAt:(m,p,g)=>{try{let d=t.elementsFromPoint(m,p);for(let f of d){if(!e.contains(f)||!n(f))continue;let b=f.matches(g)?f:f.closest(g);if(!(!b||!e.contains(b)||!b.getAttribute("data-row-idx")))return o("d3_click-overlay-penetrated",{tag:f.tagName,cls:f.getAttribute("class"),via:f===b?"self":"closest"}),b}}catch{}return null},resolveByGeometry:(m,p,g)=>{try{let d=e.querySelectorAll(g),f=null,b=Number.MAX_VALUE;if(d.length<=600)for(let P of Array.from(d)){if(!P.getAttribute("data-row-idx"))continue;let A=P.getBoundingClientRect?P.getBoundingClientRect():null;if(!A||A.width<=0||A.height<=0||m<A.left||m>A.right||p<A.top||p>A.bottom)continue;let M=A.width*A.height;M<b&&(b=M,f=P)}if(f&&!(P=>{let A=/^(rect|circle|ellipse|path|line|polygon|polyline|text|image|use)$/,M=[P,...Array.from(P.querySelectorAll("*"))];for(let E of M){let U=(E.tagName||"").toLowerCase();if(!A.test(U))continue;let F=i(E);if(F&&F!=="none")return!0}return!1})(f))return o("d3_click-geom-resolved",{rows:(f.getAttribute("data-row-idx")||"").slice(0,24)}),f;f&&o("d3_click-geom-skip-hittable",{})}catch{}return null}}}function mz(r,e,t,o){let n=r.ownerDocument?.defaultView?.DOMPoint??globalThis.DOMPoint,i=r.querySelectorAll(`.${Qo}.${$h}`);o?.shown&&(i=Array.from(i).filter(h=>o.shown(h)));let a=[];for(let h=0;h<i.length;h++){let m=i[h].getBoundingClientRect();a.push(m)}let s=300,l=1,u=i.length<=s,c=h=>{let m=a[h],p=m.width*m.height;if(p<=0)return!1;for(let g=0;g<a.length;g++){if(g===h)continue;let d=a[g],f=d.width*d.height;if(!(f<=0||f>=p)&&d.left>=m.left-l&&d.right<=m.right+l&&d.top>=m.top-l&&d.bottom<=m.bottom+l)return!0}return!1};for(let h=0;h<i.length;h++){let m=i[h],p=a[h];if(p.width===0&&p.height===0||u&&c(h))continue;let g=m.tagName.toLowerCase(),d,f,b=m.getAttribute("data-cx"),w=m.getAttribute("data-cy");if(b!=null&&w!=null&&typeof m.getScreenCTM=="function"){let P=m.getScreenCTM(),A=parseFloat(b),M=parseFloat(w);if(P&&isFinite(A)&&isFinite(M)){let E=new n(A,M).matrixTransform(P);d=E.x,f=E.y}}if(d===void 0&&g==="path"&&typeof m.getPointAtLength=="function")try{let P=m.getTotalLength(),A=m.getScreenCTM();if(P>0&&A){let M=m.getAttribute("d")||"",E=/[Aa]/.test(M)&&!/[CcSsQqTt]/.test(M),U;if(E){let T=0,v=0;for(let C=0;C<24;C++){let O=m.getPointAtLength(P*C/24);T+=O.x,v+=O.y}let I=new n(T/24,v/24),D=!0;try{typeof m.isPointInFill=="function"&&(D=m.isPointInFill(I))}catch{D=!0}D&&(U=I)}U||(U=m.getPointAtLength(P/2));let F=U.matrixTransform(A);d=F.x,f=F.y}}catch{}if(d===void 0||f===void 0){let P=g==="rect";d=P?p.left+p.width*.8:p.left+p.width/2,f=P?p.top+p.height*.2:p.top+p.height/2}o?.at&&!o.at(m,d,f)||t.push({x:d-e.left,y:f-e.top})}}var Zae="lch-sel-glyph";function pz(r){if(r)for(;r.firstChild;)r.removeChild(r.firstChild)}function dz(r,e,t){let o=r.ownerDocument,n=o.createDocumentFragment(),i=Math.min(e.length,t.max??600);for(let a=0;a<i;a++){let s=e[a],l=o.createElement("span");l.className=Zae,l.textContent=t.symbol,l.style.position="absolute",l.style.left=s.x+"px",l.style.top=s.y+"px",l.style.transform="translate(-50%, -50%)",l.style.font="700 11px/1 system-ui, -apple-system, Segoe UI, sans-serif",l.style.color=t.color;let u=t.halo;l.style.textShadow=`-1px -1px 1px ${u}, 1px -1px 1px ${u}, -1px 1px 1px ${u}, 1px 1px 1px ${u}, 0 0 2px ${u}`,l.style.pointerEvents="none",n.appendChild(l)}return r.appendChild(n),i}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var ese=5e3,yz=Fk,tse=3,rse=400,ose=2e3,nse=32,ise="llm-lasso",ase="lch-lasso-surface",k7="lch-lasso-outline",sse="lch-lasso-count",lse="lch-lasso-note",use="lch-plot",cse="data-lch-lasso-mode",Jl="lasso",hse="__lchLassoAxes",Zp="__lchLasso",mse=Object.freeze(["select"]),E7="http://www.w3.org/2000/svg",fz=`.${Qo}[${to}]:not([${to}=""]), .${ql}, .${Pc}`,gz=r=>r?.lasso;function Pz(r){let e=Number(r?.rowCap);return Number.isFinite(e)&&e>=1?Math.floor(e):ese}function pse(r){let e=r?.actions;if(!Array.isArray(e))return[...mse];let t=[];for(let o of e)typeof o=="string"&&o.trim()&&!t.includes(o.trim())&&t.push(o.trim());return t}var dse="filter";function vz(r){return r?.effect==="highlight"?"highlight":dse}function yse(r,e){if(!r||r.capable!==!0)return"not-capable";if(r.enabled===!1)return"disabled";let t=Number(e);return Number.isFinite(t)&&t>Pz(r)?"over-cap":"on"}function C7(r,e){let t=1/0,o=1/0,n=-1/0,i=-1/0;for(let a of e)a.x<t&&(t=a.x),a.x>n&&(n=a.x),a.y<o&&(o=a.y),a.y>i&&(i=a.y);return{mode:r,pts:e,minX:t,minY:o,maxX:n,maxY:i}}function bz(r,e){return[{x:r.x,y:r.y},{x:e.x,y:r.y},{x:e.x,y:e.y},{x:r.x,y:e.y}]}function fse(r,e,t){let o=r.pts;if(o.length<3)return!1;let n=1/0,i=1/0,a=-1/0,s=-1/0;for(let u of o)u.x<n&&(n=u.x),u.x>a&&(a=u.x),u.y<i&&(i=u.y),u.y>s&&(s=u.y);if(e<n||e>a||t<i||t>s)return!1;if(r.mode==="rect")return!0;let l=!1;for(let u=0,c=o.length-1;u<o.length;c=u++){let h=o[u].x,m=o[u].y,p=o[c].x,g=o[c].y;m>t!=g>t&&e<(p-h)*(t-m)/(g-m)+h&&(l=!l)}return l}function gse(r,e){if(r.length<=e)return r;let t=r.length/e,o=[];for(let n=0;n<e;n++)o.push(r[Math.floor(n*t)]);return o.push(r[r.length-1]),o}function bse(r){let e=r.getBoundingClientRect(),t=o=>{let n=parseFloat(r.getAttribute(o)||"0");return Number.isFinite(n)?n:0};return{left:e.left,top:e.top,width:e.width,height:e.height,sx:t("x"),sy:t("y"),sw:t("width"),sh:t("height")}}var Nz=r=>r.width>0&&r.height>0,Sse=(r,e,t)=>Nz(r)&&e>=r.left&&e<=r.left+r.width&&t>=r.top&&t<=r.top+r.height,xz=(r,e)=>[r.sx+(r.width>0?(e.x-r.left)*r.sw/r.width:e.x-r.left),r.sy+(r.height>0?(e.y-r.top)*r.sh/r.height:e.y-r.top)],Ase=(r,e)=>({x:r.left+(r.sw>0?(e[0]-r.sx)*r.width/r.sw:e[0]-r.sx),y:r.top+(r.sh>0?(e[1]-r.sy)*r.height/r.sh:e[1]-r.sy)}),Sz=r=>{let e=r instanceof Date?+r:typeof r=="number"?r:NaN;return Number.isFinite(e)?e:NaN},Xk=r=>{if(!r||typeof r!="object")return null;let e=Sz(r[0]),t=Sz(r[1]);return Number.isFinite(e)&&Number.isFinite(t)?[e,t]:null};function Hk(r){let e=r[hse];return e&&typeof e.toData=="function"&&typeof e.toScreen=="function"?e:null}function Az(r,e,t){if(t)try{let i=[];for(let a of r){let s=[];for(let l of a.pts){let u=Xk(t.toData(xz(e,l)));if(!u)throw new Error("no data coordinate");s.push(u)}i.push({mode:a.mode,pts:s})}return{v:1,space:"data",shapes:i}}catch{}let o=e.width>0?e.width:1,n=e.height>0?e.height:1;return{v:1,space:"unit",shapes:r.map(i=>({mode:i.mode,pts:i.pts.map(a=>[(a.x-e.left)/o,(a.y-e.top)/n])}))}}function wse(r,e,t){try{if(!r||typeof r!="object")return[];let o=r,n=o.space==="data"?"data":o.space==="unit"?"unit":null;if(!n||!Array.isArray(o.shapes)||o.shapes.length===0||o.shapes.length>nse)return[];if(n==="data"&&!t)return[];if(!Nz(e))return[];let i=[];for(let a of o.shapes){if(!a||typeof a!="object"||!Array.isArray(a.pts))return[];let s=a.mode==="rect"?"rect":"free";if(a.pts.length<3||a.pts.length>ose)return[];if(s==="rect"&&a.pts.length!==4)return[];let l=[];for(let h of a.pts){let m=Xk(h);if(!m)return[];if(n==="unit")l.push({x:e.left+m[0]*e.width,y:e.top+m[1]*e.height});else{let p=Xk(t.toScreen(m));if(!p)return[];l.push(Ase(e,p))}}let u=C7(s,l);u.maxX<e.left||u.minX>e.left+e.width||u.maxY<e.top||u.minY>e.top+e.height||i.push(u)}return i}catch{return[]}}function zk(r){let e=[];for(let t of Array.from(r.querySelectorAll(`.${Qo}[${to}]`))){let o=Dk(t);if(!o.length)continue;let n=t.getBoundingClientRect();(n.width>0||n.height>0)&&e.push({x:n.left+n.width/2,y:n.top+n.height/2,el:t,rows:o})}return e}function Pse(r,e){try{let t=e?.getComputedStyle?.(r);return!!t&&(t.visibility==="hidden"||t.display==="none")}catch{return!1}}function x7(r,e,t,o=!0){let n=new Set;for(let i of r)if(e.some(a=>fse(a,i.x,i.y))&&!(o&&Pse(i.el,t)))for(let a of i.rows)n.add(a);return Array.from(n).sort((i,a)=>i-a)}var vse=(r,e)=>r.length===e.length&&r.every((t,o)=>t===e[o]),Nse=new Map([["select",r=>r.env.select(r.rows)]]);var vc=r=>!!r&&typeof r=="object"&&!Array.isArray(r);function Ez(r,e){let t=r?.uiState,o=vc(t)?t.knobs:void 0;if(vc(o)&&o[Jl]!==void 0)return o[Jl];let n=e.__lchKnobs;return vc(n)?n[Jl]:void 0}var wz="__lchLassoFor";function Yk(r,e,t){let o=r;if(!o)return!1;let n=!1;try{if(o[wz]!==e){let i=o.__lchKnobs;vc(i)&&i[Jl]!==void 0&&(delete i[Jl],n=!0);let a=vc(t)?t.knobs:void 0;if(vc(a)&&a[Jl]!==void 0){let s={...a};delete s[Jl],t.knobs=s,n=!0}}o[wz]=e}catch{}return n}function xse(r,e,t){let o=r;vc(o.__lchKnobs)||(o.__lchKnobs={});let n=o.__lchKnobs,i=n[Jl]!==void 0||Ez(e,r)!==void 0;if(t===null&&!i||(t===null?delete n[Jl]:n[Jl]=t,typeof e.setUiState!="function"))return;let a=vc(e.uiState)?e.uiState:{},s=o.__lchUiLiveOpts===e&&o.__lchUiLiveSeed===e.uiState?o.__lchUiLive:null,l=vc(s)?s:a,u={...l},c={...vc(l.knobs)?l.knobs:{},...n};t===null&&delete c[Jl],u.knobs=c,o.__lchUiLive=u,o.__lchUiLiveOpts=e,o.__lchUiLiveSeed=e.uiState;try{e.setUiState(u)}catch{}}function jk(r){let e=(r.getAttribute("viewBox")||"").trim().split(/[\s,]+/).map(Number);if(e.length===4&&e.every(Number.isFinite)&&e[2]>0&&e[3]>0)return{x:e[0],y:e[1],w:e[2],h:e[3]};let t=r.getBoundingClientRect();if(t.width>0&&t.height>0)return{x:0,y:0,w:t.width,h:t.height};let o=parseFloat(r.getAttribute("width")||""),n=parseFloat(r.getAttribute("height")||"");return o>0&&n>0?{x:0,y:0,w:o,h:n}:null}function Ese(r){let e=r.querySelector(`.${use}`),t=e?.tagName?.toLowerCase();if(e&&e.namespaceURI===E7&&(t==="g"||t==="svg")){if(t==="svg"){let s=jk(e);return s?{host:e,box:s}:null}try{let s=e.getBBox?.();if(s&&s.width>0&&s.height>0)return{host:e,box:{x:s.x,y:s.y,w:s.width,h:s.height}}}catch{}let i=e.ownerSVGElement??e.closest("svg"),a=i?jk(i):null;return a?{host:e,box:a}:null}let o=r.querySelector(`svg[${Zw}]`)??r.querySelector("svg"),n=o?jk(o):null;return o&&n?{host:o,box:n}:null}function Kk(r,e){try{return new Intl.NumberFormat(e||void 0).format(r)}catch{return String(r)}}function Cse(r,e,t){let{container:o}=r,n=o.ownerDocument,i=n.defaultView,a=r.options(),s=n.createElement("div");s.className=lse,s.setAttribute("role","note"),s.textContent=`Lasso selection is off at ${Kk(e,a?.cultureCode)} rows (limit ${Kk(t,a?.cultureCode)})`,Object.assign(s.style,{position:"absolute",right:"6px",bottom:"2px",font:"11px/1.2 system-ui, sans-serif",opacity:"0.75",pointerEvents:"none",whiteSpace:"nowrap",zIndex:"2",color:a?.themeFg||"inherit"});try{i?.getComputedStyle(o).position==="static"&&(o.style.position="relative")}catch{}o.appendChild(s);let l={surface:null,rows:()=>[],clear:()=>{},destroy:()=>{s.remove(),o[Zp]===l&&(o[Zp]=null)}};return o[Zp]=l,l}function Cz(r){let{container:e}=r,t=e.ownerDocument,o=t.defaultView??globalThis,n=e;try{n[Zp]?.destroy()}catch{}n[Zp]=null;let i=gz(r.options()),a=yse(i,r.rows);if(a==="not-capable"||a==="disabled")return null;if(a==="over-cap")return Cse(r,r.rows,Pz(i));let s=Ese(e);if(!s)return null;let l=t.createElementNS(E7,"rect");l.setAttribute("class",`${$p} ${ase}`),l.setAttribute("x",String(s.box.x)),l.setAttribute("y",String(s.box.y)),l.setAttribute("width",String(s.box.w)),l.setAttribute("height",String(s.box.h)),l.setAttribute("fill","transparent"),l.setAttribute("pointer-events","all"),l.setAttribute("tabindex","0"),l.setAttribute("aria-label","Selection area: drag to draw around marks, Escape to clear"),Object.assign(l.style,{cursor:"crosshair",touchAction:"none",userSelect:"none"}),s.host.insertBefore(l,s.host.firstChild);let u=t.createElementNS(E7,"path");u.setAttribute("class",k7),u.setAttribute("pointer-events","none"),u.setAttribute("fill-opacity","0.12"),u.setAttribute("stroke-width","1.5"),u.setAttribute("stroke-dasharray","5 3"),u.setAttribute("d","");let c=t.createElementNS(E7,"text");c.setAttribute("class",sse),c.setAttribute("pointer-events","none"),c.setAttribute("font-size","12"),c.setAttribute("x",String(s.box.x+6)),c.setAttribute("y",String(s.box.y+16)),Object.assign(c.style,{userSelect:"none"}),s.host.appendChild(u),s.host.appendChild(c);let h=()=>{let re=r.options(),pe=re?.themeFg||"currentColor";u.setAttribute("stroke",pe),u.setAttribute("fill",re?.themeAccent||pe),c.setAttribute("fill",pe)};h();let m=[],p=[],g=null,d=null,f=!1,b=[],w=()=>bse(l),P=()=>e.getAttribute(cse)==="rect"?"rect":"free",A=(re,pe)=>re.map(ae=>"M"+ae.pts.map(Ce=>xz(pe,Ce)).map(Ce=>`${M(Ce[0])} ${M(Ce[1])}`).join("L")+"Z").join(""),M=re=>Math.round(re*100)/100,E=()=>{u.setAttribute("d",m.length?A(m,w()):"")},U=re=>{c.textContent=re===null?"":`${Kk(re,r.options()?.cultureCode)} selected`},F=(re,pe,ae)=>{let ne=Az(pe,w(),Hk(e)),Ce=ne.shapes[ne.shapes.length-1];return{rows:re,polygon:Ce?Ce.pts:[],polygons:ne.shapes.map(ce=>ce.pts),mode:Ce?Ce.mode:P(),space:ne.space,source:ae}},L=re=>{let pe=o.CustomEvent??globalThis.CustomEvent;try{e.dispatchEvent(new pe(ise,{detail:re,bubbles:!0}))}catch{}},T=re=>{try{xse(e,r.options(),re?Az(re,w(),Hk(e)):null)}catch{}},v=(re,pe)=>{m=re,p=pe,E(),U(null),T(re);let ae={rows:pe.slice(),mode:re[re.length-1].mode,source:"user",env:r};for(let ne of pse(gz(r.options()))){let Ce=Nse.get(ne);if(Ce)try{Ce(ae)}catch{}}L(F(pe,re,"user"))},I=(re={})=>{let pe=m.length>0;if(g&&G(),m=[],p=[],E(),U(null),re.publish!==!1)try{r.clearSelection()}catch{}pe&&(T(null),L(F([],[],re.source??"user")))},D=(re,pe,ae)=>{let ne=re;if(!ne||ne.nodeType!==1||ne!==l&&(!s.host.contains(ne)||ne.closest?.(fz)||N7(ne,e)))return!1;try{let Ce=t.elementsFromPoint?.(pe,ae);if(Ce){for(let ce of Ce)if(ce!==l&&e.contains(ce)&&ce.closest?.(fz))return!1}}catch{}return!0},C=re=>re.preventDefault(),O=re=>{let pe=re?"addEventListener":"removeEventListener";t[pe]("pointermove",X),t[pe]("pointerup",ue),t[pe]("pointercancel",Q),t[pe]("selectstart",C)},G=()=>{if(!g)return;let re=g.dragging;g=null,O(!1),b=[],U(null),re&&(f=!0,E())},j=re=>re.mode==="rect"?C7("rect",bz(re.start,re.end)):C7("free",[...re.pts,re.end]),Y=re=>{let pe=w(),ae=j(re),ne=re.additive?[...m,ae]:[ae];u.setAttribute("d",A(ne,pe)),U(x7(b,ne,o,!1).length)};function z(re){f=!1;let pe=Number(re.clientX),ae=Number(re.clientY);if(!Number.isFinite(pe)||!Number.isFinite(ae)||(d={x:pe,y:ae},g||re.button!=null&&re.button!==0||re.isPrimary===!1))return;let ne=w();if(!(!Sse(ne,pe,ae)||!D(re.target,pe,ae))){g={id:re.pointerId,start:{x:pe,y:ae},pts:[{x:pe,y:ae}],end:{x:pe,y:ae},additive:!!(re.ctrlKey||re.metaKey||re.shiftKey),mode:P(),dragging:!1};try{re.pointerId!=null&&typeof l.setPointerCapture=="function"&&l.setPointerCapture(re.pointerId)}catch{}O(!0)}}function X(re){let pe=g;if(!pe||pe.id!=null&&re.pointerId!=null&&re.pointerId!==pe.id)return;let ae={x:Number(re.clientX),y:Number(re.clientY)};if(!(!Number.isFinite(ae.x)||!Number.isFinite(ae.y))){if(!pe.dragging){if(!oP(pe.start,ae,yz))return;pe.dragging=!0,b=zk(e),h()}if(pe.end=ae,pe.mode==="free"){let ne=pe.pts[pe.pts.length-1];Math.hypot(ae.x-ne.x,ae.y-ne.y)>=tse&&pe.pts.push(ae)}Y(pe)}}function ue(re){let pe=g;if(!pe||pe.id!=null&&re.pointerId!=null&&re.pointerId!==pe.id)return;if(!pe.dragging){G();return}let ae=Number(re.clientX),ne=Number(re.clientY);Number.isFinite(ae)&&Number.isFinite(ne)&&(pe.end={x:ae,y:ne});let Ce=pe.additive,ce=pe.mode,De=ce==="rect"?bz(pe.start,pe.end):[...pe.pts,pe.end];if(G(),ce==="free"){if(De.length<3)return;De=gse(De,rse)}let Je=C7(ce,De),Qe=zk(e),tt=x7(Qe,[Je],o);if(!tt.length)return;let oe=Ce?[...m,Je]:[Je],_e=Ce?x7(Qe,oe,o):tt;if(!(Ce&&vse(_e,p))){v(oe,_e);try{l.focus?.({preventScroll:!0})}catch{}}}function Q(re){let pe=g;!pe||pe.id!=null&&re.pointerId!=null&&re.pointerId!==pe.id||G()}function ye(re){let pe=f||Number(re.detail)>0&&!!d&&oP(d,{x:Number(re.clientX),y:Number(re.clientY)},yz);f=!1,d=null,!(re.target!==l||pe)&&(re.ctrlKey||re.metaKey||re.shiftKey||I({publish:!0,source:"user"}))}function J(re){if(!(re.key!=="Escape"||re.defaultPrevented)){if(g){G(),re.preventDefault?.();return}m.length&&(I({publish:!0,source:"user"}),re.preventDefault?.())}}e.addEventListener("pointerdown",z,!0),e.addEventListener("click",ye,!0),e.addEventListener("keydown",J);let ve={surface:l,rows:()=>p.slice(),clear:I,destroy(){g&&(g=null,O(!1)),e.removeEventListener("pointerdown",z,!0),e.removeEventListener("click",ye,!0),e.removeEventListener("keydown",J),l.remove(),u.remove(),c.remove(),n[Zp]===ve&&(n[Zp]=null)}};n[Zp]=ve;let Me=wse(Ez(r.options(),e),w(),Hk(e));if(Me.length){let re=x7(zk(e),Me,o);re.length&&(m=Me,p=re,E(),L(F(re,Me,"restore")))}return ve}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var qk="http://www.w3.org/2000/svg",kz="data-lch-hit",kse=5e3,Mz=new WeakMap;function Mse(r,e){if(!r||typeof r!="object")return!1;let t=Mz.get(r);if(t!==void 0)return t;let o=!1;try{let n=r.documentElement,i=r.createElementNS(qk,"svg"),a=r.createElementNS(qk,"rect");a.setAttribute("fill","none"),i.appendChild(a),n.appendChild(i);try{o=String(e.getComputedStyle(a).fill??"").trim().toLowerCase()==="none"}finally{n.removeChild(i)}}catch{o=!1}return Mz.set(r,o),o}function Lz(r,e){let t={tagged:0,hitRects:0,peFlips:0,peStrokeOnly:0};try{if(!r||typeof r.querySelectorAll!="function")return t;let o=r.querySelectorAll(`.${Qo}, .${ql}, .${Pc}`);if(t.tagged=o.length,o.length===0||o.length>kse)return t;let n=e??r.ownerDocument,i=n?.defaultView,a=s=>{try{return i?.getComputedStyle?i.getComputedStyle(s):null}catch{return null}};for(let s of Array.from(o))if(String(s.tagName||"").toLowerCase()==="g"){if(!s.hasAttribute?.(to)||s.querySelector?.(`rect[${kz}="1"]`))continue;let u=s.getAttribute?.("class")||"";if(!(u.indexOf(ql)>=0||u.indexOf(Pc)>=0)){let p=!1,g=s.querySelectorAll?.("*")??[];for(let d of Array.from(g)){let f=String(d.tagName||"").toLowerCase();if(f==="g"||f==="tspan"||f==="title"||f==="defs")continue;let b=a(d);if(!b||b.pointerEvents!=="none"){p=!0;break}}if(p)continue}let h=null;try{h=s.getBBox?.()}catch{h=null}if(!h||!(h.width>0)||!(h.height>0))continue;let m=n.createElementNS(qk,"rect");m.setAttribute("x",String(h.x)),m.setAttribute("y",String(h.y)),m.setAttribute("width",String(h.width)),m.setAttribute("height",String(h.height)),m.setAttribute("fill","transparent"),m.setAttribute(kz,"1"),m.style&&(m.style.pointerEvents="all",m.style.cursor="pointer"),s.insertBefore(m,s.firstChild),t.hitRects++}else{let u=a(s);if(u&&u.pointerEvents==="none"){let c=String((Mse(n,i)?u.fill:s.getAttribute?.("fill")??u.fill)??"").trim().toLowerCase(),h=c==="none"||c==="transparent"||c==="rgba(0, 0, 0, 0)";s.style&&(s.style.pointerEvents=h?"stroke":"all"),t.peFlips++,h&&t.peStrokeOnly++}}}catch{}return t}var Tz=8,Tse=5e3,M7={openStrokes:0,interactive:0,hairline:0,uncovered:0,widestPx:0},Wse=new Set(["path","line","polyline"]);function Lse(r,e){try{let t=e?.defaultView;return t?.getComputedStyle?t.getComputedStyle(r):null}catch{return null}}function Wz(r,e,t){let o=r.getAttribute?.(e);if(o!=null&&String(o).trim()!=="")return String(o).trim();let n=t?.[e==="stroke-width"?"strokeWidth":e];return n==null?"":String(n).trim()}function Ise(r){let e=r.toLowerCase();return e==="none"||e==="transparent"||e==="rgba(0, 0, 0, 0)"||e==="rgba(0,0,0,0)"}function Rse(r){let e=/^(-?\d+(?:\.\d+)?)\s*(px)?$/i.exec(r);if(!e)return NaN;let t=parseFloat(e[1]);return isFinite(t)?t:NaN}function Iz(r,e){if(!r||typeof r.querySelectorAll!="function")return M7;try{let t=Array.from(r.querySelectorAll(`.${Qo}, [${to}]`));if(t.length===0||t.length>Tse)return M7;let o=e??r.ownerDocument,n=new Map,i=[];for(let s of t){let l=String(s.tagName||"").toLowerCase();if(!Wse.has(l))continue;let u=Lse(s,o),c=Ise(Wz(s,"fill",u)),h=Rse(Wz(s,"stroke-width",u)||"1"),m=String(s.getAttribute?.("d")??"")||`${l}#${String(s.getAttribute?.(to)??"")}`,p=String(u?.pointerEvents??s.style?.pointerEvents??"")==="none";if(i.push({el:s,geom:m,w:h,open:c,inert:p}),isFinite(h)){let g=n.get(m);(g===void 0||h>g)&&n.set(m,h)}}let a={...M7};for(let s of i){if(!s.open||(a.openStrokes++,s.inert)||(a.interactive++,isFinite(s.w)&&s.w>a.widestPx&&(a.widestPx=Math.round(s.w)),!(s.w<Tz)))continue;a.hairline++;let l=n.get(s.geom);(l===void 0||l<Tz)&&a.uncovered++}return a}catch{return M7}}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var iP=8;function nP(r,e,t=iP){return!isFinite(r)||!isFinite(e)||r<=0||e<=0?!1:r-e>t}function Dz(r){if(!r||r.length===0)return{w:0,h:0,source:"none"};let e=r.filter(a=>a&&isFinite(a.right)&&isFinite(a.bottom)&&(a.right>0||a.bottom>0));if(e.length===0)return{w:0,h:0,source:"none"};let t=e.filter(a=>!a.floating),o=t.length>0?t:e,n=0,i=0;for(let a of o)a.right>n&&(n=a.right),a.bottom>i&&(i=a.bottom);return{w:n,h:i,source:t.length>0?"in-flow":"all-floating"}}function _se(r,e,t,o,n=iP){return{overflowX:nP(r,t,n)?"auto":"hidden",overflowY:nP(e,o,n)?"auto":"hidden"}}var Use="text, .d3-mark, .d3-legend-mark",Rz=.95;function Bse(r,e,t,o){return r>t*Rz||e>o*Rz}var Dse=20;function Ose(r,e,t,o,n=iP,i=Dse){let a=u=>({grow:!1,heightPx:e,viewBoxH:t,reason:u});if(!isFinite(r)||!isFinite(e)||e<=0)return a("unmeasurable");if(!nP(r,e,n))return a("fits");if(r>e*i)return a("beyond-ceiling");let s=Math.ceil(r),l=s-e;return t>0?!(o>0)||!isFinite(o)?a("no-scale"):{grow:!0,heightPx:s,viewBoxH:t+l/o,reason:"grow"}:{grow:!0,heightPx:s,viewBoxH:t,reason:"grow-no-viewbox"}}var Fse=2,Gse=2,Vse=.4,Hse=12;function zse(r){if(!r||r.length<2)return!1;let e=1/0,t=-1/0,o=1/0,n=-1/0;for(let i of r){let a=(i.left+i.right)/2,s=(i.top+i.bottom)/2;if(!isFinite(a)||!isFinite(s))return!1;a<e&&(e=a),a>t&&(t=a),s<o&&(o=s),s>n&&(n=s)}return t-e>n-o}function jse(r,e=[],t=Gse,o=Hse){if(!r||r.length===0)return null;let n=1/0,i=-1/0;for(let a of r)!isFinite(a.top)||!isFinite(a.bottom)||(a.top<n&&(n=a.top),a.bottom>i&&(i=a.bottom));if(!isFinite(n)||!isFinite(i)||i<=n)return null;for(let a of e||[])!isFinite(a.top)||!isFinite(a.bottom)||(a.bottom<n?n-a.bottom:a.top>i?a.top-i:0)>o||(a.top<n&&(n=a.top),a.bottom>i&&(i=a.bottom));return{top:n-t,bottom:i+t}}function Xse(r,e,t=Fse,o=Vse){let n=l=>({pin:!1,index:-1,band:null,reason:l});if(!isFinite(e)||e<=0)return n("unmeasurable");let i=!1,a=null;for(let l of r||[])!l||!l.labels||l.labels.length<t||(i=!0,zse(l.labels)&&(!a||l.labels.length>a.labels.length)&&(a=l));if(!a)return n(i?"vertical-only":"no-axis");let s=jse(a.labels,a.tracks||[]);return s?s.bottom-s.top>e*o?n("band-too-tall"):{pin:!0,index:a.index,band:s,reason:"pinned"}:n("unmeasurable")}function Kse(r,e,t){return!r||!isFinite(r.top)||!isFinite(r.bottom)||!isFinite(e)||!isFinite(t)||t<=0?null:r.top<e?"top":r.bottom>e+t?"bottom":null}var T7=r=>typeof r=="number"&&isFinite(r)&&r>0?r:0;function Yse(r,e,t){if(!r||e===void 0||e===null||r.key!==e)return{x:0,y:0};let o=(n,i)=>Math.max(0,T7(n)-T7(i));return{x:t.overflowX==="auto"?Math.min(T7(r.x),o(t.scrollWidth,t.clientWidth)):0,y:t.overflowY==="auto"?Math.min(T7(r.y),o(t.scrollHeight,t.clientHeight)):0}}var qse=8e3;function Jse(r){if(!r)return 0;let e=Math.hypot(r.a,r.b);return isFinite(e)&&e>0?e:0}function $se(r){try{let e=r.getBoundingClientRect();if(!(e.width>0)||!(e.height>0))return null;let t=r.querySelectorAll(Use),o=Qse(r),n=-1/0,i=-1/0,a=0;for(let s=0;s<t.length&&a<qse;s++){let l=t[s].getBoundingClientRect();if(l.width<=0&&l.height<=0||Bse(l.width,l.height,e.width,e.height))continue;let u=l.right,c=l.bottom,h=o(t[s]);if(h){if(l.left>=h.right||l.top>=h.bottom)continue;u=Math.min(u,h.right),c=Math.min(c,h.bottom)}a++,u>n&&(n=u),c>i&&(i=c)}return a===0?null:{right:n-e.left,bottom:i-e.top}}catch{return null}}function W7(r){try{let e=/url\(\s*['"]?#([^'")\s]+)['"]?\s*\)/.exec(r.getAttribute("clip-path")||""),t=e?(r.closest("svg")??r.ownerDocument).querySelector(`clipPath[id="${e[1].replace(/"/g,'\\"')}"]`):null,o=t?r.getScreenCTM?.():null;if(!t||!o||t.getAttribute("clipPathUnits")==="objectBoundingBox")return null;let n=1/0,i=1/0,a=-1/0,s=-1/0;for(let l=0;l<t.children.length;l++){let u=t.children[l].getBBox?.();if(!(!u||!(u.width>0)||!(u.height>0)))for(let[c,h]of[[u.x,u.y],[u.x+u.width,u.y],[u.x,u.y+u.height],[u.x+u.width,u.y+u.height]]){let m=o.a*c+o.c*h+o.e,p=o.b*c+o.d*h+o.f;n=Math.min(n,m),i=Math.min(i,p),a=Math.max(a,m),s=Math.max(s,p)}}return isFinite(a)&&isFinite(s)?{left:n,top:i,right:a,bottom:s}:null}catch{return null}}function Qse(r){let e=new Map,t=o=>(e.has(o)||e.set(o,W7(o)),e.get(o));return o=>{let n=null;for(let i=o;i&&i!==r;i=i.parentElement){let a=t(i);a&&(n=n?{right:Math.min(n.right,a.right),bottom:Math.min(n.bottom,a.bottom)}:a)}return n}}function Oz(r,e){let t=[];if(!r||!r.children)return t;let o=r.ownerDocument&&r.ownerDocument.defaultView||globalThis,n=r.getBoundingClientRect();for(let i=0;i<r.children.length;i++){let a=r.children[i],s=!1;try{let h=o.getComputedStyle(a);if(h.display==="none")continue;s=h.position==="absolute"||h.position==="fixed"}catch{}let l=a.getBoundingClientRect(),u=l.right-n.left-r.clientLeft+r.scrollLeft,c=l.bottom-n.top-r.clientTop+r.scrollTop;if(e)try{let h=e(a);if(h){let m=l.left-n.left-r.clientLeft+r.scrollLeft,p=l.top-n.top-r.clientTop+r.scrollTop;isFinite(h.right)&&(u=Math.max(u,m+h.right)),isFinite(h.bottom)&&(c=Math.max(c,p+h.bottom))}}catch{}t.push({right:u,bottom:c,floating:s})}return t}function Zse(r,e,t=iP,o){if(!e)return null;let n=e.clientWidth,i=e.clientHeight;if(!(n>0)||!(i>0))return null;let a=Oz(e,o),s=Dz(a),l=s.source==="none"?e.scrollWidth:s.w,u=s.source==="none"?e.scrollHeight:s.h;return!isFinite(l)||!isFinite(u)?null:{lane:r,contentW:Math.round(l),contentH:Math.round(u),viewW:n,viewH:i,overflowsX:nP(l,n,t),overflowsY:nP(u,i,t),extentSource:s.source,boxes:a.length,floating:a.filter(c=>c.floating).length,scrollW:e.scrollWidth,scrollH:e.scrollHeight}}var nl=r=>({pinned:!1,reason:r,bandPx:0,axisAt:"",labels:0,carried:0,edge:null}),Jk="__bicAxisPin",_z="http://www.w3.org/2000/svg",ele=12;function ed(r){if(!r)return;let e=r[Jk];if(e){try{r.removeEventListener("scroll",e.onScroll)}catch{}try{e.overlay.parentNode&&e.overlay.parentNode.removeChild(e.overlay)}catch{}try{delete r[Jk]}catch{}}}function $k(r,e){if(r)try{let t=r;if(t[CS]||r.querySelector(".llm-mm-scroll"))return;let o=r.scrollLeft,n=r.scrollTop;(o>0||n>0)&&(t[CS]={key:e,x:o,y:n})}catch{}}function Fz(r){if(!r)return null;try{let e=r,t=e[CS]??null;return delete e[CS],t}catch{return null}}function Uz(r,e){if(r.getAttribute("display")==="none"||r.getAttribute("visibility")==="hidden")return!0;try{let t=e.getComputedStyle(r);if(t&&(t.display==="none"||t.visibility==="hidden"))return!0}catch{}return!1}function tle(r,e,t,o){try{let n=r.querySelectorAll("rect");for(let i=0;i<n.length&&i<6;i++){let a=n[i];if(a.closest(".d3-mark"))continue;let s=a.getBoundingClientRect();if(s.width>=o.width*.9&&s.height>=o.height*.9){let l="";try{l=t.getComputedStyle(a).fill||""}catch{}if((!l||l==="none")&&(l=a.getAttribute("fill")||""),l&&l!=="none"&&l!=="transparent")return l;break}}}catch{}try{let n=e;for(let i=0;n&&i<12;i++,n=n.parentElement){let a=t.getComputedStyle(n).backgroundColor;if(a&&a!=="transparent"&&a!=="rgba(0, 0, 0, 0)")return a}}catch{}return"#ffffff"}function Bz(r,e,t){let o=[],n=r.parentElement;for(;n&&n!==e;)o.unshift(n),n=n.parentElement;let i=t;for(let s of o){let l=s.cloneNode(!1);i.appendChild(l),i=l}i.appendChild(r.cloneNode(!0));let a=t.querySelectorAll("[id]");for(let s=0;s<a.length;s++)a[s].removeAttribute("id")}function rle(r,e){if(ed(r),!r)return nl("no-container");if(!e)return nl("no-svg");try{let t=e.ownerDocument,o=t&&t.defaultView||globalThis,n=e.getBoundingClientRect();if(!(n.width>0)||!(n.height>0))return nl("unmeasurable");let i=typeof e.getScreenCTM=="function"?e.getScreenCTM():null;if(!i||!(i.a>0)||!(i.d>0)||!isFinite(i.e)||!isFinite(i.f))return nl("no-ctm");let a=r.clientHeight;if(!(a>0))return nl("unmeasurable");let s=z=>({left:z.left-n.left,top:z.top-n.top,right:z.right-n.left,bottom:z.bottom-n.top}),l=e.querySelectorAll(".tick"),u=new Map;for(let z=0;z<l.length;z++){let X=l[z];if(X.closest("svg")!==e)continue;let ue=X.parentElement;if(!ue)continue;let Q=u.get(ue);Q?Q.push(X):u.set(ue,[X])}let c=[],h=[];u.forEach((z,X)=>{let ue=[];for(let ye of z){let J=ye.querySelector("text");if(!J||Uz(J,o))continue;let ve=J.getBoundingClientRect();!(ve.width>0)||!(ve.height>0)||ue.push(s(ve))}let Q=[];for(let ye=0;ye<X.children.length;ye++){let J=X.children[ye];if(J.tagName.toLowerCase()!=="path"||!(J.getAttribute("class")||"").split(/\s+/).includes("domain"))continue;let ve=J.getBoundingClientRect();ve.width>0&&ve.height<=4&&Q.push(s(ve))}h.push({index:c.length,labels:ue,tracks:Q}),c.push(X)});let m=Xse(h,a);if(!m.pin||!m.band)return nl(m.reason);let p=c[m.index],g={top:Math.max(0,m.band.top),bottom:Math.min(n.height,m.band.bottom)},d=g.bottom-g.top;if(!(d>0))return nl("unmeasurable");let f=[],b=e.querySelectorAll("text");for(let z=0;z<b.length&&f.length<ele;z++){let X=b[z];if(X.closest("svg")!==e||X.closest(".tick")||X.closest(".d3-mark")||X.closest(".d3-legend-mark")||p.contains(X)||Uz(X,o))continue;let ue=s(X.getBoundingClientRect());!(ue.right>ue.left)||!(ue.bottom>ue.top)||ue.top>=g.top&&ue.bottom<=g.bottom&&f.push(X)}let w=t.createElementNS(_z,"svg");for(let z of["font-family","font-size","font-weight","font","fill","color","text-rendering"]){let X=e.getAttribute(z);X&&w.setAttribute(z,X)}let P=e.querySelectorAll("style");for(let z=0;z<P.length;z++)w.appendChild(P[z].cloneNode(!0));let A=(n.left-i.e)/i.a,M=(n.top+g.top-i.f)/i.d,E=n.width/i.a,U=d/i.d;w.setAttribute("viewBox",`${A} ${M} ${E} ${U}`),w.setAttribute("preserveAspectRatio","none"),w.setAttribute("width",String(n.width)),w.setAttribute("height",String(d)),w.setAttribute("aria-hidden","true"),w.style.display="block",w.style.pointerEvents="none";let F=t.createElementNS(_z,"rect");F.setAttribute("x",String(A)),F.setAttribute("y",String(M)),F.setAttribute("width",String(E)),F.setAttribute("height",String(U)),F.setAttribute("fill",tle(e,r,o,n)),w.appendChild(F),Bz(p,e,w);for(let z of f)Bz(z,e,w);let L=t.createElement("div");L.setAttribute("data-bic-axis-pin","1");let T=L.style;T.position="absolute",T.margin="0",T.padding="0",T.border="0",T.width=`${n.width}px`,T.height=`${d}px`,T.overflow="hidden",T.pointerEvents="none",T.zIndex="3",T.display="none",L.appendChild(w);try{let z=o.getComputedStyle(r),X=z&&z.position||r.style.position;(!X||X==="static")&&(r.style.position="relative")}catch{r.style.position=r.style.position||"relative"}let v=r.getBoundingClientRect(),I=n.left-v.left-r.clientLeft+r.scrollLeft,D=n.top-v.top-r.clientTop+r.scrollTop,C={top:D+g.top,bottom:D+g.bottom},O=()=>{let z=r.scrollTop,X=r.clientHeight,ue=Kse(C,z,X);return ue?(T.display="block",T.left=`${I}px`,T.top=`${ue==="top"?z:z+X-d}px`,ue):(T.display="none",null)},G=()=>{try{if(!L.isConnected){ed(r);return}O()}catch{}};r.appendChild(L),r.addEventListener("scroll",G,{passive:!0}),r[Jk]={overlay:L,onScroll:G};let j=O(),Y=(g.top+g.bottom)/2/n.height;return{pinned:!0,reason:"pinned",bandPx:Math.round(d),axisAt:Y<1/3?"top":Y>2/3?"bottom":"middle",labels:h[m.index].labels.length,carried:f.length,edge:j}}catch{return ed(r),nl("threw")}}function Gz(r,e={}){let t=e.slackPx??iP,o={grew:!1,growFrom:0,growTo:0,growReason:"no-container",overflowX:"hidden",overflowY:"hidden",reading:null,axisPin:nl("no-container"),scrolledTo:null};if(!r)return o;try{let n=r.querySelector(`svg[${Zw}]`);for(let d=0;d<r.children.length&&!n;d++){let f=r.children[d];f.tagName&&f.tagName.toLowerCase()==="svg"&&(n=f)}n||(n=r.querySelector("svg"));let i,a=d=>(i===void 0&&(i=$se(d)),i),s=d=>d&&d.tagName&&d.tagName.toLowerCase()==="svg"?a(d):null;if(n&&e.grow!==!1)try{let d=a(n),f=n.getBoundingClientRect().height,b=n.viewBox&&n.viewBox.baseVal?n.viewBox.baseVal.height:0,w=typeof n.getScreenCTM=="function"?n.getScreenCTM():null,P=Ose(d?d.bottom:NaN,f,b,Jse(w),t);if(o.growFrom=Math.round(f),o.growTo=P.heightPx,o.growReason=P.reason,P.grow){if(n.setAttribute("height",String(P.heightPx)),b>0){let A=n.viewBox.baseVal;n.setAttribute("viewBox",`${A.x} ${A.y} ${A.width} ${P.viewBoxH}`)}o.grew=!0}}catch{o.growReason="grow-threw"}else n?o.growReason="grow-disabled":o.growReason="no-svg";let l=Zse(e.lane??"chart",r,t,s);o.reading=l;let u=Oz(r,s),c=Dz(u),h=n?n.getBoundingClientRect():null,m=c.source==="none"?Math.max(r.scrollWidth,h?h.width:0):c.w,p=c.source==="none"?Math.max(r.scrollHeight,h?h.height:0):c.h,g=_se(m,p,r.clientWidth,r.clientHeight,t);if(o.overflowX=g.overflowX,o.overflowY=g.overflowY,e.applyOverflow!==!1){if(r.style.overflowX=g.overflowX,r.style.overflowY=g.overflowY,e.restoreScroll){let d=Yse(e.restoreScroll.memory,e.restoreScroll.key,{scrollWidth:r.scrollWidth,scrollHeight:r.scrollHeight,clientWidth:r.clientWidth,clientHeight:r.clientHeight,overflowX:g.overflowX,overflowY:g.overflowY});r.scrollLeft!==d.x&&(r.scrollLeft=d.x),r.scrollTop!==d.y&&(r.scrollTop=d.y),o.scrolledTo=d}g.overflowY!=="auto"?(ed(r),o.axisPin=nl("not-scrolling")):e.pinAxis===!1?(ed(r),o.axisPin=nl("disabled")):o.axisPin=rle(r,n)}else ed(r),o.axisPin=nl("overflow-not-applied")}catch{}return o}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var Vz=new Set(["USA","CAN","MEX","GTM","BLZ","SLV","HND","NIC","CRI","PAN","CUB","JAM","HTI","DOM","BHS","PRI","TTO"]),Hz=75;function ole(r,e){let t=[],o=r.length;for(let n=0;n<o;n++){let i=r[n],a=r[(n+o-1)%o],s=i[1]<=e,l=a[1]<=e;if(s!==l){let u=i[1]-a[1],c=u===0?0:(e-a[1])/u;t.push([a[0]+c*(i[0]-a[0]),e])}s&&t.push(i)}return t.length&&(t[0][0]!==t[t.length-1][0]||t[0][1]!==t[t.length-1][1])&&t.push(t[0]),t}function zz(r,e){let t=r&&r.geometry;if(!t)return null;let o=n=>{let i=n.map(a=>ole(a,e)).filter(a=>a.length>=4);return i.length&&i[0].length>=4?i:null};if(t.type==="Polygon"){let n=o(t.coordinates);return n?{...r,geometry:{type:"Polygon",coordinates:n}}:null}if(t.type==="MultiPolygon"){let n=t.coordinates.map(o).filter(i=>i!==null);return n.length?{...r,geometry:{type:"MultiPolygon",coordinates:n}}:null}return r}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var nle=new Map,ile=new Map,Qk;function ale(r){if(!r)return null;let e=r.toLowerCase();return/^country/.test(e)||e==="north-america"||e==="world"?"world":e==="us-state-code"||e==="us-state-name"?"us-states":e==="us-zip5"?"us-zip3":null}var Zk;function sle(r){return Zk||(Zk={type:"FeatureCollection",features:r.features.filter(e=>e?.geometry&&e.geometry.type!=="Point")}),Zk}function lle(r){return Qk||(Qk={type:"FeatureCollection",features:r.features.filter(e=>Vz.has(e?.id)&&e?.geometry&&e.geometry.type!=="Point").map(e=>zz(e,Hz)).filter(e=>e!==null)}),Qk}function ule(r){let e=ale(r);if(!e)return;let t=ile.get(e);if(t)return r==="north-america"?lle(t):r==="world"?sle(t):t}function jz(r){if(!r)return;let e=r.toLowerCase();return nle.get(e)??ule(e)}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */function cle(r){if(typeof r!="string")return null;let e=r.trim(),t=e.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i);if(t)return[parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3]),t[4]!==void 0?parseFloat(t[4]):1];let o=e.replace(/^#/,"");return o.length===3&&(o=o.split("").map(n=>n+n).join("")),o.length===6&&/^[0-9a-fA-F]{6}$/.test(o)?[parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16),1]:null}var dP="#111111",yP="#ffffff",wM=3,mj=.5,fP=.05,Y7=.85,G7=2;function pj(r){return r>=fP&&r<Y7}var dj=.6;function yj(r,e){return!(e>0)||!isFinite(r)||r<=0?!1:r/e>=dj}var fj=.5;function gj(r,e){return!(e>0)||!isFinite(r)||r<=0?!1:r/e>=fj}function bj(r){return typeof r=="string"&&/(^|\s)lch-deck-panel(\s|$)/.test(r)}var Xz={white:[255,255,255,1],black:[0,0,0,1],none:[0,0,0,0],transparent:[0,0,0,0]};function ys(r){if(typeof r!="string")return null;let e=r.trim().toLowerCase();return e in Xz?Xz[e]:cle(r)}function Qh(r,e){let t=Math.max(0,Math.min(1,r[3]));return[Math.round(r[0]*t+e[0]*(1-t)),Math.round(r[1]*t+e[1]*(1-t)),Math.round(r[2]*t+e[2]*(1-t))]}function rd(r){let e=r.map(t=>{let o=t/255;return o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4)});return .2126*e[0]+.7152*e[1]+.0722*e[2]}function hP(r,e){let t=Math.max(r,e),o=Math.min(r,e);return(t+.05)/(o+.05)}function Sj(r,e,t,o,n=wM,i=!1){let a=ys(e);if(!a)return{fix:!1,color:"",reason:"fill-unparsed"};let s=ys(o)||[255,255,255,1],l=[s[0],s[1],s[2]],u=[a[0],a[1],a[2],a[3]*mle(t)],c=Qh(u,l),h=rd(c),m=Math.abs(c[0]-l[0])<=G7&&Math.abs(c[1]-l[1])<=G7&&Math.abs(c[2]-l[2])<=G7,p=i&&!m,g=ys(r);if(!p&&g){let w=Qh(g,c);if(hP(rd(w),h)>=n)return{fix:!1,color:"",reason:"ok"}}let d=hP(rd(Kz(dP)),h),f=hP(rd(Kz(yP)),h),b=h<=mj;return b&&f<n&&d>=n&&(b=!1),!b&&d<n&&f>=n&&(b=!0),b?{fix:!0,color:yP,reason:"fixed-light"}:{fix:!0,color:dP,reason:"fixed-dark"}}var Aj=3;function wj(r,e=Aj){let t=[];if(!r||!(r.width>0)||!(r.height>0)||!(e>=1))return t;let o=Math.floor(e);for(let n=0;n<o;n++)for(let i=0;i<o;i++)t.push({x:r.left+r.width*(n+.5)/o,y:r.top+r.height*(i+.5)/o});return t}var cM=8,hM=2,Pj=.125,PM=4.5,vM=.9;function NM(r){let e=[];if(!r||!(r.width>0)||!(r.height>0))return e;for(let t=0;t<cM;t++)for(let o=0;o<hM;o++)e.push({x:r.left+r.width*(t+.5)/cM,y:r.top+r.height*(o+.5)/hM});return e}function hle(r,e=8){let t=[];for(let o of r||[]){let n=t.find(i=>Math.abs(i.rgb[0]-o[0])<=e&&Math.abs(i.rgb[1]-o[1])<=e&&Math.abs(i.rgb[2]-o[2])<=e);n?n.n++:t.push({rgb:[o[0],o[1],o[2]],n:1})}return t.sort((o,n)=>n.n-o.n)}function vj(r){if(!r||r.length<2)return!1;let e=hle(r);return e.length>=2&&e[1].n/r.length>=Pj}function mP(r,e){let t=ys(r);if(!t||!e||!e.length)return 0;let o=1/0;for(let n of e){let i=Qh(t,n);o=Math.min(o,hP(rd(i),rd(n)))}return o}function Nj(r,e,t=PM){let o=mP(r,e);if(o>=t)return{color:String(r),contrast:o,keep:!0};let n=mP(dP,e),i=mP(yP,e),a=n>=i?{color:dP,contrast:n}:{color:yP,contrast:i};return a.contrast>o?{...a,keep:!1}:{color:String(r),contrast:o,keep:!0}}function mle(r){return typeof r!="number"||!isFinite(r)?1:Math.max(0,Math.min(1,r))}function Kz(r){let e=ys(r);return[e[0],e[1],e[2]]}function eM(r){let e=r/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}var xj=.95047,Ej=1,Cj=1.08883,mM=216/24389,V7=24389/27;function tM(r){return r>mM?Math.cbrt(r):(V7*r+16)/116}function ple(r,e,t){let o=eM(r),n=eM(e),i=eM(t),a=.4124564*o+.3575761*n+.1804375*i,s=.2126729*o+.7151522*n+.072175*i,l=.0193339*o+.119192*n+.9503041*i,u=tM(a/xj),c=tM(s/Ej),h=tM(l/Cj);return{L:116*c-16,a:500*(u-c),b:200*(c-h)}}function Nf(r){let e=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(r.trim());if(!e)return null;let t=e[1].length===3?e[1][0]+e[1][0]+e[1][1]+e[1][1]+e[1][2]+e[1][2]:e[1];return ple(parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16))}var MS=Math.PI/180,Yz=180/Math.PI,L7=1e-4;function X7(r,e){let t=Math.hypot(r.a,r.b),o=Math.hypot(e.a,e.b),n=(t+o)/2,i=Math.pow(n,7),a=.5*(1-Math.sqrt(i/(i+Math.pow(25,7)))),s=(1+a)*r.a,l=(1+a)*e.a,u=Math.hypot(s,r.b),c=Math.hypot(l,e.b),h=u<L7||c<L7,m=u<L7?0:(Math.atan2(r.b,s)*Yz+360)%360,p=c<L7?0:(Math.atan2(e.b,l)*Yz+360)%360,g=e.L-r.L,d=c-u,f;h?f=0:Math.abs(p-m)<=180?f=p-m:p-m>180?f=p-m-360:f=p-m+360;let b=2*Math.sqrt(u*c)*Math.sin(f/2*MS),w=(r.L+e.L)/2,P=(u+c)/2,A;h?A=m+p:Math.abs(m-p)<=180?A=(m+p)/2:m+p<360?A=(m+p+360)/2:A=(m+p-360)/2;let M=1-.17*Math.cos((A-30)*MS)+.24*Math.cos(2*A*MS)+.32*Math.cos((3*A+6)*MS)-.2*Math.cos((4*A-63)*MS),E=30*Math.exp(-Math.pow((A-275)/25,2)),U=Math.pow(P,7),L=-(2*Math.sqrt(U/(U+Math.pow(25,7))))*Math.sin(2*E*MS),T=Math.pow(w-50,2),v=1+.015*T/Math.sqrt(20+T),I=1+.045*P,D=1+.015*P*M,C=g/v,O=d/I,G=b/D;return Math.sqrt(C*C+O*O+G*G+L*O*G)}function uP(r){let e=u=>{let c=u*u*u;return c>mM?c:(116*u-16)/V7},t=(r.L+16)/116,o=t+r.a/500,n=t-r.b/200,i=xj*e(o),a=Ej*(r.L>V7*mM?t*t*t:r.L/V7),s=Cj*e(n);return"#"+[3.2404542*i-1.5371385*a-.4985314*s,-.969266*i+1.8760108*a+.041556*s,.0556434*i-.2040259*a+1.0572252*s].map(u=>{let c=Math.max(0,Math.min(1,u)),h=c<=.0031308?12.92*c:1.055*Math.pow(c,1/2.4)-.055;return Math.round(h*255).toString(16).padStart(2,"0")}).join("")}var xM=5,pM=4,dle=.15,qz=24,yle=5e3,fle=48,rM=32,Af={marks:0,distinctFills:0,crowdShare:0,spanDeltaE:0};function gle(r,e){try{let t=e?.defaultView;return t?.getComputedStyle?t.getComputedStyle(r):null}catch{return null}}function ble(r,e){let t=r.getAttribute?.("fill");if(t!=null&&String(t).trim()!=="")return String(t).trim();let o=e?.fill;return o==null?"":String(o).trim()}function Sle(r){let e=r.trim().toLowerCase();if(!e||e==="none"||e==="transparent")return null;let t=/^#([0-9a-f]{3}|[0-9a-f]{6})$/.exec(e);if(t){let n=t[1],i=n.length===3?n[0]+n[0]+n[1]+n[1]+n[2]+n[2]:n;return[parseInt(i.slice(0,2),16),parseInt(i.slice(2,4),16),parseInt(i.slice(4,6),16)]}let o=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)\s*(?:[,/]\s*([\d.]+)\s*)?\)$/.exec(e);return!o||o[4]!==void 0&&parseFloat(o[4])===0?null:[Math.round(parseFloat(o[1])),Math.round(parseFloat(o[2])),Math.round(parseFloat(o[3]))]}function Ale(r){return[Math.round(r[0]/rM),Math.round(r[1]/rM),Math.round(r[2]/rM)].join(",")}function wle(r){return"#"+r.map(e=>Math.max(0,Math.min(255,e)).toString(16).padStart(2,"0")).join("")}function kj(r,e){if(!r||typeof r.querySelectorAll!="function")return Af;try{let t=Array.from(r.querySelectorAll(`.${Qo}, [${to}]`));if(t.length===0||t.length>yle)return Af;let o=e??r.ownerDocument,n=[];for(let M of t){let E=Sle(ble(M,gle(M,o)));E&&n.push({rgb:E,tag:String(M.tagName||"").toLowerCase()})}let i=new Map;for(let M of n){let E=i.get(M.tag)??{fills:new Set,n:0};E.fills.add(M.rgb.join(",")),E.n++,i.set(M.tag,E)}let a=new Set([...i].filter(([,M])=>M.fills.size===1&&M.n>=qz).map(([M])=>M)),l=new Set([...i].filter(([M])=>!a.has(M)).flatMap(([,M])=>[...M.fills])).size>1?n.filter(M=>!a.has(M.tag)):n,u=new Set,c=new Map,h=0;for(let{rgb:M}of l){h++,u.add(M.join(","));let E=Ale(M),U=c.get(E);U?U.n++:c.set(E,{rgb:M,n:1})}if(h<qz||u.size<pM)return Af;let m=[...c.values()].sort((M,E)=>E.n-M.n).slice(0,fle),p=m.map(M=>Nf(wle(M.rgb))).filter(M=>M!==null);if(p.length<pM)return Af;let g=p.map(()=>new Array(p.length).fill(0)),d=0,f=0,b=1;for(let M=0;M<p.length;M++)for(let E=M+1;E<p.length;E++){let U=X7(p[M],p[E]);g[M][E]=U,g[E][M]=U,U>d&&(d=U,f=M,b=E)}if(d<=0)return Af;let w=0,P=0;for(let M=0;M<p.length;M++)M===f||M===b||(w+=(g[f][M]+g[M][b])/d-1,P++);if(P<2||w/P>dle)return Af;let A=0;for(let M=0;M<p.length;M++){let E=0;for(let U=0;U<p.length;U++)(M===U||g[M][U]<=xM)&&(E+=m[U].n);E>A&&(A=E)}return{marks:h,distinctFills:u.size,crowdShare:Math.round(A/h*100),spanDeltaE:Math.round(d)}}catch{return Af}}var Mj=7,EM=.5,Tj=2.3,Ple="#3182bd",vle=20,Nle=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;function td(r){if(typeof r!="string")return null;let e=Nle.exec(r.trim());return e?"#"+(e[1].length===3?e[1].split("").map(o=>o+o).join(""):e[1]).toLowerCase():null}function dM(r,e,t){return{L:r.L+(e.L-r.L)*t,a:r.a+(e.a-r.a)*t,b:r.b+(e.b-r.b)*t}}function Wj(r,e,t){let o=[1,3,5].map(a=>parseInt(r.slice(a,a+2),16)),n=[1,3,5].map(a=>parseInt(e.slice(a,a+2),16)),i=o.map((a,s)=>Math.round(a*t+n[s]*(1-t))).map(a=>a.toString(16).padStart(2,"0"));return Nf("#"+i.join(""))}function Lj(r,e,t,o=Mj,n=EM){let i=Nf(r),a=Nf(e),s=td(t);if(!i||!a||!s||o<2)return NaN;let l=null,u=1/0;for(let c=0;c<o;c++){let h=Wj(uP(dM(i,a,c/(o-1))),s,n);l&&(u=Math.min(u,X7(l,h))),l=h}return u}function Ij(r){return td(r.backgroundColor)??td(r.themeBg)??"#ffffff"}var Jz="",oM={low:"",high:""};function yM(r){let e=Ij(r),t=Array.isArray(r.palette)?r.palette:[],o=[e,r.isHighContrast?1:0,r.themeAccent??"",r.themeFg??"",t.join(",")].join("|");if(o===Jz)return oM;let n=Nf(e),i=n.L<50,a=d=>{let f=d?Nf(d):null;return!!f&&X7(f,n)>=vle},l=(r.isHighContrast?[td(r.themeAccent),td(r.themeFg)]:[...t.map(td),td(r.themeAccent),td(r.themeFg)]).find(a)??Ple,u=Nf(l),c=.1,h=dM(n,u,c);for(;c<.6&&X7(Wj(uP(h),e,EM),n)<xM;)c+=.02,h=dM(n,u,c);let m=uP(h),p={...u},g=uP(p);for(let d=0;d<80&&Lj(m,g,e)<Tj;d++){let f=Math.max(4,Math.min(98,p.L+(i?1:-1)));if(f===p.L)break;p={...p,L:f},g=uP(p)}return Jz=o,oM={low:m,high:g},oM}var K7=Object.freeze(["xlsx","csv"]),Rj="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",_j="text/csv",xle=1048576,Ele=16384,$z=32767;function q7(r){return r==null||typeof r=="string"&&r.trim()===""}function CM(r){if(q7(r)||typeof r=="boolean"||r instanceof Date)return null;let e=typeof r=="number"?r:Number(String(r).trim());return Number.isFinite(e)?e:null}function kM(r){if(q7(r)||typeof r=="boolean")return null;if(r instanceof Date){let n=r.getTime();return Number.isFinite(n)?n:null}if(typeof r=="number")return Number.isFinite(r)?r:null;let e=String(r).trim(),t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(t)return Date.UTC(+t[1],+t[2]-1,+t[3]);let o=Date.parse(e);return Number.isFinite(o)?o:null}function Uj(r){if(r===!0||r===!1)return r;if(q7(r))return null;let e=String(r).trim().toLowerCase();return e==="true"||e==="1"||e==="yes"?!0:e==="false"||e==="0"||e==="no"?!1:null}function H7(r){return r==null?"":r instanceof Date?Number.isFinite(r.getTime())?r.toISOString():"":String(r)}var z7=864e5;function Cle(r){return(r%z7+z7)%z7!==0}function pP(r){return r<10?"0"+r:String(r)}function MM(r){let e=new Date(r);return e.getUTCFullYear()+"-"+pP(e.getUTCMonth()+1)+"-"+pP(e.getUTCDate())}function Bj(r){let e=new Date(r);return MM(r)+" "+pP(e.getUTCHours())+":"+pP(e.getUTCMinutes())+":"+pP(e.getUTCSeconds())}function Dj(r){let e=r/z7+25569;return e<61?e-1:e}var kle=Date.UTC(1900,0,1);function Mle(r){let e=String(Math.abs(r));if(/e/i.test(e))return 0;let t=e.indexOf(".");return t<0?0:Math.min(15,e.length-t-1)}var Tle=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Wle(r){let e=Tle.exec(r.trim());if(!e)return null;let t=e[3]||"",o=e[4]||"",n=!!e[7],i=!!e[9],a=e[10]||"",s=e[8]?parseInt(e[8].slice(1),10):null,l={prefix:o==="$"?"$":"",suffix:"",group:n,minD:0,maxD:0,percent:!1,plus:t==="+",parens:t==="(",scientific:!1};if(a==="f"){let u=s===null?6:s;return{...l,maxD:u,minD:i?0:u}}if(a==="%"){let u=s===null?6:s;return{...l,percent:!0,maxD:u,minD:i?0:u}}if(a==="d")return l;if(a==="e"){let u=s===null?6:s;return{...l,scientific:!0,maxD:u,minD:u}}return(a===""||a==="n"||a==="g"||a==="r")&&(n||a==="n")?{...l,group:!0,maxD:15,minD:0}:null}function Lle(r){let e=r.split(";"),t=e[0],o=(/\[\$([^\-\]]+)/.exec(t)||[])[1]||"",n=t.replace(/\[[^\]]*\]/g,""),i=n.replace(/"[^"]*"/g,"").replace(/\\./g,""),a=i.indexOf("%")>=0;if(!a&&!/[0#]/.test(i))return null;let s=o,l=!1;if(!s){let m=/"([^"]*[$\u20AC\u00A3\u00A5][^"]*)"/.exec(n),p=m?null:/\\?([$\u20AC\u00A3\u00A5])/.exec(n);m?s=m[1].trim():p&&(s=p[1])}if(s){let m=n.search(/[0#]/),p=n.indexOf(s);l=p>=0&&m>=0&&p>m}let u=/\.([0#]+)/.exec(i),c=u?u[1].length:0,h=u?u[1].replace(/#/g,"").length:0;return{prefix:s&&!l?s:"",suffix:s&&l?s:"",group:i.indexOf(",")>=0,minD:h,maxD:Math.min(15,c),percent:a,plus:/^\s*\+/.test(i),parens:e.length>1&&/\(/.test(e[1])&&/\)/.test(e[1]),scientific:!1}}function Qz(r){return r?'"'+r.replace(/"/g,"")+'"':""}function Ile(r,e){let t=Math.max(r.minD,Math.min(r.maxD,e));if(r.scientific)return"0"+(t>0?"."+"0".repeat(t):"")+"E+00";let o=(r.group?"#,##0":"0")+(t>0?"."+"0".repeat(t):"")+(r.percent?"%":""),n=Qz(r.prefix)+o+Qz(r.suffix);if(!r.plus&&!r.parens)return n==="0"?null:n;let i=(r.plus?"+":"")+n,a=r.parens?"("+n+")":"-"+n;return i+";"+a+";"+n}function Oj(r,e=[]){let t=null;if(typeof r.d3Format=="string"&&r.d3Format.trim()?t=Wle(r.d3Format):typeof r.modelFormat=="string"&&r.modelFormat.trim()&&(t=Lle(r.modelFormat)),!t)return null;let o=0;for(let n of e){let i=Mle(t.percent?Math.round(n*100*1e9)/1e9:n);i>o&&(o=i)}return Ile(t,o)}var Rle=/^[=+\-@\t\r]/;function I7(r){return/[",\r\n]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r}function Fj(r,e){for(let t of r.rows){let o=kM(t[e]);if(o!==null&&Cle(o))return!0}return!1}function Gj(r){let e=r.columns,t=e.map((n,i)=>n.type==="date"&&Fj(r,i)),o=[e.map(n=>I7(R7(n.name))).join(",")];for(let n of r.rows){let i=[];for(let a=0;a<e.length;a++){let s=e[a],l=n[a];if(s.type==="number"){let u=CM(l);i.push(u===null?"":String(u));continue}if(s.type==="date"){let u=kM(l);i.push(u===null?I7(R7(H7(l))):t[a]?Bj(u):MM(u));continue}if(s.type==="boolean"){let u=Uj(l);i.push(u===null?I7(R7(H7(l))):u?"TRUE":"FALSE");continue}i.push(I7(R7(H7(l))))}o.push(i.join(","))}return"\uFEFF"+o.join(`\r
|
|
252
252
|
`)+`\r
|
|
253
253
|
`}function R7(r){return Rle.test(r)?"'"+r:r}var TM=/[\u0000-\u0008\u000B\u000C\u000E-\u001F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g;function j7(r){return r.replace(TM,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function nM(r){let e="",t=r+1;for(;t>0;){let o=(t-1)%26;e=String.fromCharCode(65+o)+e,t=Math.floor((t-1)/26)}return e}function Vj(r){let e=String(r??"").replace(/[\[\]:*?/\\]/g," ").replace(TM,"").replace(/\s+/g," ").trim();return e=e.replace(/^'+|'+$/g,"").trim(),e.length>31&&(e=e.slice(0,31).trim()),(!e||e.toLowerCase()==="history")&&(e="Data"),e}function Hj(r,e){let t=String(r??"").replace(TM,"").replace(/[<>:"/\\|?*\u0000-\u001F]/g," ").replace(/\s+/g," ").trim();return t=t.replace(/[. ]+$/,""),t.length>80&&(t=t.slice(0,80).trim()),(!t||/^(con|prn|aux|nul|com\d|lpt\d)$/i.test(t))&&(t="table"),t+"."+e}function zj(r){let e=r.columns.slice(0,Ele),t=r.rows.slice(0,xle-1),o=e.length,n={},i=[],a={},s=2,l=3,u=4,c=[],h=[];for(let v=0;v<o;v++){let I=e[v];if(h.push(I.type==="date"&&Fj({columns:e,rows:t},v)),I.type==="number"){let D=[];for(let O of t){let G=CM(O[v]);G!==null&&D.push(G)}let C=Oj(I,D);C?(n[C]===void 0&&(n[C]=164+i.length,i.push(C)),a[C]===void 0&&(a[C]=u++),c.push(a[C])):c.push(0)}else I.type==="date"?c.push(h[v]?l:s):c.push(0)}let m=e.map(v=>Math.min(60,String(v.name).length+3)),p=[],g=(v,I)=>nM(v)+(I+1),d=[];for(let v=0;v<o;v++)d.push(fM(g(v,0),e[v].name,1));p.push('<row r="1">'+d.join("")+"</row>");for(let v=0;v<t.length;v++){let I=t[v],D=[];for(let C=0;C<o;C++){let O=_le(e[C],I[C],g(C,v+1),c[C],h[C]);O&&(D.push(O.xml),O.width>m[C]&&(m[C]=Math.min(60,O.width)))}p.push('<row r="'+(v+2)+'">'+D.join("")+"</row>")}let f=o?nM(o-1)+(t.length+1):"A1",b=o?"<cols>"+m.map((v,I)=>'<col min="'+(I+1)+'" max="'+(I+1)+'" width="'+Math.max(8,Math.round(v+1))+'" customWidth="1"/>').join("")+"</cols>":"",w=Vj(r.title),P=TS+'<worksheet xmlns="'+iM+'" xmlns:r="'+Zz+'"><dimension ref="A1:'+f+'"/><sheetViews><sheetView tabSelected="1" workbookViewId="0">'+(o?'<pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/><selection pane="bottomLeft" activeCell="A2" sqref="A2"/>':"")+'</sheetView></sheetViews><sheetFormatPr defaultRowHeight="15"/>'+b+"<sheetData>"+p.join("")+"</sheetData>"+(o?'<autoFilter ref="A1:'+f+'"/>':"")+"</worksheet>",A=TS+'<workbook xmlns="'+iM+'" xmlns:r="'+Zz+'"><bookViews><workbookView/></bookViews><sheets><sheet name="'+j7(w)+'" sheetId="1" r:id="rId1"/></sheets>'+(o?'<definedNames><definedName name="_xlnm._FilterDatabase" localSheetId="0" hidden="1">'+j7("'"+w.replace(/'/g,"''")+"'!$A$1:$"+nM(o-1)+"$"+(t.length+1))+"</definedName></definedNames>":"")+"</workbook>",M=i.length?'<numFmts count="'+i.length+'">'+i.map(v=>'<numFmt numFmtId="'+n[v]+'" formatCode="'+j7(v)+'"/>').join("")+"</numFmts>":"",E=['<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>','<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/>','<xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>','<xf numFmtId="22" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>'];for(let v of i)E[a[v]]='<xf numFmtId="'+n[v]+'" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>';let U=TS+'<styleSheet xmlns="'+iM+'">'+M+'<fonts count="2"><font><sz val="11"/><name val="Calibri"/><family val="2"/></font><font><b/><sz val="11"/><name val="Calibri"/><family val="2"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="'+E.length+'">'+E.join("")+'</cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>',F=TS+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/></Types>',L=TS+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>',T=TS+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>';return Dle([["[Content_Types].xml",F],["_rels/.rels",L],["xl/workbook.xml",A],["xl/_rels/workbook.xml.rels",T],["xl/styles.xml",U],["xl/worksheets/sheet1.xml",P]])}var TS=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
254
|
-
`,iM="http://schemas.openxmlformats.org/spreadsheetml/2006/main",Zz="http://schemas.openxmlformats.org/officeDocument/2006/relationships";function fM(r,e,t){let o=String(e);return o.length>$z&&(o=o.slice(0,$z)),'<c r="'+r+'"'+(t?' s="'+t+'"':"")+' t="inlineStr"><is><t xml:space="preserve">'+j7(o)+"</t></is></c>"}function _le(r,e,t,o,n){if(q7(e))return null;if(r.type==="number"){let a=CM(e);if(a!==null)return{xml:'<c r="'+t+'"'+(o?' s="'+o+'"':"")+"><v>"+String(a)+"</v></c>",width:String(a).length+(Math.abs(a)>=1e3?Math.floor(Math.log10(Math.abs(a))/3):0)+2}}else if(r.type==="date"){let a=kM(e);if(a!==null&&a>=kle)return{xml:'<c r="'+t+'" s="'+o+'"><v>'+String(Dj(a))+"</v></c>",width:n?18:12};if(a!==null){let s=n?Bj(a):MM(a);return{xml:fM(t,s,0),width:s.length+1}}}else if(r.type==="boolean"){let a=Uj(e);if(a!==null)return{xml:'<c r="'+t+'" t="b"><v>'+(a?1:0)+"</v></c>",width:7}}let i=H7(e);return{xml:fM(t,i,0),width:Math.min(60,Ule(i)+1)}}function Ule(r){let e=0;for(let t of r.split(/\r?\n/))t.length>e&&(e=t.length);return e}var _7=null;function Ble(r){if(!_7){_7=new Uint32Array(256);for(let t=0;t<256;t++){let o=t;for(let n=0;n<8;n++)o=o&1?3988292384^o>>>1:o>>>1;_7[t]=o>>>0}}let e=4294967295;for(let t=0;t<r.length;t++)e=_7[(e^r[t])&255]^e>>>8;return(e^4294967295)>>>0}function gM(r){return new TextEncoder().encode(r)}function Dle(r){let o=[],n=[],i=0;for(let[m,p]of r){let g=gM(m),d=typeof p=="string"?gM(p):p,f=Ble(d),b=new Uint8Array(30+g.length),w=new DataView(b.buffer);w.setUint32(0,67324752,!0),w.setUint16(4,20,!0),w.setUint16(6,2048,!0),w.setUint16(8,0,!0),w.setUint16(10,0,!0),w.setUint16(12,33,!0),w.setUint32(14,f,!0),w.setUint32(18,d.length,!0),w.setUint32(22,d.length,!0),w.setUint16(26,g.length,!0),w.setUint16(28,0,!0),b.set(g,30);let P=new Uint8Array(46+g.length),A=new DataView(P.buffer);A.setUint32(0,33639248,!0),A.setUint16(4,20,!0),A.setUint16(6,20,!0),A.setUint16(8,2048,!0),A.setUint16(10,0,!0),A.setUint16(12,0,!0),A.setUint16(14,33,!0),A.setUint32(16,f,!0),A.setUint32(20,d.length,!0),A.setUint32(24,d.length,!0),A.setUint16(28,g.length,!0),A.setUint16(30,0,!0),A.setUint16(32,0,!0),A.setUint16(34,0,!0),A.setUint16(36,0,!0),A.setUint32(38,0,!0),A.setUint32(42,i,!0),P.set(g,46),o.push(b,d),n.push(P),i+=b.length+d.length}let a=n.reduce((m,p)=>m+p.length,0),s=new Uint8Array(22),l=new DataView(s.buffer);l.setUint32(0,101010256,!0),l.setUint16(4,0,!0),l.setUint16(6,0,!0),l.setUint16(8,r.length,!0),l.setUint16(10,r.length,!0),l.setUint32(12,a,!0),l.setUint32(16,i,!0),l.setUint16(20,0,!0);let u=i+a+s.length,c=new Uint8Array(u),h=0;for(let m of o)c.set(m,h),h+=m.length;for(let m of n)c.set(m,h),h+=m.length;return c.set(s,h),c}function jj(r,e){let t=Hj(r.title,e);if(e==="csv"){let o=Gj(r);return{name:t,format:e,mime:_j+";charset=utf-8",bytes:gM(o),text:o,table:r}}return{name:t,format:e,mime:Rj,bytes:zj(r),table:r}}function Xj(r){return Array.isArray(r)?K7.filter(e=>r.indexOf(e)>=0):K7.slice()}function Kj(r,e=K7){let t=e.slice();return async(o,n)=>{try{if(!o||!Array.isArray(o.columns)||!Array.isArray(o.rows)||t.indexOf(n)<0)return!1;let i=jj(o,n);return await r(i)!==!1}catch{return!1}}}function Ole(r,e){if(typeof r!="function")return{};let t=Xj(Array.isArray(e)?e:void 0);if(!t.length)return{};let o=r;return{saveFile:o,exportFormats:Object.freeze(t),exportTable:Kj(o,t)}}function Fle(r){let e=r.geoLandColor?null:ys(r.backgroundColor);if(!e||e[3]<1||rd([e[0],e[1],e[2]])>.2)return;let t=ys(r.themeFg)??[255,255,255,1];return"#"+Qh([t[0],t[1],t[2],.18],[e[0],e[1],e[2]]).map(o=>o.toString(16).padStart(2,"0")).join("")}var U7=(r,e,t)=>Math.max(e,Math.min(t,r)),aP=(r,e)=>{let t=r==null||r===""?NaN:Number(r);return Number.isFinite(t)?t:e};function Yj(r){let e=Ole(r.saveFile,r.exportFormats);return{width:r.width,height:r.height,palette:r.palette,geoUnmatched:r.geoUnmatched,geo:r.geo,geoPoint:r.geoPoint,geoPointDest:r.geoPointDest,dateCellsAreUtcDays:r.dateCellsAreUtcDays,dataComplete:r.dataComplete,rowsWithheld:r.rowsWithheld,rowsFilteredOut:r.rowsFilteredOut,openUrl:typeof r.openUrl=="function"?r.openUrl:void 0,copyText:typeof r.copyText=="function"?r.copyText:void 0,saveFile:e.saveFile,exportFormats:e.exportFormats,exportTable:e.exportTable,maxMapPoints:(()=>{let t=aP(r.maxMapPoints,0);return t>0?Math.round(t):v7})(),geoPointRadiusPx:Math.max(0,aP(r.geoPointRadiusPx,0)),pageSize:Math.max(0,aP(r.pageSize,0)),uiState:r.uiState,setUiState:r.setUiState,backgroundColor:r.backgroundColor,themeBg:r.themeBg,themeFg:r.themeFg,isHighContrast:r.isHighContrast,themeAccent:r.themeAccent,cultureCode:r.cultureCode,allowTooltips:r.allowTooltips,noDataText:r.noDataText,dimOpacity:(()=>{let t=r.dimOpacity,o=typeof t=="number"?t:typeof t=="string"&&t.trim()!==""?Number(t):NaN;return Number.isFinite(o)?U7(o,Tk,1):void 0})(),selectionGlyph:(()=>{let t=(r.selectionGlyph==null?"":String(r.selectionGlyph)).toLowerCase();return t==="dot"||t==="check"?t:void 0})(),suppressSelectionGlyph:r.suppressSelectionGlyph===!0?!0:void 0,onSelect:r.onSelect,onControlChange:r.onControlChange,lasso:r.lasso,colorScaleLow:r.colorScaleLow||void 0,colorScaleHigh:r.colorScaleHigh||void 0,colorScaleAutoLow:yM(r).low,colorScaleAutoHigh:yM(r).high,colorScaleScope:r.colorScaleScope==="frame"||r.colorScaleScope==="self"?r.colorScaleScope:"",colorScaleSelfClampPct:U7(Number(r.colorScaleSelfClampPct)||Ik,Rk,_k),geoLandColor:r.geoLandColor||Fle(r)||void 0,geoNoDataColor:r.geoNoDataColor||void 0,geoBorders:r.geoBorders!==!1,aggregation:(r.aggregation==null?"":String(r.aggregation))||void 0,approximatePositions:(()=>{let t=(r.approximatePositions==null?"":String(r.approximatePositions)).toLowerCase();return t==="mark"||t==="aggregate"||t==="skip"?t:Uk})(),valueAxisBaseline:(()=>{let t=(r.valueAxisBaseline==null?"":String(r.valueAxisBaseline)).toLowerCase();return t==="zero"||t==="fit"||t==="auto"?t:w7})(),seasonalMarkers:(()=>{let t=(r.seasonalMarkers==null?"":String(r.seasonalMarkers)).toLowerCase();return t==="auto"||t==="always"||t==="never"?t:P7})(),animAutoPlay:!!r.animAutoPlay,animPlaySpeedMs:U7(Number(r.animPlaySpeedMs)||h7,m7,p7),animLoopDelaySec:Math.max(y7,aP(r.animLoopDelaySec,d7)),animMaxIdealFrames:U7(Number(r.animMaxIdealFrames)||f7,g7,b7),animStopAtEnd:!!r.animStopAtEnd,filtersDuringPlay:!!r.filtersDuringPlay,animTimelineStyle:(r.animTimelineStyle||"").toString(),flipSync:r.flipSync===void 0||r.flipSync===null?!0:!!r.flipSync,flipMode:(()=>{let t=(r.flipMode==null?"":String(r.flipMode)).toLowerCase();return t==="single"||t==="all"||t==="both"?t:r.flipSync===!1?"single":r.flipSync===!0?"all":S7})(),flipDirection:(()=>{let t=(r.flipDirection==null?"":String(r.flipDirection)).toLowerCase();return t==="horizontal"||t==="vertical"?t:A7})(),flipIntervalMs:(()=>{let t=aP(r.flipIntervalMs,NaN);return Number.isFinite(t)?Math.max(0,t):void 0})(),cardBackgroundColor:r.cardBackgroundColor||void 0,hoverDropLines:(()=>{let t=r.hoverDropLines;if(typeof t=="boolean")return t;let o=t==null?"":String(t).trim().toLowerCase();return o==="on"||o==="true"||o==="1"?!0:o==="off"||o==="false"||o==="0"?!1:void 0})()}}var aM="__rowIdx__";function ej(r,e,t){let o=null,n=null,i=null,a,s=t??null,l=[],u=[],c;if(s){let m=r.filter(d=>!d.isMeasure).map(d=>d.name),p=rz(m,e,s,t?.mapKind,r.map(d=>d.name));s=p.bind,l=p.backfilled,u=p.refused;let g=p.labelFallback;c=g&&(g.country||g.city||g.state||g.zip)}if(!!s&&!!(s.city||s.state||s.zip||s.country||s.lat&&s.lon)){let m=s,p=YH(e.map(g=>({lat:m.lat?g[m.lat]:null,lon:m.lon?g[m.lon]:null,city:m.city?g[m.city]:null,state:m.state?g[m.state]:null,zip:m.zip?g[m.zip]:null,country:m.country?g[m.country]:null,label:c?g[c]:null})),t?.mapKind,t?.region??null);o=p.lat,n=p.lon,i=p.precisions,a={precision:p.precision,precisionCounts:p.precisionCounts,coarseExamples:p.coarseExamples,unplaced:p.totalRows-p.matchedRows-p.ambiguousRows,unplacedExamples:p.unmatched.slice(0,8),ambiguousRows:p.ambiguousRows,...p.ambiguousExamples.length?{ambiguousExamples:p.ambiguousExamples}:{},...l.length?{rolesBackfilled:l}:{},...u.length?{rolesRefused:u}:{}}}return{lat:o,lon:n,prec:i,geoPoint:a,rolesRefused:u}}function qj(r,e,t,o,n,i){r=r.filter(C=>C.name!==aM);let a=null;if(i?.utcDays){let C=UH(r,e);e=C.rows,a=C.columns}let s=null;if(i?.localWallClock){let C=BH(r,e);e=C.rows,s=C.columns}let l=ej(r,e,o),u=ej(r,e,n),c=l.lat,h=l.lon,m=l.prec,p=u.lat,g=u.lon,d=u.prec,f=l.geoPoint,b=u.geoPoint,w=[...l.rolesRefused,...u.rolesRefused.map(C=>`destination: ${C}`)],P=null,A,M,E;if(t&&t.column&&t.grain&&t.grain.toLowerCase()==="admin1"&&t.join){let C=(t.kind||"").toLowerCase(),O=t.fallback??{},G=C.startsWith("admin1-")||C.startsWith("us-state-"),j=C==="latlon"?t.column:O.lat??null,Y=O.lon??(j?Gle(r.map(ye=>ye.name)):null),z=C.startsWith("city")?t.column:O.city??null,X=t.locate??void 0,ue=t.join(e.map(ye=>({province:G?ye[t.column]:void 0,city:z?ye[z]:void 0,country:O.country?ye[O.country]:void 0,lat:j?ye[j]:void 0,lon:Y?ye[Y]:void 0})),{provinceKind:G?C:null,deriveProvinces:t.deriveProvinces,locate:X??void 0});P=ue.iso,A={count:ue.totalRows-ue.matchedRows,examples:ue.unmatched.slice(0,8)},M=ue.unmatched.length;let Q={province:0,coordinates:0,city:0};for(let ye of ue.source)ye&&Q[ye]++;E={sources:Q,ambiguousRows:ue.ambiguousRows,ambiguousExamples:ue.ambiguousExamples,unplacedPoints:ue.unplacedPoints}}else if(t&&t.column&&t.kind&&QH(t.kind)){let C=ZH(e.map(O=>O[t.column]),t.kind);P=C.iso,A={count:C.totalRows-C.matchedRows,examples:C.unmatched.slice(0,8)},M=C.unmatched.length}let U=[aM];P&&U.push("__geoIso__"),c&&U.push("__geoLat__","__geoLon__","__geoPrecision__"),p&&U.push("__geoLatD__","__geoLonD__","__geoPrecisionD__");let F=new Set(U);r.some(C=>F.has(C.name))&&(r=r.filter(C=>!F.has(C.name)));let L=r.map(C=>C.name),T=[];if(i?.aliases&&i.aliases.length>0){let C=new Set([...L,...U]);for(let O of i.aliases){let G=O?L.indexOf(O.name):-1;G<0||!O.alias||C.has(O.alias)||(C.add(O.alias),T.push({from:G,name:O.alias}))}}let v=U.length+T.length,I=new Array(e.length);for(let C=0;C<e.length;C++){let O=e[C],G=new Array(r.length+v);for(let Y=0;Y<r.length;Y++){let z=O[L[Y]];z instanceof Date?G[Y]=z.toISOString():G[Y]=z??null}let j=r.length;G[j++]=C,P&&(G[j++]=P[C]),c&&h&&(G[j++]=c[C],G[j++]=h[C],G[j++]=m?m[C]:null),p&&g&&(G[j++]=p[C],G[j++]=g[C],G[j++]=d?d[C]:null);for(let Y of T)G[j++]=G[Y.from];I[C]=G}let D=[...r,{name:aM,dataType:"Integer",isMeasure:!1,modelDesc:""}];P&&D.push({name:"__geoIso__",dataType:"String",isMeasure:!1,modelDesc:""}),c&&D.push({name:"__geoLat__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLon__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecision__",dataType:"String",isMeasure:!1,modelDesc:""}),p&&D.push({name:"__geoLatD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLonD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecisionD__",dataType:"String",isMeasure:!1,modelDesc:""});for(let C of T)D.push({...r[C.from],name:C.name,aliasOf:r[C.from].name});return{columns:D,rows:I,geoUnmatched:A,geoUnmatchedDistinct:M,geoPoint:f,...b?{geoPointDest:b}:{},...w.length?{geoPointRefused:w}:{},...a?{dateCellsAreUtcDays:!0,utcDayColumns:a}:{},...s?{dateCellsAreUtcWallClock:!0,utcWallClockColumns:s}:{},...E?{geoProvince:E}:{}}}function Gle(r){let e=t=>t.replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-zÀ-ɏ]+/);return r.find(t=>e(t).some(o=>o==="lon"||o==="lng"||o==="long"||o==="longitude"))??null}function Jj(r){let e=String(r??""),t=e.length,o="",n=0,i=[],a="",s="",l=!1,u=()=>a===""||"(,=:[!&|?{};+-*%<>~^".includes(a)?!0:/^(return|typeof|instanceof|in|of|new|delete|void|throw|case|do|else|yield|await)$/.test(s);for(;n<t;){let c=e[n],h=n+1<t?e[n+1]:"",m=i.length>0?i[i.length-1]:null;if(m===-1){if(c==="\\"){o+=e.slice(n,n+2),n+=2;continue}if(c==="`"){i.pop(),o+=c,n++,a="`",s="",l=!1;continue}if(c==="$"&&h==="{"){i[i.length-1]=0,o+="${",n+=2,a="{",s="",l=!1;continue}o+=c,n++;continue}if(c==="/"&&h==="/"){let p=n+2;for(;p<t&&e[p]!==`
|
|
254
|
+
`,iM="http://schemas.openxmlformats.org/spreadsheetml/2006/main",Zz="http://schemas.openxmlformats.org/officeDocument/2006/relationships";function fM(r,e,t){let o=String(e);return o.length>$z&&(o=o.slice(0,$z)),'<c r="'+r+'"'+(t?' s="'+t+'"':"")+' t="inlineStr"><is><t xml:space="preserve">'+j7(o)+"</t></is></c>"}function _le(r,e,t,o,n){if(q7(e))return null;if(r.type==="number"){let a=CM(e);if(a!==null)return{xml:'<c r="'+t+'"'+(o?' s="'+o+'"':"")+"><v>"+String(a)+"</v></c>",width:String(a).length+(Math.abs(a)>=1e3?Math.floor(Math.log10(Math.abs(a))/3):0)+2}}else if(r.type==="date"){let a=kM(e);if(a!==null&&a>=kle)return{xml:'<c r="'+t+'" s="'+o+'"><v>'+String(Dj(a))+"</v></c>",width:n?18:12};if(a!==null){let s=n?Bj(a):MM(a);return{xml:fM(t,s,0),width:s.length+1}}}else if(r.type==="boolean"){let a=Uj(e);if(a!==null)return{xml:'<c r="'+t+'" t="b"><v>'+(a?1:0)+"</v></c>",width:7}}let i=H7(e);return{xml:fM(t,i,0),width:Math.min(60,Ule(i)+1)}}function Ule(r){let e=0;for(let t of r.split(/\r?\n/))t.length>e&&(e=t.length);return e}var _7=null;function Ble(r){if(!_7){_7=new Uint32Array(256);for(let t=0;t<256;t++){let o=t;for(let n=0;n<8;n++)o=o&1?3988292384^o>>>1:o>>>1;_7[t]=o>>>0}}let e=4294967295;for(let t=0;t<r.length;t++)e=_7[(e^r[t])&255]^e>>>8;return(e^4294967295)>>>0}function gM(r){return new TextEncoder().encode(r)}function Dle(r){let o=[],n=[],i=0;for(let[m,p]of r){let g=gM(m),d=typeof p=="string"?gM(p):p,f=Ble(d),b=new Uint8Array(30+g.length),w=new DataView(b.buffer);w.setUint32(0,67324752,!0),w.setUint16(4,20,!0),w.setUint16(6,2048,!0),w.setUint16(8,0,!0),w.setUint16(10,0,!0),w.setUint16(12,33,!0),w.setUint32(14,f,!0),w.setUint32(18,d.length,!0),w.setUint32(22,d.length,!0),w.setUint16(26,g.length,!0),w.setUint16(28,0,!0),b.set(g,30);let P=new Uint8Array(46+g.length),A=new DataView(P.buffer);A.setUint32(0,33639248,!0),A.setUint16(4,20,!0),A.setUint16(6,20,!0),A.setUint16(8,2048,!0),A.setUint16(10,0,!0),A.setUint16(12,0,!0),A.setUint16(14,33,!0),A.setUint32(16,f,!0),A.setUint32(20,d.length,!0),A.setUint32(24,d.length,!0),A.setUint16(28,g.length,!0),A.setUint16(30,0,!0),A.setUint16(32,0,!0),A.setUint16(34,0,!0),A.setUint16(36,0,!0),A.setUint32(38,0,!0),A.setUint32(42,i,!0),P.set(g,46),o.push(b,d),n.push(P),i+=b.length+d.length}let a=n.reduce((m,p)=>m+p.length,0),s=new Uint8Array(22),l=new DataView(s.buffer);l.setUint32(0,101010256,!0),l.setUint16(4,0,!0),l.setUint16(6,0,!0),l.setUint16(8,r.length,!0),l.setUint16(10,r.length,!0),l.setUint32(12,a,!0),l.setUint32(16,i,!0),l.setUint16(20,0,!0);let u=i+a+s.length,c=new Uint8Array(u),h=0;for(let m of o)c.set(m,h),h+=m.length;for(let m of n)c.set(m,h),h+=m.length;return c.set(s,h),c}function jj(r,e){let t=Hj(r.title,e);if(e==="csv"){let o=Gj(r);return{name:t,format:e,mime:_j+";charset=utf-8",bytes:gM(o),text:o,table:r}}return{name:t,format:e,mime:Rj,bytes:zj(r),table:r}}function Xj(r){return Array.isArray(r)?K7.filter(e=>r.indexOf(e)>=0):K7.slice()}function Kj(r,e=K7){let t=e.slice();return async(o,n)=>{try{if(!o||!Array.isArray(o.columns)||!Array.isArray(o.rows)||t.indexOf(n)<0)return!1;let i=jj(o,n);return await r(i)!==!1}catch{return!1}}}function Ole(r,e){if(typeof r!="function")return{};let t=Xj(Array.isArray(e)?e:void 0);if(!t.length)return{};let o=r;return{saveFile:o,exportFormats:Object.freeze(t),exportTable:Kj(o,t)}}function Fle(r){let e=r.geoLandColor?null:ys(r.backgroundColor);if(!e||e[3]<1||rd([e[0],e[1],e[2]])>.2)return;let t=ys(r.themeFg)??[255,255,255,1];return"#"+Qh([t[0],t[1],t[2],.18],[e[0],e[1],e[2]]).map(o=>o.toString(16).padStart(2,"0")).join("")}var U7=(r,e,t)=>Math.max(e,Math.min(t,r)),aP=(r,e)=>{let t=r==null||r===""?NaN:Number(r);return Number.isFinite(t)?t:e};function Yj(r){let e=Ole(r.saveFile,r.exportFormats);return{width:r.width,height:r.height,palette:r.palette,geoUnmatched:r.geoUnmatched,geo:r.geo,geoPoint:r.geoPoint,geoPointDest:r.geoPointDest,geoPointRefused:r.geoPointRefused,dateCellsAreUtcDays:r.dateCellsAreUtcDays,dataComplete:r.dataComplete,rowsWithheld:r.rowsWithheld,rowsFilteredOut:r.rowsFilteredOut,openUrl:typeof r.openUrl=="function"?r.openUrl:void 0,copyText:typeof r.copyText=="function"?r.copyText:void 0,saveFile:e.saveFile,exportFormats:e.exportFormats,exportTable:e.exportTable,maxMapPoints:(()=>{let t=aP(r.maxMapPoints,0);return t>0?Math.round(t):v7})(),geoPointRadiusPx:Math.max(0,aP(r.geoPointRadiusPx,0)),pageSize:Math.max(0,aP(r.pageSize,0)),uiState:r.uiState,setUiState:r.setUiState,backgroundColor:r.backgroundColor,themeBg:r.themeBg,themeFg:r.themeFg,isHighContrast:r.isHighContrast,themeAccent:r.themeAccent,cultureCode:r.cultureCode,allowTooltips:r.allowTooltips,noDataText:r.noDataText,dimOpacity:(()=>{let t=r.dimOpacity,o=typeof t=="number"?t:typeof t=="string"&&t.trim()!==""?Number(t):NaN;return Number.isFinite(o)?U7(o,Tk,1):void 0})(),selectionGlyph:(()=>{let t=(r.selectionGlyph==null?"":String(r.selectionGlyph)).toLowerCase();return t==="dot"||t==="check"?t:void 0})(),suppressSelectionGlyph:r.suppressSelectionGlyph===!0?!0:void 0,onSelect:r.onSelect,onControlChange:r.onControlChange,lasso:r.lasso,colorScaleLow:r.colorScaleLow||void 0,colorScaleHigh:r.colorScaleHigh||void 0,colorScaleAutoLow:yM(r).low,colorScaleAutoHigh:yM(r).high,colorScaleScope:r.colorScaleScope==="frame"||r.colorScaleScope==="self"?r.colorScaleScope:"",colorScaleSelfClampPct:U7(Number(r.colorScaleSelfClampPct)||Ik,Rk,_k),geoLandColor:r.geoLandColor||Fle(r)||void 0,geoNoDataColor:r.geoNoDataColor||void 0,geoBorders:r.geoBorders!==!1,aggregation:(r.aggregation==null?"":String(r.aggregation))||void 0,approximatePositions:(()=>{let t=(r.approximatePositions==null?"":String(r.approximatePositions)).toLowerCase();return t==="mark"||t==="aggregate"||t==="skip"?t:Uk})(),valueAxisBaseline:(()=>{let t=(r.valueAxisBaseline==null?"":String(r.valueAxisBaseline)).toLowerCase();return t==="zero"||t==="fit"||t==="auto"?t:w7})(),seasonalMarkers:(()=>{let t=(r.seasonalMarkers==null?"":String(r.seasonalMarkers)).toLowerCase();return t==="auto"||t==="always"||t==="never"?t:P7})(),animAutoPlay:!!r.animAutoPlay,animPlaySpeedMs:U7(Number(r.animPlaySpeedMs)||h7,m7,p7),animLoopDelaySec:Math.max(y7,aP(r.animLoopDelaySec,d7)),animMaxIdealFrames:U7(Number(r.animMaxIdealFrames)||f7,g7,b7),animStopAtEnd:!!r.animStopAtEnd,filtersDuringPlay:!!r.filtersDuringPlay,animTimelineStyle:(r.animTimelineStyle||"").toString(),flipSync:r.flipSync===void 0||r.flipSync===null?!0:!!r.flipSync,flipMode:(()=>{let t=(r.flipMode==null?"":String(r.flipMode)).toLowerCase();return t==="single"||t==="all"||t==="both"?t:r.flipSync===!1?"single":r.flipSync===!0?"all":S7})(),flipDirection:(()=>{let t=(r.flipDirection==null?"":String(r.flipDirection)).toLowerCase();return t==="horizontal"||t==="vertical"?t:A7})(),flipIntervalMs:(()=>{let t=aP(r.flipIntervalMs,NaN);return Number.isFinite(t)?Math.max(0,t):void 0})(),cardBackgroundColor:r.cardBackgroundColor||void 0,hoverDropLines:(()=>{let t=r.hoverDropLines;if(typeof t=="boolean")return t;let o=t==null?"":String(t).trim().toLowerCase();return o==="on"||o==="true"||o==="1"?!0:o==="off"||o==="false"||o==="0"?!1:void 0})()}}var aM="__rowIdx__";function ej(r,e,t){let o=null,n=null,i=null,a,s=t??null,l=[],u=[],c;if(s){let m=r.filter(d=>!d.isMeasure).map(d=>d.name),p=rz(m,e,s,t?.mapKind,r.map(d=>d.name));s=p.bind,l=p.backfilled,u=p.refused;let g=p.labelFallback;c=g&&(g.country||g.city||g.state||g.zip)}if(!!s&&!!(s.city||s.state||s.zip||s.country||s.lat&&s.lon)){let m=s,p=YH(e.map(g=>({lat:m.lat?g[m.lat]:null,lon:m.lon?g[m.lon]:null,city:m.city?g[m.city]:null,state:m.state?g[m.state]:null,zip:m.zip?g[m.zip]:null,country:m.country?g[m.country]:null,label:c?g[c]:null})),t?.mapKind,t?.region??null);o=p.lat,n=p.lon,i=p.precisions,a={precision:p.precision,precisionCounts:p.precisionCounts,coarseExamples:p.coarseExamples,unplaced:p.totalRows-p.matchedRows-p.ambiguousRows,unplacedExamples:p.unmatched.slice(0,8),ambiguousRows:p.ambiguousRows,...p.ambiguousExamples.length?{ambiguousExamples:p.ambiguousExamples}:{},...l.length?{rolesBackfilled:l}:{},...u.length?{rolesRefused:u}:{}}}return{lat:o,lon:n,prec:i,geoPoint:a,rolesRefused:u}}function qj(r,e,t,o,n,i){r=r.filter(C=>C.name!==aM);let a=null;if(i?.utcDays){let C=UH(r,e);e=C.rows,a=C.columns}let s=null;if(i?.localWallClock){let C=BH(r,e);e=C.rows,s=C.columns}let l=ej(r,e,o),u=ej(r,e,n),c=l.lat,h=l.lon,m=l.prec,p=u.lat,g=u.lon,d=u.prec,f=l.geoPoint,b=u.geoPoint,w=[...l.rolesRefused,...u.rolesRefused.map(C=>`destination: ${C}`)],P=null,A,M,E;if(t&&t.column&&t.grain&&t.grain.toLowerCase()==="admin1"&&t.join){let C=(t.kind||"").toLowerCase(),O=t.fallback??{},G=C.startsWith("admin1-")||C.startsWith("us-state-"),j=C==="latlon"?t.column:O.lat??null,Y=O.lon??(j?Gle(r.map(ye=>ye.name)):null),z=C.startsWith("city")?t.column:O.city??null,X=t.locate??void 0,ue=t.join(e.map(ye=>({province:G?ye[t.column]:void 0,city:z?ye[z]:void 0,country:O.country?ye[O.country]:void 0,lat:j?ye[j]:void 0,lon:Y?ye[Y]:void 0})),{provinceKind:G?C:null,deriveProvinces:t.deriveProvinces,locate:X??void 0});P=ue.iso,A={count:ue.totalRows-ue.matchedRows,examples:ue.unmatched.slice(0,8)},M=ue.unmatched.length;let Q={province:0,coordinates:0,city:0};for(let ye of ue.source)ye&&Q[ye]++;E={sources:Q,ambiguousRows:ue.ambiguousRows,ambiguousExamples:ue.ambiguousExamples,unplacedPoints:ue.unplacedPoints}}else if(t&&t.column&&t.kind&&QH(t.kind)){let C=ZH(e.map(O=>O[t.column]),t.kind);P=C.iso,A={count:C.totalRows-C.matchedRows,examples:C.unmatched.slice(0,8)},M=C.unmatched.length}let U=[aM];P&&U.push("__geoIso__"),c&&U.push("__geoLat__","__geoLon__","__geoPrecision__"),p&&U.push("__geoLatD__","__geoLonD__","__geoPrecisionD__");let F=new Set(U);r.some(C=>F.has(C.name))&&(r=r.filter(C=>!F.has(C.name)));let L=r.map(C=>C.name),T=[];if(i?.aliases&&i.aliases.length>0){let C=new Set([...L,...U]);for(let O of i.aliases){let G=O?L.indexOf(O.name):-1;G<0||!O.alias||C.has(O.alias)||(C.add(O.alias),T.push({from:G,name:O.alias}))}}let v=U.length+T.length,I=new Array(e.length);for(let C=0;C<e.length;C++){let O=e[C],G=new Array(r.length+v);for(let Y=0;Y<r.length;Y++){let z=O[L[Y]];z instanceof Date?G[Y]=z.toISOString():G[Y]=z??null}let j=r.length;G[j++]=C,P&&(G[j++]=P[C]),c&&h&&(G[j++]=c[C],G[j++]=h[C],G[j++]=m?m[C]:null),p&&g&&(G[j++]=p[C],G[j++]=g[C],G[j++]=d?d[C]:null);for(let Y of T)G[j++]=G[Y.from];I[C]=G}let D=[...r,{name:aM,dataType:"Integer",isMeasure:!1,modelDesc:""}];P&&D.push({name:"__geoIso__",dataType:"String",isMeasure:!1,modelDesc:""}),c&&D.push({name:"__geoLat__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLon__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecision__",dataType:"String",isMeasure:!1,modelDesc:""}),p&&D.push({name:"__geoLatD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLonD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecisionD__",dataType:"String",isMeasure:!1,modelDesc:""});for(let C of T)D.push({...r[C.from],name:C.name,aliasOf:r[C.from].name});return{columns:D,rows:I,geoUnmatched:A,geoUnmatchedDistinct:M,geoPoint:f,...b?{geoPointDest:b}:{},...w.length?{geoPointRefused:w}:{},...a?{dateCellsAreUtcDays:!0,utcDayColumns:a}:{},...s?{dateCellsAreUtcWallClock:!0,utcWallClockColumns:s}:{},...E?{geoProvince:E}:{}}}function Gle(r){let e=t=>t.replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-zÀ-ɏ]+/);return r.find(t=>e(t).some(o=>o==="lon"||o==="lng"||o==="long"||o==="longitude"))??null}function Jj(r){let e=String(r??""),t=e.length,o="",n=0,i=[],a="",s="",l=!1,u=()=>a===""||"(,=:[!&|?{};+-*%<>~^".includes(a)?!0:/^(return|typeof|instanceof|in|of|new|delete|void|throw|case|do|else|yield|await)$/.test(s);for(;n<t;){let c=e[n],h=n+1<t?e[n+1]:"",m=i.length>0?i[i.length-1]:null;if(m===-1){if(c==="\\"){o+=e.slice(n,n+2),n+=2;continue}if(c==="`"){i.pop(),o+=c,n++,a="`",s="",l=!1;continue}if(c==="$"&&h==="{"){i[i.length-1]=0,o+="${",n+=2,a="{",s="",l=!1;continue}o+=c,n++;continue}if(c==="/"&&h==="/"){let p=n+2;for(;p<t&&e[p]!==`
|
|
255
255
|
`&&e[p]!=="\r";)p++;o+=" ",n=p,l=!1;continue}if(c==="/"&&h==="*"){let p=e.indexOf("*/",n+2),d=(p<0?e.slice(n+2):e.slice(n+2,p)).match(/\r\n|\r|\n/g);o+=d?d.join(""):" ",n=p<0?t:p+2,l=!1;continue}if(c==="'"||c==='"'){let p=n+1;for(;p<t&&e[p]!==c&&e[p]!==`
|
|
256
256
|
`;)p+=e[p]==="\\"?2:1;o+=e.slice(n,Math.min(p+1,t)),n=p+1,a=c,s="",l=!1;continue}if(c==="`"){i.push(-1),o+=c,n++,l=!1;continue}if(c==="/"&&u()){let p=n+1,g=!1;for(;p<t&&e[p]!==`
|
|
257
257
|
`;){let d=e[p];if(d==="\\"){p+=2;continue}if(d==="[")g=!0;else if(d==="]")g=!1;else if(d==="/"&&!g)break;p++}if(p<t&&e[p]==="/"){for(p++;p<t&&/[A-Za-z]/.test(e[p]);)p++;o+=e.slice(n,p),n=p,a="/",s="",l=!1;continue}}if(m!==null&&m>=0){if(c==="{")i[i.length-1]=m+1;else if(c==="}"){if(m===0){i[i.length-1]=-1,o+=c,n++;continue}i[i.length-1]=m-1}}o+=c,n++,/\s/.test(c)?l=!1:(/[A-Za-z0-9_$]/.test(c)?(s=l?s+c:c,l=!0):(s="",l=!1),a=c)}return o}var tj={markCount:0,legendMarkCount:0,containerKind:"empty",declaresNoRowMarks:!1};function J7(r){if(!r||typeof r.querySelectorAll!="function")return tj;try{let e=new Set;for(let i of Array.from(r.querySelectorAll(`.${Qo}`)))e.add(i);for(let i of Array.from(r.querySelectorAll(`[${to}]`)))e.add(i);let t=new Set;for(let i of Array.from(r.querySelectorAll(`.${ql}`)))t.add(i),e.delete(i);let o=!!r.querySelector("svg"),n=o||(r.childElementCount??0)>0;return{markCount:e.size,legendMarkCount:t.size,containerKind:o?"svg":n?"html":"empty",declaresNoRowMarks:!!r.querySelector(`[${Ck}]`)}}catch{return tj}}function $7(r){return r.contractUntagged||r.declaresNoRowMarks||r.animated||r.authoredNoDataText||!(r.rows>0)?!1:r.markCount===0}var cP=1,Vle=8;function $j(r){let e={measured:0,clipped:[],clippedCount:0,laidOut:!1};try{let t=r?.querySelector?.("svg");if(!t)return e;let o=t.getBoundingClientRect();if(!o||!(o.width>0)||!(o.height>0))return e;let n=t.ownerDocument?.defaultView,i=[],a=0;for(let s of Array.from(t.querySelectorAll("text"))){let l=s.getBoundingClientRect();if(!l||!(l.width>0)||!(l.height>0))continue;let u=n?.getComputedStyle?.(s);if(u&&(u.display==="none"||u.visibility==="hidden"||u.opacity==="0"))continue;a++;let c=o.top-l.top,h=o.left-l.left,m=l.bottom-o.bottom,p=l.right-o.right;(c>cP||h>cP||m>cP||p>cP)&&i.push({text:String(s.textContent??"").slice(0,40),top:Math.max(0,Math.round(c)),left:Math.max(0,Math.round(h)),bottom:Math.max(0,Math.round(m)),right:Math.max(0,Math.round(p))})}return i.sort((s,l)=>Math.max(l.top,l.left,l.bottom,l.right)-Math.max(s.top,s.left,s.bottom,s.right)),{measured:a,clipped:i.slice(0,Vle),clippedCount:i.length,laidOut:!0}}catch{return e}}var sM=24,Hle=5e3,zle=90,Qj=.8,jle=40,wf={marks:0,axis:"",column:"",fit:0,offShare:0,medianOffRadii:0};function lM(r,e){let t=r.getAttribute?.(e);return t==null||String(t).trim()===""?NaN:parseFloat(String(t))}function bM(r){if(!r.length)return NaN;let e=[...r].sort((o,n)=>o-n),t=e.length>>1;return e.length%2?e[t]:(e[t-1]+e[t])/2}function Xle(r,e){let t=r.length,o=Math.max(1,Math.floor(t/zle)),n=[];for(let l=0;l<t;l+=o)n.push(l);let i=[];for(let l=0;l<n.length;l++)for(let u=l+1;u<n.length;u++){let c=r[n[u]]-r[n[l]];Math.abs(c)<1e-12||i.push((e[n[u]]-e[n[l]])/c)}if(i.length<3)return null;let a=bM(i);if(!Number.isFinite(a)||Math.abs(a)<1e-12)return null;let s=bM(e.map((l,u)=>l-a*r[u]));return Number.isFinite(s)?{a:s,b:a}:null}function Zj(r,e){try{if(!r||typeof r.querySelectorAll!="function")return wf;let t=e?.rows,o=e?.columns??[];if(!Array.isArray(t)||!t.length||!o.length)return wf;let n=Array.from(r.querySelectorAll(`circle[${to}]`));if(n.length<sM||n.length>Hle)return wf;let i=[],a=new Set;for(let h of n){let m=String(h.getAttribute(to)??"").trim();if(!/^\d+$/.test(m))continue;let p=+m,g=t[p],d=lM(h,"cx"),f=lM(h,"cy"),b=lM(h,"r");!g||!Number.isFinite(d)||!Number.isFinite(f)||!(b>0)||(a.add(p),i.push({row:g,x:d,y:f,r:b}))}if(i.length<sM||a.size<i.length*.9)return wf;let s=null;for(let h=0;h<o.length;h++){if(/^__.*__$/.test(String(o[h]?.name??"")))continue;let m=i.map(d=>{let f=d.row[h];return f==null||f===""?NaN:typeof f=="number"?f:Number(f)}),p=m.filter(Number.isFinite);if(p.length<i.length*.9||new Set(p).size<8)continue;let g=p.every(d=>d>0)?[!1,!0]:[!1];for(let d of g)for(let f of["x","y"]){let b=[],w=[],P=[];i.forEach((I,D)=>{Number.isFinite(m[D])&&(b.push(D),w.push(d?Math.log10(m[D]):m[D]),P.push(f==="x"?I.x:I.y))});let A=Xle(w,P);if(!A)continue;let M=Math.min(...P);if(Math.max(...P)-M<jle)continue;let U=P.reduce((I,D)=>I+D,0)/P.length,F=0,L=0,T=P.map((I,D)=>{let C=I-(A.a+A.b*w[D]);return F+=C*C,L+=(I-U)**2,C});if(L<=0)continue;let v=1-F/L;if(v>=Qj&&(!s||v>s.fit)){let I=new Array(i.length).fill(NaN);b.forEach((D,C)=>{I[D]=T[C]}),s={col:h,axis:f,fit:v,res:I,log:d}}}}if(!s)return wf;let l=0,u=0,c=[];return i.forEach((h,m)=>{let p=s.res[m];if(!Number.isFinite(p))return;u++;let g=Math.abs(p)/Math.max(h.r,1);c.push(g),g>1&&l++}),u<sM?wf:{marks:u,axis:s.axis,column:String(o[s.col]?.name??""),fit:Math.round(s.fit*1e3)/1e3,offShare:Math.round(l/u*1e3)/10,medianOffRadii:Math.round(bM(c)*100)/100}}catch{return wf}}var WS="data-lch-contrast",eX=2e3,Kle={rects:0,scanned:0,fixed:0,pillsBoosted:0,offFill:0,pageMajority:0,paintedOver:0,straddlePills:0,pillsExtended:0,raised:0};function WM(r,e){try{let t=r;if(typeof t.isPointInFill!="function"||typeof t.getScreenCTM!="function")return null;let o=t.getScreenCTM(),n=t.ownerSVGElement;if(!o||!n||typeof n.createSVGPoint!="function"||e.length===0)return null;let i=o.inverse(),a=[];for(let s=0;s<e.length;s++){let l=n.createSVGPoint();l.x=e[s].x,l.y=e[s].y,a.push(t.isPointInFill(l.matrixTransform(i)))}return a}catch{return null}}var Yle=4;function rj(r,e){let t=null;for(let o=r.parentElement;o&&(String(o.tagName||"").toLowerCase()==="svg"&&(t=o),o!==e);o=o.parentElement);return t}function qle(r,e,t){return!r.root||r.root!==t||typeof r.el.compareDocumentPosition!="function"?!0:(r.el.compareDocumentPosition(e)&Yle)!==0}function Jle(r,e,t,o){if(e.length===0||r.length===0)return null;let n=r.slice().sort((a,s)=>a.ord-s.ord),i=[];for(let a of n){let s=WM(a.el,e);if(s===null)return null;i.push(s)}return e.map((a,s)=>{let l=[t[0],t[1],t[2]];for(let u=0;u<n.length;u++){if(!i[u][s])continue;let c=o(n[u]);if(c<fP)continue;let h=ys(n[u].fill);h&&(l=Qh([h[0],h[1],h[2],c],l))}return l})}function $le(r,e){try{if(String(r.tagName||"").toLowerCase()!=="rect")return!1;let t=r;if(typeof t.getScreenCTM!="function")return!1;let o=t.getScreenCTM();if(!o||Math.abs(o.b)>1e-6||Math.abs(o.c)>1e-6||!(o.a>0)||!(o.d>0))return!1;let n=o.inverse(),i=(w,P)=>({x:n.a*w+n.c*P+n.e,y:n.b*w+n.d*P+n.f}),a=i(e.left,e.top),s=i(e.right,e.bottom),l=w=>{let P=parseFloat(r.getAttribute(w)||"");return isFinite(P)?P:NaN},u=l("x"),c=l("y"),h=l("width"),m=l("height");if(![u,c,h,m].every(w=>isFinite(w))||!(h>0)||!(m>0))return!1;let p=1/o.a,g=Math.min(u,Math.min(a.x,s.x)-p),d=Math.max(u+h,Math.max(a.x,s.x)+p),f=Math.min(c,Math.min(a.y,s.y)-p),b=Math.max(c+m,Math.max(a.y,s.y)+p);return g>=u-.01&&d<=u+h+.01&&f>=c-.01&&b<=c+m+.01?!1:(r.setAttribute("x",String(+g.toFixed(2))),r.setAttribute("y",String(+f.toFixed(2))),r.setAttribute("width",String(+(d-g).toFixed(2))),r.setAttribute("height",String(+(b-f).toFixed(2))),!0)}catch{return!1}}function Qle(r,e,t,o){try{let n=r.parentNode;if(!n||typeof n.contains!="function"||!e.every(u=>n.contains(u.el)))return!1;let i=NM(t);if(i.length===0)return!1;let a=i.map(()=>!1),s=0;for(let u of e){if(o(u)<Y7)continue;let c=WM(u.el,i);if(c===null)return!1;s++;for(let h=0;h<c.length;h++)c[h]&&(a[h]=!0)}let l=a.filter(Boolean).length;return s===0||l===0||l===i.length?!1:(n.appendChild(r),!0)}catch{return!1}}var tX="lch-label-pill";function Zle(r,e){try{let t=r.parentNode;if(!t||typeof r.getBBox!="function")return null;let o=r.getBBox();if(!o||!(o.width>0)||!(o.height>0))return null;let n=r.ownerDocument;if(!n)return null;let i=n.createElementNS("http://www.w3.org/2000/svg","rect"),a=Math.max(2,o.height*.2),s=1;i.setAttribute("x",String(+(o.x-a).toFixed(2))),i.setAttribute("y",String(+(o.y-s).toFixed(2))),i.setAttribute("width",String(+(o.width+2*a).toFixed(2))),i.setAttribute("height",String(+(o.height+2*s).toFixed(2))),i.setAttribute("rx","2"),i.setAttribute("fill",e),i.setAttribute("fill-opacity",String(vM)),i.setAttribute("pointer-events","none"),i.setAttribute("class",tX),i.setAttribute(WS,"1");let l=r.getAttribute("transform");return l&&i.setAttribute("transform",l),t.insertBefore(i,r),i}catch{return null}}function rX(r,e={}){let t={...Kle};if(!r)return t.skipped="no-container",t;let o=e.cap??eX,n=e.pageBg||"#ffffff";try{let i=[],a=0,s=g=>{let d=g.tagName.toLowerCase();if(d!=="rect"&&d!=="path")return;let f=g.getBoundingClientRect();if(f.width<=0||f.height<=0)return;let b=g.getAttribute("fill")||"",w=r.ownerDocument?.defaultView;if((!b||b==="none")&&w&&typeof w.getComputedStyle=="function"&&(b=w.getComputedStyle(g).fill||""),!b||b==="none")return;let P=g.getAttribute("fill-opacity"),A=P===null?1:parseFloat(P);i.push({r:f,fill:b,op:isFinite(A)?A:1,area:f.width*f.height,el:g,ord:a++,root:rj(g,r)})},l=r.querySelectorAll("rect, path");if(l.length===0)return t.skipped="no-shapes",t;if(l.length>o)return t.skipped="too-many-shapes",t;for(let g=0;g<l.length;g++)s(l[g]);if(i.length===0)return t.skipped="no-shapes",t;t.rects=i.length;let u=ys(n)||[255,255,255,1],c=[u[0],u[1],u[2]],h=g=>{let d=ys(g.fill);return(d?d[3]:1)*g.op},m=r.querySelectorAll("text");if(m.length>o)return t.skipped="too-many-texts",t;let p=r.ownerDocument?.defaultView;for(let g=0;g<m.length;g++){let d=m[g];if(d.getAttribute(WS)==="1")continue;let f=d.getBoundingClientRect();if(f.width<=0||f.height<=0)continue;let b=Q=>Math.max(0,Math.min(Q.right,f.right)-Math.max(Q.left,f.left))*Math.max(0,Math.min(Q.bottom,f.bottom)-Math.max(Q.top,f.top)),w=f.width*f.height,P=rj(d,r),A=0,M=[],E=i.map(Q=>({mk:Q,ov:b(Q.r)})).filter(Q=>Q.ov>0?qle(Q.mk,d,P)?!0:(h(Q.mk)>=fP&&(A++,M.push(Q.mk)),!1):!1),U=M.length>0&&Qle(d,M,f,h);if(U){t.raised++,d.setAttribute(WS,"1");for(let Q of M)E.push({mk:Q,ov:b(Q.r)});A=0}A>0&&t.paintedOver++;let F=wj({left:f.left,top:f.top,width:f.width,height:f.height}),L=F.map(()=>!1),T=0,v=E.map(Q=>{let ye=WM(Q.mk.el,F);if(ye===null)return T++,Q;let J=0,ve=h(Q.mk)>=fP;for(let Me=0;Me<ye.length;Me++)ye[Me]&&(J++,ve&&(L[Me]=!0));return{mk:Q.mk,ov:w*(J/ye.length)}}).filter(Q=>Q.ov>0);if(v.length===0&&E.length>0&&t.offFill++,v.length===0)continue;let I=!1;if(T===0&&F.length>0){let Q=0;for(let ye=0;ye<L.length;ye++)L[ye]&&Q++;if(!gj(w*(Q/F.length),w)){if(!U){t.pageMajority++;continue}I=!0}}t.scanned++;let D=v.filter(Q=>h(Q.mk)>=Y7),O=(D.length?D:v).reduce((Q,ye)=>ye.ov>Q.ov||ye.ov===Q.ov&&ye.mk.ord>Q.mk.ord?ye:Q).mk,G=v.find(Q=>Q.mk!==O&&pj(h(Q.mk))&&Q.mk.ord>O.ord&&yj(Q.ov,w))?.mk,j=ys(O.fill),Y=j?Qh([j[0],j[1],j[2],j[3]*O.op],c):c;if(G){let Q=ys(G.fill);Q&&(Y=Qh([Q[0],Q[1],Q[2],.9],Y),G.el.setAttribute("fill",`rgb(${Q[0]}, ${Q[1]}, ${Q[2]})`),G.el.setAttribute("fill-opacity","0.9"),t.pillsBoosted++,$le(G.el,f)&&t.pillsExtended++)}let z=d.getAttribute("fill")||(p&&typeof p.getComputedStyle=="function"?p.getComputedStyle(d).fill:"");if(!G&&T===0){let Q=Jle(E.map(ye=>ye.mk),NM(f),c,h);if(Q&&vj(Q)){if(mP(z,Q)>=PM)continue;let ye=Zle(d,`rgb(${c[0]}, ${c[1]}, ${c[2]})`),J=ye?Q.map(Me=>Qh([c[0],c[1],c[2],vM],Me)):Q;ye&&t.straddlePills++;let ve=Nj(z,J);ve.keep||(d.setAttribute("fill",ve.color),t.fixed++),d.setAttribute(WS,"1");continue}}if(I)continue;let X=!bj(O.el.getAttribute("class")),ue=Sj(z,`rgb(${Y[0]}, ${Y[1]}, ${Y[2]})`,1,n,wM,X);ue.fix&&(d.setAttribute("fill",ue.color),t.fixed++),(G||ue.fix)&&d.setAttribute(WS,"1")}return t}catch{return t.skipped="error",t}}var oj=0;function oX(){return oj+=1,"h"+oj}var nj=/url\(\s*(['"]?)#([^'")\s]+)\1\s*\)/g;function nX(r,e){let t={renamed:0,collisions:[]};try{let o="--"+e,n=r.ownerDocument,i=new Map,a=[],s=new Set;r.querySelectorAll("*").forEach(l=>{for(let u of l.getAttributeNames()){let c=l.getAttribute(u),h=(u==="href"||u==="xlink:href")&&c[0]==="#";if(!(!h&&c.indexOf("url(")<0)){a.push([l,u,c]),h&&s.add(c.slice(1));for(let m of c.matchAll(nj))s.add(m[2])}}}),r.querySelectorAll("[id]").forEach(l=>{let u=l.id;if(!s.has(u)||u.endsWith(o))return;let c=u.replace(/["\\]/g,"\\$&");n&&Array.from(n.querySelectorAll(`[id="${c}"],[id^="${c}--h"]`)).some(h=>!r.contains(h))&&t.collisions.push(u),i.set(u,l.id=u+o),t.renamed++});for(let[l,u,c]of a){let h=c[0]==="#"&&i.has(c.slice(1))?"#"+i.get(c.slice(1)):c.replace(nj,(m,p,g)=>i.has(g)?`url(${p}#${i.get(g)}${p})`:m);h!==c&&l.setAttribute(u,h)}}catch{}return t}function iX(r){return r?/\bINVALID\s*:/.test(r):!1}function aX(r,e=240){if(!r)return"";let t=/\bINVALID\s*:\s*([^\r\n]*)/.exec(r);if(!t)return"";let o=t[1].trim(),n=Math.max(0,Math.floor(e));return o.length<=n?o:n<=3?o.slice(0,n):o.slice(0,n-3).trimEnd()+"..."}var Pf="bic-annotations",sX="bic-annotation",ij="llm-zoom-pad",sP=r=>r==null?"":String(r).trim(),aj={l:-1/0,t:-1/0,r:1/0,b:1/0},vf=r=>({l:r.left,t:r.top,r:r.right,b:r.bottom}),sj=r=>(r.r-r.l)*(r.b-r.t),B7=(r,e)=>{if(!r)return null;let t={l:Math.max(r.l,e.l),t:Math.max(r.t,e.t),r:Math.min(r.r,e.r),b:Math.min(r.b,e.b)};return t.r>t.l&&t.b>t.t?t:null};function eue(r){let e=r,t=null;try{t=e?.isPointInFill?e.getScreenCTM?.()?.inverse()??null:null}catch{t=null}if(!e||!t)return()=>!0;let o=t;return(n,i)=>{try{return e.isPointInFill({x:o.a*n+o.c*i+o.e,y:o.b*n+o.d*i+o.f})}catch{return!0}}}var tue=r=>(r||"").split(",").map(e=>parseInt(e,10)).filter(e=>Number.isFinite(e)),uM=(r,e)=>r.l<e.r&&e.l<r.r&&r.t<e.b&&e.t<r.b,rue=3,oue=.75,nue=new Set(["title","desc","style","script","noscript","template","metadata","textarea","option"]);function iue(r,e){let t=r.ownerDocument,o=[],n=new Set,i=t.createTreeWalker(r,4),a=null;try{a=t.createRange()}catch{a=null}for(let s=i.nextNode();s;s=i.nextNode()){if(!/\S/.test(s.nodeValue||""))continue;let l=s.parentElement;if(!l||l.closest(e)||nue.has(l.localName.toLowerCase())||l.closest("defs, clipPath, mask, title, desc"))continue;let u=null,c=l.closest("text");if(c){if(n.has(c))continue;n.add(c),u=c.getBoundingClientRect()}else{try{if(a&&typeof a.getBoundingClientRect=="function"){a.selectNodeContents(s);let h=a.getBoundingClientRect();h&&h.width>0&&h.height>0&&(u=h)}}catch{u=null}u||(u=l.getBoundingClientRect())}u&&u.width>0&&u.height>0&&o.push({b:vf(u),el:c??l,node:s})}return o}function lj(r,e,t){let o=r.ownerDocument.defaultView;if(!o||r.closest("svg"))return e;for(let n=r;n&&n!==t.parentElement;n=n.parentElement){try{let i=o.getComputedStyle(n);if(i&&i.overflowX&&i.overflowX!=="visible"){let a=n.getBoundingClientRect();a.width>0&&(e=Math.min(e,a.right))}}catch{}if(n===t)break}return e}var SM="http://www.w3.org/2000/svg";function aue(r){let e=r.ownerDocument.defaultView;if(!e||r.namespaceURI===SM)return null;try{let t=e.getComputedStyle(r),o=c=>!!c&&c!=="visible";if(!t||!(o(t.overflowX)||o(t.overflowY)||o(t.overflow)))return null;let n=r.getBoundingClientRect();if(!(n.width>0&&n.height>0))return null;let i=r,a=n.left+(i.clientLeft||0),s=n.top+(i.clientTop||0),l=i.clientWidth>0?i.clientWidth:n.width,u=i.clientHeight>0?i.clientHeight:n.height;return{l:a,t:s,r:a+l,b:s+u}}catch{return null}}var AM=8,lX=1.5,lP=AM/2+lX,D7=8;function sue(r,e){let t=[],o={shown:0,notShown:0},n=null,i=r.ownerDocument,a=i.defaultView,s=null,l=!1,u=()=>{if(l||!n)return;l=!0;let d=()=>{l=!1,n&&g(n.data,n.theme)};a?.requestAnimationFrame?a.requestAnimationFrame(d):setTimeout(d,16)},c=()=>u(),h=d=>{let f=d.target;f&&f.nodeType===1&&f!==r&&f.contains(r)&&u()},m=!1,p=d=>{d&&!m?(r.addEventListener("scroll",c,{capture:!0,passive:!0}),i.addEventListener("scroll",h,{capture:!0,passive:!0}),m=!0):!d&&m&&(r.removeEventListener("scroll",c,{capture:!0}),i.removeEventListener("scroll",h,{capture:!0}),m=!1);let f=a?.MutationObserver;d&&!s&&f?(s=new f(b=>{b.some(w=>!w.target.closest?.(`.${Pf}, .${k7}`))&&u()}),s.observe(r,{subtree:!0,attributes:!0,attributeFilter:["transform","d","cx","cy","x","y","points"]})):!d&&s&&(s.disconnect(),s=null)};function g(d,f){let b=r.querySelector(`:scope > .${Pf}`);if(!t.length){b?.remove(),o={shown:0,notShown:0};return}b||(b=i.createElement("div"),b.className=Pf,b.setAttribute("aria-hidden","false"),Object.assign(b.style,{position:"absolute",left:"0",top:"0",width:"0",height:"0",overflow:"visible",zIndex:"2"}),a?.getComputedStyle(r).position==="static"&&(r.style.position="relative"),r.appendChild(b)),b.textContent="";let w=(d.columns||[]).map(J=>typeof J=="string"?J:J?.name),P=Array.from(r.querySelectorAll(`.${Qo}[${to}]`)).filter(J=>!J.closest(`.${Pf}`)),A=new Map;for(let J of P)for(let ve of tue(J.getAttribute(to))){let Me=A.get(ve);Me?Me.push(J):A.set(ve,[J])}let M=r.getBoundingClientRect(),E=M.width>0&&M.height>0?vf(M):aj,U=new Map,F=J=>{if(!U.has(J))if(J.namespaceURI===SM){let ve=W7(J);U.set(J,ve&&vf(ve))}else U.set(J,aue(J));return U.get(J)},L=E;if(E!==aj)for(let J=r.parentElement;L&&J&&J!==i.documentElement&&J!==i.body;J=J.parentElement){let ve=F(J);ve&&(L=B7(L,ve))}let T=J=>{let ve=L;for(let Me=J.parentElement;ve&&Me&&Me!==r;Me=Me.parentElement){if(Me.namespaceURI===SM&&Me.localName==="svg"){let pe=Me.getBoundingClientRect();pe.width>0&&pe.height>0&&(ve=B7(ve,vf(pe)))}let re=F(Me);re&&(ve=B7(ve,re))}return ve},v=Array.from(r.querySelectorAll(`.${$p}, .${ij}`)).map(J=>J.getBoundingClientRect()).filter(J=>J.width>0&&J.height>0).map(vf),I=null,D=()=>I??=iue(r,`.${Pf}, .${$p}, .${ij}`),C=[],O=(J,ve)=>E.l===-1/0?J:Math.min(Math.max(J,E.l+ve),Math.max(E.l+ve,E.r-ve)),G=(J,ve)=>E.t===-1/0?J:Math.min(Math.max(J,E.t+ve),Math.max(E.t+ve,E.b-ve)),j=(J,ve)=>{let Me=J.r-J.l,re=J.b-J.t;if(!(re>0)||Me<rue*re)return null;let pe=D().filter(De=>{let Je=(De.b.l+De.b.r)/2,Qe=(De.b.t+De.b.b)/2;return Je>J.l&&Je<J.r&&Qe>J.t&&Qe<J.b&&De.b.b-De.b.t<=re*1.5}).sort((De,Je)=>De.b.l-Je.b.l||De.b.t-Je.b.t);if(!pe.length)return null;let ae=pe[0],ne={...ae.b},Ce=ve?lj(ae.el,ae.b.r,ve):ae.b.r;for(let De of pe.slice(1)){let Je=ne.b-ne.t,Qe=(De.b.t+De.b.b)/2;Qe<ne.t||Qe>ne.b||De.b.l-ne.r>oue*Je||De.b.l<ne.r-1&&De.b.r<=ne.r||(ne={l:ne.l,t:Math.min(ne.t,De.b.t),r:Math.max(ne.r,De.b.r),b:Math.max(ne.b,De.b.b)},Ce=Math.max(Ce,ve?lj(De.el,De.b.r,ve):De.b.r))}let ce=pe.filter(De=>De.b.l>=ne.r&&De.b.b>ne.t&&De.b.t<ne.b).map(De=>De.b.l);return{r:Math.min(ne.r,Ce),y:(ne.t+ne.b)/2,next:ce.length?Math.min(...ce):J.r}},Y=(J,ve,Me)=>{let re=Math.max(16,ve*6+8)/2,pe=8,ae=2,ne=(J.l+J.r)/2,Ce=(J.t+J.b)/2,ce=(dt,Wt)=>({l:dt-re,t:Wt-pe,r:dt+re,b:Wt+pe}),De=(dt,Wt)=>dt>=J.l-re&&dt<=J.r+re&&Wt>=J.t-pe&&Wt<=J.b+pe&&v.every(Ye=>dt+re<=Ye.l||dt-re>=Ye.r||Wt+pe<=Ye.t||Wt-pe>=Ye.b),Je=(dt,Wt)=>{let Ye=ce(dt,Wt);return D().every(mt=>!uM(Ye,mt.b))&&C.every(mt=>!uM(Ye,mt))},Qe=eue(Me),tt=[],oe=(dt,Wt,Ye=dt,mt=Wt)=>tt.push({x:O(dt,re),y:G(Wt,pe),px:Ye,py:mt}),_e=j(J,Me);if(_e){let dt=_e.r+ae+re;(dt+re<=_e.next-ae||_e.next>=J.r)&&oe(dt,_e.y,Math.min(dt,J.r-1),_e.y)}let Fe=Math.max(2,(J.r-J.l)*.175),ze=Math.max(2,(J.b-J.t)*.175);for(let[dt,Wt,Ye,mt]of[[J.r,J.t,1,-1],[J.l,J.t,-1,-1],[J.r,J.b,1,1],[J.l,J.b,-1,1]])for(let Pt of[0,.5,1])oe(dt+Ye*Pt*re,Wt+mt*Pt*pe,dt-Ye*Fe,Wt-mt*ze);let Oe=[];for(let dt=0;dt<=8;dt++)for(let Wt=0;Wt<=6;Wt++)Oe.push([J.l+(J.r-J.l)*dt/8,J.t+(J.b-J.t)*Wt/6]);Oe.sort((dt,Wt)=>Math.hypot(dt[0]-J.r,dt[1]-J.t)-Math.hypot(Wt[0]-J.r,Wt[1]-J.t));for(let[dt,Wt]of Oe)oe(dt,Wt);for(let dt of v)for(let[Wt,Ye]of[[ne,dt.b+pe+ae],[ne,dt.t-pe-ae],[dt.l-re-ae,Ce],[dt.r+re+ae,Ce]])oe(Wt,Ye);let kt=dt=>Qe(dt.px,dt.py),Bt=tt.find(dt=>De(dt.x,dt.y)&&Je(dt.x,dt.y)&&kt(dt))??tt.find(dt=>De(dt.x,dt.y)&&Je(dt.x,dt.y))??tt.find(dt=>De(dt.x,dt.y)&&kt(dt))??tt.find(dt=>De(dt.x,dt.y));return Bt?(C.push(ce(Bt.x,Bt.y)),[Bt.x,Bt.y]):null},z=J=>{let ve=J?.closest(`[${a7}]`);return!!ve&&r.contains(ve)&&sP(ve.getAttribute(a7)).toLowerCase()==="dot"},X=(J,ve)=>{let Me=Ce=>Ce.r-Ce.l>=2*D7&&Ce.b-Ce.t>=2*D7,re,pe;if(!Me(ve))re=J.r,pe=J.t;else if(Me(J))re=J.r-D7,pe=J.t+D7;else return null;let ae=Math.ceil(lP);re=O(re,ae),pe=G(pe,ae);let ne={l:re-lP,t:pe-lP,r:re+lP,b:pe+lP};return v.some(Ce=>uM(ne,Ce))?null:(C.push(ne),[re,pe])},ue=-M.left-(r.clientLeft||0)+(r.scrollLeft||0),Q=-M.top-(r.clientTop||0)+(r.scrollTop||0),ye=0;for(let J of t){let ve=(J.where?Object.entries(J.where):J.column!=null?[[J.column,J.value]]:[]).map(([Qe,tt])=>[w.indexOf(Qe),sP(tt)]),Me=ve.map(Qe=>Qe[1]).join(" / "),re=new Set;if(ve.length&&ve.every(Qe=>Qe[0]>=0)&&(d.rows||[]).forEach((Qe,tt)=>{if(ve.every(([oe,_e])=>sP(Qe?.[oe])===_e))for(let oe of A.get(tt)??[])re.add(oe)}),!re.size)continue;let pe=null,ae=null,ne=null,Ce=!1;for(let Qe of re){let tt=Qe.getBoundingClientRect();if(!(tt.width>0&&tt.height>0))continue;Ce=!0;let oe=B7(vf(tt),T(Qe));oe&&(!pe||sj(oe)>sj(pe))&&(pe=oe,ae=vf(tt),ne=Qe)}let ce=z(ne??re.values().next().value??null),De=pe?ce?X(pe,ae):Y(pe,(J.label??"\u2022").length,ne):null;if(Ce&&!De)continue;ye++;let Je=i.createElement("div");if(Je.className=sX,Je.setAttribute("role","button"),ce){let Qe=sP(J.label),tt=sP(J.title);Je.setAttribute("title",tt?Qe?`(${Qe}) ${tt}`:tt:`Note on ${Me}${Qe?`: ${Qe}`:""}`),Je.setAttribute("aria-label",`Note on ${Me}${Qe?`: ${Qe}`:""}${tt?`. ${tt}`:""}`)}else Je.textContent=J.label??"\u2022",J.title&&Je.setAttribute("title",J.title),Je.setAttribute("aria-label",J.title?`Note: ${J.title}`:`Note on ${Me}`);Object.assign(Je.style,{position:"absolute",left:`${Math.round(De?De[0]+ue:0)}px`,top:`${Math.round(De?De[1]+Q:0)}px`,transform:"translate(-50%, -50%)",...ce?{width:`${AM}px`,height:`${AM}px`,boxSizing:"border-box",borderRadius:"50%"}:{minWidth:"16px",height:"16px",padding:"0 4px",boxSizing:"border-box",borderRadius:"8px",font:"600 10px/16px system-ui, sans-serif",textAlign:"center",color:f.bg||"#ffffff"},background:f.accent||f.fg||"#0f6cbd",boxShadow:`0 0 0 ${lX}px ${f.bg||"#ffffff"}`,cursor:e?"pointer":"default",visibility:Ce?"visible":"hidden"}),Je.addEventListener("click",Qe=>{Qe.stopPropagation(),e?.(J)}),b.appendChild(Je)}o={shown:ye,notShown:t.length-ye}}return{set(d){t=Array.isArray(d)?d.slice():[],p(t.length>0),n&&g(n.data,n.theme)},draw(d,f){n={data:d,theme:f},g(d,f)},get report(){return o},destroy(){p(!1),t=[],n=null,r.querySelector(`:scope > .${Pf}`)?.remove()}}}function uX(r){let e=r,t=e[u7],o=t&&typeof t=="object"?t:e[u7]={};return{load:()=>o,save:n=>{if(!(!n||typeof n!="object")){for(let i of Object.keys(o))delete o[i];Object.assign(o,n)}}}}var O7=r=>(r||"").split(",").map(e=>parseInt(e,10)).filter(e=>Number.isFinite(e));function LM(r,...e){return Object.assign({},r,...e)}var IM=Object.freeze({sankey:"d3-sankey",sankeyLinkHorizontal:"d3-sankey",sankeyJustify:"d3-sankey",sankeyCenter:"d3-sankey",sankeyLeft:"d3-sankey",sankeyRight:"d3-sankey",hexbin:"d3-hexbin",voronoiTreemap:"d3-voronoi-treemap",voronoiMap:"d3-voronoi-map",weightedVoronoi:"d3-weighted-voronoi",mermaid:"mermaid",llmMermaid:"mermaid"});function RM(r){let e=new Set,t=Jj(String(r||"")),o=n=>{let i=IM[n];i&&e.add(i)};for(let n of t.matchAll(/\bd3\s*\.\s*(\w+)/g))o(n[1]);for(let n of t.matchAll(/\bd3\s*\[\s*['"](\w+)['"]\s*\]/g))o(n[1]);for(let n of t.matchAll(/\{([^{}]*)\}\s*=\s*d3\b/g))for(let i of n[1].split(","))o(i.split(":")[0].trim());return[...e].sort()}function cX(r,e){let t=String(r?.message??r??"");if(!e)return new Error("[@bicharts/chart-host] no d3 was provided, so the generated chart could not run. Pass it explicitly \u2014 createChartHost(el, { d3 }) / <BicChart d3={d3} /> \u2014 or set window.d3. The chart needs D3 v7 (npm install d3@7). Original error: "+t);if(typeof e?.mermaid?.render!="function"&&/\bmermaid\b/i.test(t))return new Error("[@bicharts/chart-host] this chart draws its diagram with Mermaid, which it reaches as d3.mermaid.render(...), and the d3 you passed has no mermaid on it \u2014 this host did not load the library. A host supplies it exactly the way the other plugins are supplied: hand createChartHost ONE d3 that carries it, the SAME d3 every chart gets \u2014 npm install mermaid then import * as d3base from 'd3'; import mermaid from 'mermaid'; import { assembleD3 } from '@bicharts/chart-host'; const d3 = assembleD3(d3base, { mermaid }); (an ES-module d3 namespace is frozen, so assigning onto it throws) Original error: "+t);let o=/d3\.(\w+) is not a function|(\w+) is not a function/.exec(t),n=o?.[1]??o?.[2]??"",i=IM[n];return i?new Error(`[@bicharts/chart-host] this chart calls d3.${n}(), which comes from the separate "${i}" package and is not attached to the d3 you passed. Install it and hand the host ONE d3 that carries it, the SAME d3 every chart gets: npm install ${i} then import * as d3base from "d3"; import { ${n} } from "${i}"; import { assembleD3 } from "@bicharts/chart-host"; const d3 = assembleD3(d3base, { ${n} }); (an ES-module d3 namespace is frozen, so assigning onto it throws) Original error: `+t):r}var lue=/^[ \t]*export[ \t]+(?:\{[^}]*\}|default[ \t]+[A-Za-z_$][\w$]*)[ \t]*;?[ \t]*$/gm,uue=/^([ \t]*)export[ \t]+(?=(?:async[ \t]+)?function\b|const\b|let\b|var\b|class\b)/gm;function hX(r){return String(r||"").replace(lue,"").replace(uue,"$1")}function mX(r){return r==null||typeof r!="object"||Object.isExtensible(r)?r:{...r}}function pX(r,e,t,o){let n=hX(r)+`
|
|
@@ -303,6 +303,6 @@ License: MIT
|
|
|
303
303
|
.${Va} .${Sf} text {
|
|
304
304
|
font-weight: 700 !important;
|
|
305
305
|
text-decoration: underline !important;
|
|
306
|
-
}`,(t.head||t.documentElement)?.appendChild(Re)}catch{}},z=()=>{if(!p)try{let Re=T,rt=!!Re&&Re.length>0,Nt=rt&&!I;r.classList?.[Nt?"add":"remove"](kS);let er=h.dimOpacity;if(typeof er=="number"){let bn=String(er),Do=F7.get(r),Zo=cj(r);Do?Zo&&Do.wrote&&!hj(Zo,Do.wrote)&&(Do.was=Zo.value?Zo:null):(Do={was:Zo?.value?Zo:null,holders:0,wrote:null},F7.set(r,Do)),F||(Do.holders++,F=!0),Do.wrote={value:bn,priority:""},r.style?.setProperty(Qp,bn)}else L();let oo=r.querySelectorAll(`.${Sf}`);for(let bn of Array.from(oo))bn.classList?.remove(Sf);let Co=!!v&&(typeof r.contains=="function"?r.contains(v):v.isConnected!==!1);rt&&Co&&v.classList?.add(Sf);let vo=new Set(Re??[]),Bo=r.querySelectorAll(`.${Qo}[${to}], .${ql}[${to}]`),Aa=az(r);if(Aa!=="any-row"){let bn=Array.from(Bo),Do=sz(bn.map(Zo=>({key:Ok(Zo),rows:O7(Zo.getAttribute(to))})),rt?vo:[],Aa,O());if(bn.forEach((Zo,sl)=>Zo.classList?.[Do.on[sl]?"add":"remove"]($h)),G(Do.keys.length?{keys:Do.keys,selection:Array.from(vo)}:null),rt)try{e.onSelectionPaint?.({rule:Aa,mode:Do.mode,lit:Do.on.filter(Boolean).length,marks:bn.length,selection:vo.size})}catch{}return}for(let bn of Array.from(Bo)){let Do=O7(bn.getAttribute(to)),Zo=rt&&Do.some(sl=>vo.has(sl));bn.classList?.[Zo?"add":"remove"]($h)}}catch{}},X="bic-selection-glyphs",ue=null,Q=null,ye=null,J="",ve=!1,Me=!1,re="",pe=()=>`${r.offsetWidth??0}x${r.offsetHeight??0}`,ae=`.${X}, .${k7}`,ne=Re=>{let rt=Re.target;return!rt||rt.closest?.(ae)?!1:!!(rt.classList?.contains(Qo)||rt.querySelector?.(`.${Qo}`))},Ce=Re=>{if(Re&&(Me=!0),ve)return;ve=!0;let rt=()=>{let Nt=Me;ve=!1,Me=!1,(Q||ye)&&Qe(Nt?"if-changed":!1)};o?.requestAnimationFrame?o.requestAnimationFrame(rt):setTimeout(rt,16)},ce=Re=>{if(!Re){Q&&(Q.disconnect(),Q=null),ye&&(ye.disconnect(),ye=null);return}let rt=o?.MutationObserver;!Q&&rt&&(Q=new rt(er=>{!ve&&er.some(ne)&&Ce(!1)}),Q.observe(r,{subtree:!0,attributes:!0,attributeFilter:["transform","d","x","y","cx","cy","points","width","height","visibility","opacity","style","class"]}));let Nt=o?.ResizeObserver;!ye&&Nt&&(ye=new Nt(()=>{pe()!==J&&Ce(!0)}),ye.observe(r))},De=Re=>{try{let rt=Re.checkVisibility;if(typeof rt=="function")return rt.call(Re,{visibilityProperty:!0,opacityProperty:!0})!==!1;let Nt=o?.getComputedStyle;if(typeof Nt!="function")return!0;let er=Nt.call(o,Re);if(er.visibility==="hidden"||er.visibility==="collapse")return!1;for(let oo=Re;oo&&oo!==r;oo=oo.parentElement){let Co=oo===Re?er:Nt.call(o,oo);if(Co.display==="none"||Co.opacity!==""&&parseFloat(Co.opacity)===0)return!1}}catch{}return!0},Je=()=>{let Re=new Map,rt=er=>{if(!Re.has(er)){let oo=null;try{if((er.tagName||"").toLowerCase()==="svg"){let Co=er.getBoundingClientRect();Co.width>0&&Co.height>0&&(oo=Co)}else er.hasAttribute?.("clip-path")&&(oo=W7(er))}catch{oo=null}Re.set(er,oo)}return Re.get(er)??null},Nt=.5;return(er,oo,Co)=>{for(let vo=er;vo&&vo!==r;vo=vo.parentElement){let Bo=rt(vo);if(Bo&&(oo<Bo.left-Nt||oo>Bo.right+Nt||Co<Bo.top-Nt||Co>Bo.bottom+Nt))return!1}return!0}},Qe=(Re=!0)=>{if(p)return;let rt=!1;try{let Nt=r.querySelector(`:scope > .${X}`);pz(Nt);let er=h.selectionGlyph;if(er!=="dot"&&er!=="check"){re="";return}if(!(!!T&&T.length>0&&!I)){re="";return}if(h.suppressSelectionGlyph){if(Re===!0)try{e.onSelectionGlyphs?.({mode:er,drawn:0,total:0,suppressed:!0})}catch{}re="";return}if(rt=!0,!Nt){Nt=t.createElement("div"),Nt.className=X,Nt.setAttribute("aria-hidden","true"),Object.assign(Nt.style,{position:"absolute",left:"0",top:"0",width:"0",height:"0",overflow:"hidden",pointerEvents:"none",zIndex:"1"});try{let Zo=o?.getComputedStyle?.(r)?.position||r.style.position;if(!Zo||Zo==="static"){let sl=r.style.position;r.style.position="relative",ue===null&&(ue=sl)}}catch{}r.appendChild(Nt)}Nt.style.width="0",Nt.style.height="0";let Co=r.scrollWidth||0,vo=r.scrollHeight||0;Nt.style.width=`${Co}px`,Nt.style.height=`${vo}px`,J=pe();let Bo=[];mz(r,Nt.getBoundingClientRect(),Bo,{shown:De,at:Je()});let Aa=!!h.isHighContrast,bn=Bo.length?dz(Nt,Bo,{symbol:er==="check"?"\u2713":"\u25CF",color:Aa&&h.themeFg||"#111",halo:Aa&&h.themeBg||"#fff"}):0,Do=`${er}:${bn}:${Bo.length}`;if(Re===!0||Re==="if-changed"&&Do!==re){re=Do;try{e.onSelectionGlyphs?.({mode:er,drawn:bn,total:Bo.length,suppressed:!1})}catch{}}}catch{}finally{try{ce(rt),Q?.takeRecords()}catch{}}},tt=(Re,rt,Nt,er=!1,oo=!0)=>{if(!p&&(T=Re,D=Re.length>0&&er,C=oo,v=Re.length?Nt??null:null,I=Re.length>0&&Lk(!!Nt,Wk(r)),z(),Qe(),!!oo))for(let Co of j)try{Co(Re,rt)}catch{}},oe=Re=>{if(vz(h.lasso)==="highlight"){tt(Re,"user",null,!0,!1);return}if(tt(Re,"user",null,!0),b||!Re.length)return;let rt=!0;try{rt=e.selectionReachesPage?e.selectionReachesPage()!==!1:j.size>0}catch{}if(!rt){b=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] a lasso circled ${Re.length} ${Re.length===1?"row":"rows"}, but the page gave this chart no filter to set (no \`selects\` or bindFilter, no chart group), so the lasso only highlights inside the chart and the rest of the page does not follow. To filter the page, pass selects={useBicFilter("<key column>")} to this chart and filter the other charts by that filter; for a highlight on purpose, set lasso.effect to "highlight".`)}catch{}}},_e=0,Fe=150,ze=Re=>{let rt=Re?.detail||{};_e=Date.now(),rt.clear?tt([],rt.source||"chart",void 0,!1,C||!(T&&T.length)):rt.mark?tt(O7(rt.mark.getAttribute?.(to)),rt.source||"chart",rt.mark,!0):Array.isArray(rt.rows)&&tt(nz(rt.rows),rt.source||"chart",null,!0)},Oe=hz({root:r,doc:t,log:()=>{}}),kt=()=>{if(T&&T.length){let Re=r[tP];if(D&&typeof Re=="function")try{Re()}catch{}T&&T.length&&tt([],"user",void 0,!1,C)}},Bt=null,dt=()=>{let Re=Bt;Bt=null;try{Re?.destroy()}catch{}},Wt=`.${Qo}[${to}], .${ql}[${to}], .${Pc}[${to}]`,Ye=Re=>{let rt=cz(r,Re);if(Vk(r),rt||Date.now()-_e<Fe||N7(Re?.target,r))return;let Nt=Oe.findMark(Re?.target,Wt,Re);if(Nt||(Nt=Oe.penetrateOverlayAt(Re?.clientX,Re?.clientY,Wt)),Nt||(Nt=Oe.resolveByGeometry(Re?.clientX,Re?.clientY,Wt)),!Nt){kt();return}let er=O7(Nt.getAttribute(to));if(!er.length)return;let oo=Nt.classList?.contains?.(Pc)?Nt:null,Co=!!(Re?.ctrlKey||Re?.metaKey||Re?.shiftKey),vo=iz(T,er,{ctrl:!!(Re?.ctrlKey||Re?.metaKey),shift:!!Re?.shiftKey}),Bo=!Co&&vo.length===0;G(lz(O(),T,Ok(Nt),vo,{ctrl:!!(Re?.ctrlKey||Re?.metaKey),shift:!!Re?.shiftKey})),tt(vo,"user",Bo?null:oo)};r.addEventListener(eP,ze);let mt=uz(r);r.addEventListener("click",Ye),r.classList?.add(Va),Y();let Pt=e.fit??!0,Rt=e.labelContrast??!0,Qt=()=>{let Re=r[l7];if(typeof Re=="function")try{Re()}catch{}},Yt=e.zoomMemory??null,Jt=null,fr="",gr=()=>{if(Yt)try{Yt.flush()}catch{}},ro=()=>{if(Yt)try{Yt.release?.(r)}catch{}},yo=e.restoreScroll!==!1,za,eu=()=>{if(e.code)return e.code;if(za===void 0&&typeof e.renderFn=="function")try{za=Function.prototype.toString.call(e.renderFn)}catch{return e.renderFn}return za},xc=!1,Ec=()=>{if(Yt&&Jt)try{Yt.restore(r,Jt,fr,i)}catch{}try{let rt=nX(r,w);if(rt.collisions.length&&!f){f=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] ids shared with another chart, scoped: ${rt.collisions.slice(0,5).join(", ")}`)}catch{}}e.onIdScope?.(rt)}catch{}if(Rt!==!1)try{let rt=Rt===!0?{}:{...Rt};if(!rt.pageBg){let er=h.backgroundColor??h.themeBg;typeof er=="string"&&er&&(rt.pageBg=er)}let Nt=rX(r,rt);e.onLabelContrast?.(Nt)}catch{}if(e.layoutPass)try{e.layoutPass(r)}catch{}Lz(r,t),z();try{let rt=J7(r);if($7({markCount:rt.markCount,rows:a.rows?a.rows.length:0,animated:e.animated,contractUntagged:e.contractUntagged,declaresNoRowMarks:rt.declaresNoRowMarks})){if(!d){d=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] this chart rendered without error but painted no data marks, against ${a.rows.length} row(s) \u2014 so the container is empty. The usual cause is that the generated code binds a column BY NAME that is no longer in the data, sending it down its own "no data" branch. Check that the columns in your table still match the ones the chart was generated for.`)}catch{}}e.onBlankRender?.({census:rt,rows:a.rows?a.rows.length:0})}}catch{}if(e.onHitBandCensus)try{e.onHitBandCensus(Iz(r,t))}catch{}if(e.onColourSpreadCensus)try{e.onColourSpreadCensus(kj(r,t))}catch{}if(e.onClippedTextCensus)try{e.onClippedTextCensus($j(r))}catch{}if(e.onValuePlacementCensus)try{e.onValuePlacementCensus(Zj(r,a))}catch{}let Re=Fz(r);if(Pt!==!1)try{let rt=Pt===!0?{}:Pt,Nt=Gz(r,yo?{...rt,restoreScroll:{memory:Re,key:eu()}}:rt);e.onFit?.(Nt)}catch{}try{M()}catch{}Qe();try{Bt=Cz({container:r,options:()=>h,rows:a.rows?a.rows.length:0,select:oe,clearSelection:kt})}catch{}},tu=Re=>{let rt=String(Re?.message??Re??"");return e.onInvalidSentinel&&iX(rt)?(Qt(),r.innerHTML="",e.onInvalidSentinel({reason:aX(rt),message:rt}),null):cX(Re,n)},ru={render(){if(p)return;let Re=++P;if(Qt(),ce(!1),dt(),gr(),xc&&yo&&$k(r,eu()),r.innerHTML="",xc=!0,!m){if(!e.code)throw new Error("createChartHost: provide code or renderFn");m=pX(e.code,o,t,i)}if(h.geo===void 0&&e.geoKind){let Nt=e.geoProvider?.(e.geoKind)??jz(e.geoKind);if(Nt)h={...h,geo:Nt};else if(!g){g=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] geoKind "${e.geoKind}" was set but no geometry is available, so this chart will draw without a basemap. Either \`await loadGeo("${e.geoKind}")\` before rendering, pass a geoProvider, or import { geoForKind } from "@bicharts/chart-host/geo" and set options.geo.`)}catch{}}}h.geoUnmatched===void 0&&a.geoUnmatched&&(h={...h,geoUnmatched:a.geoUnmatched}),h.geoPoint===void 0&&a.geoPoint&&(h={...h,geoPoint:a.geoPoint}),h.geoPointDest===void 0&&a.geoPointDest&&(h={...h,geoPointDest:a.geoPointDest}),h.dateCellsAreUtcDays===void 0&&a.dateCellsAreUtcDays&&(h={...h,dateCellsAreUtcDays:!0}),h.suppressSelectionGlyph===void 0&&a.meta?.suppressSelectionGlyph===!0&&(h={...h,suppressSelectionGlyph:!0});let rt;if(Jt=null,Yt&&e.code&&!e.renderFn)try{fr=Yt.keyFor(e.code,h.width??r.clientWidth,h.height??r.clientHeight),Jt=Yt.capture(i)}catch{Jt=null}try{try{rt=m(r,{columns:a.columns,rows:a.rows},h)}finally{try{Jt?.release()}catch{}}}catch(Nt){let er=tu(Nt);if(er)throw U(Promise.reject(er)),er;U(Promise.resolve());return}if(!cue(rt)){Ec(),U(Promise.resolve());return}U(new Promise((Nt,er)=>{let oo=setTimeout(()=>{er(new Error(`[@bicharts/chart-host] the chart did not finish drawing within ${Math.round(uj/1e3)}s, so the host stopped waiting for it. Nothing past that point ran: no label-contrast pass, no hit-target heal, no census, no fit. A render() that returns a promise has to settle it.`))},uj),Co=vo=>{clearTimeout(oo),vo()};Promise.resolve(rt).then(()=>Co(()=>{if(p||Re!==P){Nt();return}Ec(),Nt()}),vo=>Co(()=>{if(p||Re!==P){Nt();return}let Bo=tu(vo);Bo?er(Bo):Nt()}))}))},setOptions(Re){p||(s={...s,...Re},h=c(s),ru.render())},setData(Re){p||(a=Re,ru.render())},get options(){return h},setAnnotations(Re){if(!p){A.set(Re);try{M()}catch{}}},get annotationReport(){return A.report},get rendered(){return E},selection:{onChange(Re){return j.add(Re),()=>j.delete(Re)},clear(){if(p)return;let Re=r[tP];if(typeof Re=="function")try{Re()}catch{}G(null),Bt?.clear({publish:!1,source:"host"}),tt([],"host")},highlight(Re){if(p)return;let rt=Array.isArray(Re)?Re.slice():[];Bt&&Bt.rows().length&&!rP(rt,Bt.rows())&&Bt.clear({publish:!1,source:"host"}),tt(rt,"host")},get current(){return T}},animation:{stop(){p||Qt()}},initialMark(){return p?null:r[kk]??null},destroy(){if(!p&&(p=!0,Qt(),r.removeEventListener(eP,ze),r.removeEventListener("click",Ye),mt(),Vk(r),dt(),j.clear(),L(),A.destroy(),xc&&yo&&$k(r,eu()),ed(r),gr(),ro(),ce(!1),r.innerHTML="",ue!==null)){try{r.style.position==="relative"&&(r.style.position=ue)}catch{}ue=null}}};return ru}var hue=Object.freeze({sourceId:null,rows:Object.freeze([])});function Q7(r,e){return r?e.map(t=>r[t]).filter(t=>t!==void 0):e.slice()}function mue(r,e){let t=new Map;return r.forEach((o,n)=>{t.has(o)||t.set(o,n)}),e.map(o=>t.get(o)).filter(o=>o!==void 0)}var pue=(r,e)=>{if(r.length!==e.length)return!1;let t=r.slice().sort((n,i)=>n-i),o=e.slice().sort((n,i)=>n-i);return t.every((n,i)=>n===o[i])};function dX(r,e,t,o,n,i){if(e.sourceId===t&&e.rows.length>0){if(i){let s=mue(i,e.rows);pue(s,r.selection.current??[])||r.selection.highlight(s)}return}if(o&&n&&n.length){r.selection.highlight(n.slice());return}r.selection.current&&r.selection.current.length&&r.selection.clear()}function UM(r,e,t={}){let o=r,n=e,i=t.geo??null,a=t.point??null,s=t.destination??null,l=hue,u=new Set,c=new Set,h=f=>{for(let b of Array.from(u))b(l,f)},m=(f,b)=>{let w=l,P=w.rows.length&&w.sourceId&&w.sourceId!==f?w.rows.slice():null;return b?w.sourceId===b?P:null:P},p=f=>{let b=f?f.slice():n.map((A,M)=>M),w=b.map(A=>n[A]);return{payload:qj(o,w,i??void 0,a??void 0,s??void 0),rowMap:b}},g=(f,b={})=>p(b.respondsWith==="highlight"?null:m(f,b.filteredBy)),d={get selection(){return l},get columns(){return o},get rows(){return n},incomingFor:m,payloadFor:p,memberPayload:g,publish(f,b){l=b.length?{sourceId:f,rows:b.slice()}:{sourceId:null,rows:[]},h(b.length?"select":"clear")},clear(){l={sourceId:null,rows:[]},h("clear")},setSource(f,b,w={}){o=f,n=b,i=w.geo??null,a=w.point??null,s=w.destination??null,h("source")},onChange(f){return u.add(f),()=>{u.delete(f)}},attach(f,b,w={}){let P=w.respondsWith==="highlight",A=g(f,w).rowMap,M=T=>P||!T?"*":T.join(","),E=M(m(f,w.filteredBy)),U=b.selection.onChange((T,v)=>{if(v==="host")return;let I=Q7(A,T);f&&d.publish(f,I),w.onSelect?.(I)}),F=d.onChange((T,v)=>{let I=m(f,w.filteredBy),D=M(I);if(v==="source"||D!==E){let C=p(P?null:I);A=C.rowMap,E=D,b.setData(C.payload)}dX(b,T,f,P,I,A)}),L={get rowMap(){return A},detach(){U(),F(),c.delete(L)}};return c.add(L),L},destroy(){for(let f of Array.from(c))f.detach();u.clear()}};return d}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var due=10,yue=1e5,fue=1e4,lo=r=>Object.freeze({...r,...r.values?{values:Object.freeze([...r.values])}:{}}),BM=Object.freeze({aggregation:lo({timing:"live-and-next-generate",default:"",values:["","sum","average","median","min","max","count","distinct"],wire:"request"}),colorScaleLow:lo({timing:"live-and-next-generate",default:"",wire:"request"}),colorScaleHigh:lo({timing:"live-and-next-generate",default:"",wire:"request"}),palette:lo({timing:"live-and-next-generate",default:"",wire:"request"}),maxMapPoints:lo({timing:"live-and-next-generate",default:v7,min:due,max:yue,wire:"clientHints"}),pageSize:lo({timing:"live",default:0,min:0}),valueAxisBaseline:lo({timing:"live",default:w7,values:["fit","zero","auto"]}),seasonalMarkers:lo({timing:"live",default:P7,values:["auto","always","never"]}),animAutoPlay:lo({timing:"live",default:!1}),animPlaySpeedMs:lo({timing:"live",default:h7,min:m7,max:p7}),animLoopDelaySec:lo({timing:"live",default:d7,min:y7}),animStopAtEnd:lo({timing:"live",default:!1}),animMaxIdealFrames:lo({timing:"live",default:f7,min:g7,max:b7}),animTimelineStyle:lo({timing:"live",default:"",values:["","line","boxes"]}),filtersDuringPlay:lo({timing:"live",default:!1}),flipMode:lo({timing:"live",default:S7,values:["both","all","single"]}),flipIntervalMs:lo({timing:"live",default:"",min:0,max:oz}),flipDirection:lo({timing:"live",default:A7,values:["horizontal","vertical"]}),cardBackgroundColor:lo({timing:"live",default:""}),hoverDropLines:lo({timing:"live",default:"",values:["","on","off"]}),geoBorders:lo({timing:"live",default:!0}),deriveProvinces:lo({timing:"next-generate",default:!0}),levelOfDetail:lo({timing:"next-generate",default:"",values:["","High","Medium","Low"],wire:"clientHints"}),favorLimitTo:lo({timing:"next-generate",default:"",values:["","latest","top / greatest","bottom / smallest","most common","outliers"],wire:"clientHints"}),favorLimitCount:lo({timing:"next-generate",default:0,min:0,max:fue,wire:"clientHints"}),favorTitle:lo({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),favorDPValues:lo({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),legendPlacement:lo({timing:"next-generate",default:"",values:["","outside","inside","none"],wire:"clientHints"}),industryContext:lo({timing:"next-generate",default:"",wire:"clientHints"}),suggestFontFamily:lo({timing:"next-generate",default:"",wire:"clientHints"}),visionReview:lo({timing:"after-render",default:!1}),saveThumbnails:lo({timing:"after-render",default:!1})}),TSt=Object.freeze(Object.keys(BM).filter(r=>BM[r].timing==="live"||BM[r].timing==="live-and-next-generate"));var WSt=Object.freeze(["TILE_TOO_NARROW","TILE_TOO_SHORT","TILE_NOT_SQUARE","TILE_NOT_TALL","TILE_TOO_SMALL","EMBED_NOTHING_FITS_TILE","EMBED_BEESWARM_TILE_TOO_SMALL"]);function fs(r,e,t,o){var n,i=arguments.length,a=i<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,t):o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(r,e,t,o);else for(var s=r.length-1;s>=0;s--)(n=r[s])&&(a=(i<3?n(a):i>3?n(e,t,a):n(e,t))||a);return i>3&&a&&Object.defineProperty(e,t,a),a}function Ql(r,e,t){if(t||arguments.length===2)for(var o,n=0,i=e.length;n<i;n++)!o&&n in e||(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return r.concat(o||Array.prototype.slice.call(e))}var fX=function(r,e,t){return[r,e,t].map((function(o){return(o/=255)>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92}))},gX=function(r,e,t){return[r,e,t].map((function(o){return 255*(o<=.00304?12.92*o:1.055*Math.pow(o,1/2.4)-.055)}))},gn=function(r,e,t){return Math.min(Math.max(r,e),t)},bX=function(r,e){return Math.round((r+Number.EPSILON)*Math.pow(10,e))/Math.pow(10,e)},Z7=function(r,e){return Math.floor(Math.random()*(e-r+1)-r)},SX=function(r,e,t,o){for(var n,i=[r,e,t],a="#",s=0;s<i.length;s++)a+=(n=i[s],Math.round(gn(n,0,255)).toString(16).padStart(2,"0"));return o!=null&&(a+=Math.round(gn(o,0,100)/100*255).toString(16).padStart(2,"0")),a},AX=function(r){var e=r.length,t=(r=(function(i){var a=(i=/^#/.test(i)?i.slice(1):i).length;if(![3,4,6,8].includes(a))return"000000";if(a===6||a===8)return i;if(a===3||a===4){for(var s="",l=0;l<a;l++){var u=i[l];s+=""+u+u}return s}return"000000"})(r).padEnd(8,"ff")).match(/.{2}/g);if(!t)return[0,0,0,1];var o=[0,0,0],n=!1;return t.forEach((function(i,a){a<3?o[a]=parseInt(i,16):n=100*parseInt(i,16)/255})),n===!1||e<8?o:Ql(Ql([],o,!0),[n],!1)},wX=function(r,e,t){var o;o=[r,e,t].map((function(a){return a/255})),r=o[0],e=o[1],t=o[2];var n=1-Math.max(r,e,t),i=n<1?1/(1-n):0;return[(1-r-n)*i*100,(1-e-n)*i*100,(1-t-n)*i*100,100*n]},PX=function(r,e,t,o){return o===100?[0,0,0]:(o/=100,[r,e,t].map((function(n){return(n/=100)>=1?0:255*(1-n)*(1-o)})))};function HM(r,e,t,o){var n;o===void 0&&(o="l"),n=[r,e,t].map((function(p){return p/255})),r=n[0],e=n[1],t=n[2];var i=Math.max(r,e,t),a=Math.min(r,e,t),s=(function(p,g,d,f){var b;f===void 0&&(f=!1),b=[p,g,d].map((function(E){return E/255})),p=b[0],g=b[1],d=b[2];var w=Math.max(p,g,d),P=Math.min(p,g,d),A=0;if(w!==P)if(f)A=(p-g+(p-d))/2,A/=Math.sqrt((p-g)*(p-g)+(p-d)*(g-d)),A=Math.acos(A),d>g&&(A=2*Math.PI-A),A/=2*Math.PI;else{var M=w-P;A=w===p?(g-d)/M+(g<d?6:0):w===g?(d-p)/M+2:(p-g)/M+4,A/=6}else A=NaN;return 360*A})(r,e,t,o==="i"),l=0,u=(i+a)/2,c=i-a,h=i,m=(r+e+t)/3;return o==="v"&&(l=i===0?0:c/i),i!==a&&o==="l"&&(l=u>.5?c/(2-i-a):c/(i+a)),o==="i"&&(l=m>0?1-a/m:0),l*=100,u*=100,m*=100,o==="l"?[s,l,u]:o==="v"?[s,l,h*=100]:[s,l,m]}var zM=function(r,e,t){return HM(r,e,t,"l")},nd=function(r,e,t){var o,n,i=function(a){return 6*(a=a<0?a+1:a>1?a-1:a)<1?o+(n-o)*a*6:2*a<1?n:3*a<2?o+(n-o)*(.6666666666666666-a)*6:o};return r=r%360/360,e=gn(e/100,0,1),t=gn(t/100,0,1),o=2*t-(n=t<=.5?t*(e+1):t+e-t*e),[255*i(r+1/3),255*i(r),255*i(r-1/3)]},vX=function(r,e,t){return HM(r,e,t,"v")},jM=function(r,e,t){var o,n,i=[t/=100,t*(1-(e/=100)),t*(1-(n=(r=r%360/360*360)/60-(o=Math.floor(r/60%6)))*e),t*(1-(1-n)*e)],a=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return[255*i[a[o][0]],255*i[a[o][1]],255*i[a[o][2]]]},NX=function(r,e,t){return HM(r,e,t,"i")},XM=function(r,e,t){var o,n,i,a;e/=100,t/=100,isNaN(r)&&(r=0),isNaN(e)&&(e=0);var s=function(l){return(1+e*Math.cos(2*Math.PI*l)/Math.cos(Math.PI/3-2*Math.PI*l))/3};return(r=(360+r)%360/360)<1/3?i=1-((a=(1-e)/3)+(n=s(r))):r<2/3?a=1-((n=(1-e)/3)+(i=s(r-=1/3))):n=1-((i=(1-e)/3)+(a=s(r-=2/3))),o=[n,i,a].map((function(l){return 255*gn(t*l*3,0,1)})),[n=o[0],i=o[1],a=o[2]]},xX=function(r,e,t){return[zM(r,e,t)[0],100*(Math.min(r,e,t)/255),100*(1-Math.max(r,e,t)/255)]};function KM(r,e,t){return e/=100,t/=100,nd(r,100,50).map((function(o){return 255*(o/255*(1-e-t)+e)}))}var DM={x:[.4124564,.3575761,.1804375],y:[.2126729,.7151522,.072175],z:[.0193339,.119192,.9503041]},OM={r:[3.2404542,-1.5371385,-.4985314],g:[-.969266,1.8760108,.041556],b:[.0556434,-.2040259,1.0572252]},EX=.95047,CX=1,kX=1.08883,gue=.206896552,bue=.008856452,MX=24389/27,FM=function(r,e,t){var o=fX(r,e,t);return[100*DM.x.reduce((function(n,i,a){return n+i*o[a]}),0),100*DM.y.reduce((function(n,i,a){return n+i*o[a]}),0),100*DM.z.reduce((function(n,i,a){return n+i*o[a]}),0)]},bP=function(r,e,t){var o=[r,e,t],n=OM.r.reduce((function(s,l,u){return s+l*o[u]}),0)/100,i=OM.g.reduce((function(s,l,u){return s+l*o[u]}),0)/100,a=OM.b.reduce((function(s,l,u){return s+l*o[u]}),0)/100;return gX(n,i,a)},e8=function(r,e,t){var o;return o=[r=r/EX/100,e=e/CX/100,t=t/kX/100].map((function(n){return n>bue?Math.pow(n,1/3):(MX*n+16)/116})),r=o[0],e=o[1],t=o[2],[Math.max(0,116*e-16),500*(r-e),200*(e-t)]},YM=function(r,e,t){var o,n=(r+16)/116,i=isNaN(e)?n:n+e/500,a=isNaN(t)?n:n-t/200;return o=[i,n,a].map((function(s){return s>gue?Math.pow(s,3):(116*s-16)/MX})),i=o[0],n=o[1],a=o[2],[i*EX*100,n*CX*100,a*kX*100]},qM=function(r,e,t){return bP.apply(void 0,YM(r,e,t))},GM=function(r,e,t){e=gn(e,-100,100),t=gn(t,-100,100);var o=Math.sqrt(e*e+t*t),n=(180*Math.atan2(t,e)/Math.PI+360)%360;return Math.round(1e4*o)===0&&(n=Number.NaN),[r,o,n]},TX=function(r,e,t){return isNaN(t)&&(t=0),t*=Math.PI/180,[r,Math.cos(t)*e,Math.sin(t)*e]},JM=function(r,e,t){return YM.apply(void 0,TX(r,e,t))},WX=function(r,e,t){var o=r+e+t,n=0,i=0;return o>0&&(n=r/o,i=e/o),[n,i,e]},Sue=Object.freeze({__proto__:null,linear2rgb:gX,rgb2linear:fX,rgb2hex:SX,hex2rgb:AX,rgb2cmyk:wX,cmyk2rgb:PX,rgb2hsl:zM,hsl2rgb:nd,rgb2hsv:vX,hsv2rgb:jM,rgb2hsi:NX,hsi2rgb:XM,rgb2hwb:xX,hwb2rgb:KM,rgb2xyz:FM,xyz2rgb:bP,xyz2lab:e8,lab2xyz:YM,rgb2lab:function(r,e,t){return e8.apply(void 0,FM(r,e,t))},lab2rgb:qM,lch2lab:TX,lab2lch:GM,xyz2lch:function(r,e,t){return GM.apply(void 0,e8(r,e,t))},lch2xyz:JM,xyY2xyz:function(r,e,t){return e===0?[0,0,0]:[r*(t/e),t,t/e*(1-r-e)]},xyz2xyY:WX});function $l(r,e){return e===void 0&&(e=!1),function(t,o,n){var i=n.value;n.value=function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];if(a.length>0&&e){var l=JSON.stringify(a);r+=l}if(this.cache.has(r))return this.cache.get(r);var u=i.call.apply(i,Ql([this],a,!1));return this.cache.set(r,u),u}}}function il(r,e,t,o){return r===void 0&&(r=[0,2,2]),e===void 0&&(e=0),t===void 0&&(t=!0),o===void 0&&(o=0),function(n,i,a){var s=a.value;a.value=function(){for(var l=[],u=0;u<arguments.length;u++)l[u]=arguments[u];var c=l[o]===void 0?t:l[o],h=s.call.apply(s,Ql([this],l,!1));if(c===!1)return h;var m=typeof c=="number"?Math.round(c):0,p=typeof r=="number"?new Array(h.length).fill(r):r,g=p.map((function(d){return e===1?typeof c=="number"?m:d:d+m}));return h.map((function(d,f){return bX(d,g[f])}))}}}var LX=function(r,e,t){var o=r instanceof kn?r:new kn(r),n=e instanceof kn?e:new kn(e),i=gn(t,0,100)/100,a=2*i-1,s=o.alpha()-n.alpha(),l=((a*s==-1?a:(a+s)/(1+a*s))+1)/2,u=1-l,c=[Math.round(gn(o.red()*l+n.red()*u,0,255)),Math.round(gn(o.green()*l+n.green()*u,0,255)),Math.round(gn(o.blue()*l+n.blue()*u,0,255))],h=o.alpha()*i+n.alpha()*(1-i);return new kn(c,h)},Ha=Math.sqrt,Kr=Math.pow,LS=Math.cos,gP=Math.abs,yX=Math.sin,Aue=Math.exp,wue=Math.atan2,IX=Math.PI,od=function(r){return IX*r/180},VM=function(r,e,t){t===void 0&&(t=!0);var o=wue(e,r);return t&&(o=(o=(o=180*o/IX)>0?o:o+360)>360?o-360:o),o},IS=function(r,e){e===void 0&&(e=!0);var t=r.lab(!1),o=t[0],n=t[1],i=t[2];return[o,Ha(Kr(n,2)+Kr(i,2)),VM(n,i,e),n,i]},Pue=["CMC","CIE","CIE2000","CIE1994","CIE1976"],vue="CMC",Nue="CIE2000",xue="CIE1994",Eue="CIE1976",RX=function(r,e,t,o){t===void 0&&(t="CIE");var n=(function(c){var h=c.toUpperCase();return Pue.includes(h)&&h!=="CIE"?h:Nue})(t);if(o=o||{},n===vue){var i=Object.assign({},{l:1,c:1},o);return(function(c,h,m,p){m===void 0&&(m=1),p===void 0&&(p=1);var g=IS(c,!0),d=g[0],f=g[1],b=g[2],w=g[3],P=g[4],A=IS(h),M=A[0],E=A[1],U=A[3],F=f-E,L=d-M,T=P-A[4],v=Ha(Kr(w-U,2)+Kr(T,2)-Kr(F,2)),I=d<16?.511:.040975*d/(1+.01765*d),D=.0638*f/(1+.0131*f)+.638,C=164<=b&&b<=345?.56+gP(.2*LS(od(b+168))):.36+gP(.4*LS(od(b+35))),O=Ha(Kr(f,4)/(Kr(f,4)+1900)),G=D*(O*C+1-O);return Ha(Kr(L/(m*I),2)+Kr(F/(p*D),2)+Kr(v/G,2))})(r,e,i.l,i.c)}if(n===xue){var a={kL:1,kC:1,kH:1,cate:"graphic"},s=Object.assign({},a,o);return(function(c,h,m,p,g,d){m===void 0&&(m=1),p===void 0&&(p=1),g===void 0&&(g=1),d===void 0&&(d="graphic");var f=d==="textiles"?.048:.045,b=d==="textiles"?.014:.015;m=d==="textiles"?2:m;var w=IS(c),P=w[0],A=w[1],M=w[3],E=w[4],U=IS(h),F=U[0],L=U[1],T=U[3],v=P-F,I=A-L,D=E-U[4],C=1+f*A,O=1+b*A,G=Ha(Kr(M-T,2)+Kr(D,2)-Kr(I,2));return Ha(Kr(v/(1*m),2)+Kr(I/(p*C),2)+Kr(G/(g*O),2))})(r,e,s.kL,s.kC,s.kH,s.cate)}if(n===Eue)return(function(c,h){var m=c.lab(!1),p=m[0],g=m[1],d=m[2],f=h.lab(!1),b=f[0],w=f[1],P=f[2];return Ha(Kr(p-b,2)+Kr(g-w,2)+Kr(d-P,2))})(r,e);var l={kL:1,kC:1,kH:1},u=Object.assign({},l,o);return(function(c,h,m,p,g){m===void 0&&(m=1),p===void 0&&(p=1),g===void 0&&(g=1);var d=IS(c),f=d[0],b=d[1],w=d[3],P=d[4],A=IS(h),M=A[0],E=A[1],U=A[3],F=A[4],L=(f+M)/2,T=(b+E)/2,v=(1-Ha(Kr(T,7)/(Kr(T,7)+Kr(25,7))))/2,I=w*(1+v),D=U*(1+v),C=Ha(Kr(I,2)+Kr(P,2)),O=Ha(Kr(D,2)+Kr(F,2)),G=VM(I,P,!0),j=VM(D,F,!0),Y=(C+O)/2,z=gP(G-j)>180?(G+j+360)/2:(G+j)/2,X=1-.17*LS(od(z-30))+.24*LS(od(2*z))+.32*LS(od(3*z+6))-.2*LS(od(4*z-63)),ue=gP(j-G)<=180?j-G:gP(j-G)>180&&j<=G?j-G+360:j-G-360,Q=M-f,ye=E-b,J=2*Ha(C*O)*yX(od(ue)/2),ve=1+.015*Kr(L-50,2)/Ha(20+Kr(L-50,2)),Me=1+.045*Y,re=1+.015*Y*X,pe=30*Aue(-Kr((z-275)/25,2)),ae=-2*Ha(Kr(Y,7)/(Kr(Y,7)+Kr(25,7)))*yX(2*od(pe));return Ha(Kr(Q/(m*ve),2)+Kr(ye/(p*Me),2)+Kr(J/(g*re),2)+ae*(ye/(p*Me))*(J/(g*re)))})(r,e,u.kL,u.kC,u.kH)},Cue=function(r,e,t){var o=Math.abs,n=Math.max,i=Math.min,a=r instanceof kn?r:new kn(r),s=e instanceof kn?e:new kn(e),l=Object.assign({},{b:125,c:500},t);return!(o(255*a.brightness()/100-255*s.brightness()/100)<=l.b)&&!(n(a.red(),s.red())-i(a.red(),s.red())+(n(a.green(),s.green())-i(a.green(),s.green()))+(n(a.blue(),s.blue())-i(a.blue(),s.blue()))<=l.c)},RS=function(r,e,t){var o,n=function(u){return gn(u,0,100)},i=function(u){return gn(u,0,255)},a={h:[0,function(u){return u%360}],s:[1,n],l:[2,n],r:[0,i],g:[1,i],b:[2,i]},s=a[e][0];if(["h","s","l"].includes(e)){var l=r.hsl();if(t===void 0)return l[s];t=a[e][1](t),l[s]=t,o=nd.apply(void 0,l)}else{if(o=r.rgb(),t===void 0)return o[s];t=a[e][1](t),o[s]=t}return new kn(o,r.alpha())},r8={},kue=new Set(["rgb","rgba","cmyk","lab","hsl","hsla","hsv","hsva","hsi","hsia","xyz","lch","hwb","hwba"]),Mue=/^([a-zA-Z]+)\(([\s\S]+)\)$/,t8=function(r){return typeof r=="string"?r.indexOf("%")===-1?t8(Number(r.trim())):(r=r.split("%")[0],(r=Number(r.trim()))||0):Math.abs(r)<1?100*r:r},_X=function(r,e){e===void 0&&(e=new Set);var t=typeof r=="string"?r:r.join(",");if(e.has(t))throw new Error("Invalid Color");e.add(t);var o="rgb",n=[0,0,0],i=100;if(Array.isArray(r)){if(r.length<3)throw new Error("Invalid Color");for(var a=0;a<r.length;a++)if(a<3)n[a]=r[a];else{if(a!==3||r[3]===void 0)break;i=r[3]}}else{var s=!1,l=r.trim().match(Mue);if(l||(s=!0),l){var u=l[1].toLocaleLowerCase();if(o=u,kue.has(u)||(s=!0),l[2]&&!s){var c=l[2],h=c.indexOf(",")!==-1?",":" ",m=c.split(h);for(a=0;a<3;a++)m[a]!==void 0&&(["lch","lab"].includes(o)&&a===0||["hsl","hsla","hsv","hsva","hwb","hwba","hsi","hsia"].includes(o)&&a>0?n[a]=t8(m[a]):n[a]=Number(m[a].trim()));["rgba","hsla","hsva","hwba","hsia"].includes(o)?(o=o.slice(0,-1),m[3]!==void 0&&(i=t8(m[3]))):o==="cmyk"&&n.push(m[3]!==void 0?t8(m[3]):0)}}if(s){if(!/^#(([a-fA-F\d]{3}){1,2}|[a-fA-F\d]{8})$/.test(r))try{return r=(function(p,g){if(g===void 0&&(g=!1),p=p.toLowerCase(),r8[p]===void 0){if(g)throw new Error("Unknown color name: ".concat(p,")"));return p}return r8[p]})(r,!0),_X(r,e)}catch{throw new Error("Invalid Color")}n=AX(r)}}return[o,n,i]},UX={thowParseError:!1},kn=(function(){function r(e,t,o){this.cache=new Map,this._rgb=[0,0,0],this._alpha=100;var n={thowParseError:UX.thowParseError},i=Object.assign({},n,o??{});try{var a=(function(u){var c,h={lab2rgb:qM,hsl2rgb:nd,hsv2rgb:jM,xyz2rgb:bP,hwb2rgb:KM,hsi2rgb:XM},m=_X(u),p=m[0],g=m[1],d=m[2];if(p==="rgb")return[g,d];p==="lch"&&(p=(c=["xyz",JM(g[0],g[1],g[2])])[0],g=c[1]);var f=g[0],b=g[1],w=g[2],P=g[3];if(p==="cmyk")return[PX(f,b,w,P).map((function(M){return gn(M,0,255)})),d];var A="".concat(p,"2rgb");if(typeof h[A]=="function")return[h[A](f,b,w).map((function(M){return gn(M,0,255)})),d];throw new Error("Invalid color")})(e),s=a[0],l=a[1];this._alpha=l,this._rgb=s}catch(u){if(i.thowParseError)throw u}t!==void 0&&(this._alpha=gn(t,0,100))}return r.prototype.red=function(e){return RS(this,"r",e)},r.prototype.green=function(e){return RS(this,"g",e)},r.prototype.blue=function(e){return RS(this,"b",e)},r.prototype.alpha=function(e){return e===void 0?this._alpha:(e=gn(e,0,100),new r(this.rgb(),e))},r.prototype.fadeIn=function(e,t){return e===void 0&&(e=10),e=t&&t==="relative"?this._alpha*e/100:e,new r(this.rgb(),gn(this._alpha+e,0,100))},r.prototype.fadeOut=function(e,t){return e===void 0&&(e=10),e=t&&t==="relative"?this._alpha*e/100:e,new r(this.rgb(),gn(this._alpha-e,0,100))},r.prototype.opacify=function(e,t){return e===void 0&&(e=10),this.fadeIn(e,t)},r.prototype.transparentize=function(e,t){return e===void 0&&(e=10),this.fadeOut(e,t)},r.prototype.hue=function(e){return RS(this,"h",e)},r.prototype.saturation=function(e){return RS(this,"s",e)},r.prototype.lightness=function(e){return RS(this,"l",e)},r.prototype.rgb=function(e){return Ql([],this._rgb,!0)},r.prototype.rgba=function(e){return Ql(Ql([],this.rgb(!1),!0),[this._alpha],!1)},r.prototype.cmyk=function(e){return wX.apply(void 0,this._rgb)},r.prototype.hsl=function(e){return zM.apply(void 0,this._rgb)},r.prototype.hsla=function(e){return Ql(Ql([],this.hsl(!1),!0),[this._alpha],!1)},r.prototype.hsv=function(e){return vX.apply(void 0,this._rgb)},r.prototype.hsi=function(e){return NX.apply(void 0,this._rgb)},r.prototype.hwb=function(e){return xX.apply(void 0,this._rgb)},r.prototype.xyz=function(e){return FM.apply(void 0,this._rgb)},r.prototype.lab=function(e){return e8.apply(void 0,this.xyz(!1))},r.prototype.lch=function(e){return GM.apply(void 0,this.lab(!1))},r.prototype.xyY=function(e){return WX.apply(void 0,this.xyz(!1))},r.prototype.hex=function(e){e===void 0&&(e=2);var t=e===0?void 0:e===1?this._alpha:this._alpha===100?void 0:this._alpha,o="color:hex:param_".concat(e);if(this.cache.has(o))return this.cache.get(o);var n=SX.apply(void 0,Ql(Ql([],this._rgb,!1),[t],!1));return this.cache.set(o,n),n},r.prototype.lighten=function(e,t){e===void 0&&(e=5);var o=this.hsl(!1),n=o[0],i=o[1],a=o[2];return a=gn(a+=t!==void 0&&t==="relative"?a*(e/100):e,0,100),new r(nd(n,i,a),this._alpha)},r.prototype.darken=function(e,t){return e===void 0&&(e=5),this.lighten(-e,t)},r.prototype.saturate=function(e,t){e===void 0&&(e=5);var o=this.hsl(!1),n=o[0],i=o[1],a=o[2];return i=gn(i+=t!==void 0&&t==="relative"?i*(e/100):e,0,100),new r(nd(n,i,a),this._alpha)},r.prototype.desaturate=function(e,t){return e===void 0&&(e=5),this.saturate(-e,t)},r.prototype.spin=function(e){var t=this.hsl(!1),o=t[0],n=t[1],i=t[2];return new r(nd(o=(o+e%360+360)%360,n,i),this._alpha)},r.prototype.adjustHue=function(e){return this.spin(e)},r.prototype.complement=function(){return this.spin(180)},r.prototype.invert=function(){var e=this._rgb.map((function(t){return 255-t}));return new r([e[0],e[1],e[2]],this._alpha)},r.prototype.mix=function(e,t){return t===void 0&&(t=50),LX(this,e,100-gn(t,0,100))},r.prototype.luma=function(){var e=this._rgb.map((function(t){return(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}));return .2126*e[0]+.7152*e[1]+.0722*e[2]},r.prototype.brightness=function(){var e=this._rgb;return(function(t,o,n){return(299*t+587*o+114*n)/1e3/255*100})(e[0],e[1],e[2])},r.prototype.deltaE=function(e,t,o){return t===void 0&&(t="CMC"),RX(this,e,t,o)},r.prototype.visibility=function(e,t){return Cue(this,e,t)},fs([il(0,1,!0,0),$l("color:rgb")],r.prototype,"rgb",null),fs([il(0,1,!0,0)],r.prototype,"rgba",null),fs([il(0,1,!0,0),$l("color:cmyk")],r.prototype,"cmyk",null),fs([il(0,1,!0,0),$l("color:hsl")],r.prototype,"hsl",null),fs([il(0,1,!0,0)],r.prototype,"hsla",null),fs([il(0,1,!0,0),$l("color:hsv")],r.prototype,"hsv",null),fs([il(0,1,!0,0),$l("color:hsi")],r.prototype,"hsi",null),fs([il(0,1,!0,0),$l("color: hwb")],r.prototype,"hwb",null),fs([il(2,1,!0,0),$l("color:xyz")],r.prototype,"xyz",null),fs([il(2,1,!0,0),$l("color:lab")],r.prototype,"lab",null),fs([il(2,1,!0,0),$l("color:lch")],r.prototype,"lch",null),fs([il(2,1,!0,0),$l("color:xyY")],r.prototype,"xyY",null),fs([$l("color:luma")],r.prototype,"luma",null),r})(),Tue=function(r,e,t,o){return new kn([r,e,t],o)},Wue=function(r,e,t,o){return new kn(nd(r,e,t),o)},Lue=function(r,e,t,o){return new kn(jM(r,e,t),o)},Iue=function(r,e,t,o){return new kn(XM(r,e,t),o)},Rue=function(r,e,t,o){return new kn(KM(r,e,t),o)},_ue=function(r,e,t,o){return new kn(bP(r,e,t),o)},Uue=function(r,e,t,o){return new kn(qM(r,e,t),o)},Bue=function(r,e,t,o){return new kn(bP.apply(void 0,JM(r,e,t)),o)};function Mi(r,e,t){return new kn(r,e,t)}Mi.config=function(r){Object.assign(UX,r)},Mi.random=function(){var r=Z7(0,255),e=Z7(0,255),t=Z7(0,255);return new kn([r,e,t])},Mi.convertor=Sue,Mi.Color=kn,Mi.rgb=Tue,Mi.hsl=Wue,Mi.hsv=Lue,Mi.hsi=Iue,Mi.hwb=Rue,Mi.xyz=_ue,Mi.lab=Uue,Mi.lch=Bue,Mi.mix=LX,Mi.deltaE=RX,Mi.utils={roundDecimal:bX,randomRange:Z7},Mi.useNames=function(r,e){return(function(t,o){if(o!==void 0&&typeof o=="function"){var n={};for(var i in t){var a=o(i,t[i]),s=a[0],l=a[1];n[s]=l}Object.assign(r8,n)}else Object.assign(r8,t)})(r,e),Mi};var n8=[1,0,0,1,0,0],_S=(r,e)=>[r[0]*e[0]+r[2]*e[1],r[1]*e[0]+r[3]*e[1],r[0]*e[2]+r[2]*e[3],r[1]*e[2]+r[3]*e[3],r[0]*e[4]+r[2]*e[5]+r[4],r[1]*e[4]+r[3]*e[5]+r[5]],o8=(r,e,t)=>[r[0]*e+r[2]*t+r[4],r[1]*e+r[3]*t+r[5]];function ZM(r){if(!r||!r.trim())return n8;let e=n8,t=/(matrix|translate|scale|rotate|skewX|skewY)\s*\(([^)]*)\)/g,o="";for(let n of r.matchAll(t)){o+=n[0];let i=n[2].split(/[\s,]+/).filter(Boolean).map(Number);if(i.some(s=>!isFinite(s)))return null;let a;switch(n[1]){case"matrix":if(i.length!==6)return null;a=i;break;case"translate":a=[1,0,0,1,i[0]??0,i[1]??0];break;case"scale":a=[i[0]??1,0,0,i[1]??i[0]??1,0,0];break;case"rotate":{let s=(i[0]??0)*Math.PI/180,l=Math.cos(s),u=Math.sin(s),c=[l,u,-u,l,0,0];a=i.length>=3?_S(_S([1,0,0,1,i[1],i[2]],c),[1,0,0,1,-i[1],-i[2]]):c;break}case"skewX":a=[1,0,Math.tan((i[0]??0)*Math.PI/180),1,0,0];break;default:a=[1,Math.tan((i[0]??0)*Math.PI/180),0,1,0,0];break}e=_S(e,a)}return r.replace(t,"").replace(/[\s,]/g,"")!==""?null:o?e:n8}var Nc=r=>String(r??"").toLowerCase(),SP=(r,e)=>{let t=Nc(r.getAttribute("style")).replace(/\s+/g,"");for(let o of t.split(";")){let n=o.indexOf(":");if(n>0&&o.slice(0,n)===e)return o.slice(n+1)}return null},Ef=(r,e)=>SP(r,e)??(r.getAttribute(e)!==null?Nc(r.getAttribute(e)):null);function Due(r){for(let e of String(r.getAttribute?.("style")??"").split(";")){let t=e.indexOf(":");if(t<0||e.slice(0,t).trim().toLowerCase()!=="font")continue;let o=/(?:^|\s)((?:\d*\.)?\d+(?:px|pt|em|%))(?:\s|\/|$)/i.exec(e.slice(t+1));return o?o[1].toLowerCase():"unreadable"}return null}var BX=10;function US(r){for(let e=r;e;e=e.parentElement){let t=SP(e,"font-size")??Due(e)??(e.getAttribute?.("font-size")!=null&&e.getAttribute("font-size").trim()!==""?Nc(e.getAttribute("font-size")).trim():null);if(t===null)continue;let o=/^((?:\d*\.)?\d+(?:e[+-]?\d+)?)(px|pt|em|%)?$/.exec(t);if(!o)return{px:BX,sure:!1};let n=parseFloat(o[1]),i=o[2]??"px";if(i==="px")return{px:n,sure:!0};if(i==="pt")return{px:n*4/3,sure:!0};let a=US(e.parentElement);return{px:(i==="em"?n:n/100)*a.px,sure:a.sure}}return{px:BX,sure:!1}}function i8(r,e,t,o){let n=String(r.getAttribute(e)??"").trim().toLowerCase();if(!n)return{v:0,sure:!0};let i=n.split(/[\s,]+/).filter(Boolean),a=/^([-+]?(?:\d*\.)?\d+(?:e[+-]?\d+)?)(px|em|%)?$/.exec(i[0]);if(!a)return null;let s=parseFloat(a[1]),l=a[2]==="em"?s*t:a[2]==="%"?s/100*o:s;return isFinite(l)?{v:l,sure:i.length===1}:null}function Oue(r){return Array.from(r).length*.5}function Fue(r){for(let e=r.parentElement;e;e=e.parentElement)if(Nc(e.localName)==="svg")return e;return null}var eT=new Set(["defs","clippath","mask","pattern","marker","symbol","lineargradient","radialgradient","filter","title","desc","metadata","style","script"]);function DX(r){let e=String(r??"").trim();return/^\+?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?$/i.test(e)?parseFloat(e):NaN}function Gue(r){if(Ef(r,"overflow")==="visible")return null;let e=DX(SP(r,"width")??r.getAttribute("width")),t=DX(SP(r,"height")??r.getAttribute("height")),o=r.getAttribute("viewBox");if(o){let n=o.split(/[\s,]+/).filter(Boolean).map(Number);return n.length!==4||!n.every(isFinite)||n[2]<=0||n[3]<=0||!Nc(r.getAttribute("preserveAspectRatio")).includes("none")&&isFinite(e)&&isFinite(t)&&e>0&&t>0&&Math.abs(n[2]/n[3]-e/t)>.01*(e/t)?null:{x0:n[0],y0:n[1],x1:n[0]+n[2],y1:n[1]+n[3]}}return!(e>0)||!(t>0)?null:{x0:0,y0:0,x1:e,y1:t}}function Vue(r,e){for(let t=r;t&&t!==e;t=t.parentElement){if(Ef(t,"display")==="none")return!0;let o=Ef(t,"visibility");if(o==="hidden"||o==="collapse")return!0;let n=Ef(t,"opacity");if(n!==null&&n!==""&&parseFloat(n)===0)return!0}return!1}function Hue(r,e){for(let t=r;t&&t!==e;t=t.parentElement)if(t.getAttribute("clip-path")||SP(t,"clip-path")||eT.has(Nc(t.localName)))return!0;return!1}function zue(r,e){let t=n8;for(let o=r;o&&o!==e;o=o.parentElement){let n=ZM(o.getAttribute("transform"));if(!n)return null;t=_S(n,t)}return t}var gs=(r,e)=>{let t=parseFloat(r.getAttribute(e)??"");return isFinite(t)?t:0};function QM(r){let e="";for(let t=r.firstChild;t;t=t.nextSibling)t.nodeType===3||t.nodeType===4?e+=t.nodeValue??"":t.nodeType===1&&!eT.has(Nc(t.localName))&&(e+=QM(t));return e}function Zl(r,e,t){for(let o=r;o&&o!==e.parentElement;o=o.parentElement){let n=Ef(o,t);if(n!==null&&n!=="")return n}return null}var $M=["x","y","dx","dy"],xf=(r,e)=>(r.getAttribute(e)??"").trim()!=="";function jue(r,e,t){let o=US(r),[n,i,a,s]=$M.map(c=>i8(r,c,o.px,c==="x"||c==="dx"?e:t));if(!n||!i||!a||!s)return null;let l={text:"",x:n.v+a.v,y:i.v+s.v,fontPx:o.px,el:r,extra:0,sure:o.sure&&n.sure&&i.sure&&a.sure&&s.sure},u=[l];for(let c=r.firstChild;c;c=c.nextSibling){if(c.nodeType===3||c.nodeType===4){l.text+=c.nodeValue??"";continue}if(c.nodeType!==1)continue;let h=c,m=Nc(h.localName);if(eT.has(m))continue;if(m==="textpath"||h.querySelector("textPath, textpath"))return null;if(Ef(h,"display")==="none")continue;let p=US(h),g=Array.from(h.querySelectorAll("*")).some(d=>$M.some(f=>xf(d,f)));if(xf(h,"x")){let[d,f,b,w]=$M.map(P=>i8(h,P,p.px,P==="x"||P==="dx"?e:t));if(!d||!f||!b||!w)return null;l={text:QM(h),x:d.v+b.v,y:(xf(h,"y")?f.v:l.y)+w.v,fontPx:p.px,el:h,extra:0,sure:p.sure&&d.sure&&f.sure&&b.sure&&w.sure&&!g},u.push(l)}else{l.text+=QM(h);let d=i8(h,"dx",p.px,e);if(!d)return null;l.extra+=d.v,(!d.sure||xf(h,"y")||xf(h,"dy")||g||p.px!==l.fontPx||!p.sure||Ef(h,"text-anchor")!==null)&&(l.sure=!1),l.fontPx=Math.max(l.fontPx,p.px)}}for(let c of u)c.text=c.text.replace(/\s+/g," ").trim();return u.filter(c=>c.text)}function tT(r){let e=[],t=r.match(/[a-zA-Z]|[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/g)??[],o=0,n="",i=0,a=0,s=0,l=0,u=()=>parseFloat(t[o++]),c=()=>o<t.length&&!/^[a-zA-Z]$/.test(t[o]);for(;o<t.length;){if(/^[a-zA-Z]$/.test(t[o]))n=t[o++];else if(!n)return[];let h=n===n.toLowerCase(),m=n.toUpperCase();if(m==="Z"){if(i=s,a=l,c())return e;continue}let p={M:2,L:2,T:2,H:1,V:1,C:6,S:4,Q:4,A:7}[m];if(!p)return e;if(!c())continue;let g=[];for(let b=0;b<p;b++)g.push(u());if(g.some(b=>!isFinite(b)))return e;let d=h?i:0,f=h?a:0;if(m==="H")i=d+g[0],e.push([i,a]);else if(m==="V")a=f+g[0],e.push([i,a]);else if(m==="A")i=d+g[5],a=f+g[6],e.push([i,a]);else{for(let b=0;b<p;b+=2)e.push([d+g[b],f+g[b+1]]);i=d+g[p-2],a=f+g[p-1]}m==="M"&&(s=i,l=a,n=h?"l":"L")}return e}function OX(r){let e=1/0,t=-1/0,o=1/0,n=-1/0;for(let[i,a]of r)e=Math.min(e,i),t=Math.max(t,i),o=Math.min(o,a),n=Math.max(n,a);return{X0:e,X1:t,Y0:o,Y1:n}}var FX=/condensed|narrow|compressed|impact|agency/,Xue=/(?:^|[{;\s])(font-size|font|font-family|font-stretch|text-anchor|letter-spacing|word-spacing|direction|writing-mode|transform|text-transform)\s*:\s*([^;}]*)/gi;function Kue(r){for(let e of r.replace(/\/\*[\s\S]*?\*\//g,"").matchAll(Xue)){let t=e[1].toLowerCase(),o=e[2].trim().toLowerCase().replace(/\s*!important$/,"");if(!(t!=="font-size"&&t!=="font"&&/^(normal|inherit|initial|unset|none|0|0px|ltr|horizontal-tb)$/.test(o))&&!(t==="font-family"&&!FX.test(o))&&!(t==="text-transform"&&o==="uppercase"))return!0}return!1}var Yue=new Set(["rect","image","foreignobject","circle","ellipse","line","text","path","polygon","polyline"]),al=.5,que=5;function GX(r){let e={frames:0,unmeasured:0,outside:0,crossing:0,textLikely:0,textEvenNarrow:0,samples:{outside:[],crossing:[],textLikely:[],textEvenNarrow:[]}},t=(a,s)=>{a.length<que&&a.push(s)},o=Math.round,n=r.ownerDocument??r,i=Array.from(n.querySelectorAll("style")).concat(Array.from(r.querySelectorAll("style"))).some(a=>Kue(a.textContent??""));for(let a of Array.from(r.querySelectorAll("svg"))){let s=Gue(a),l=Array.from(a.querySelectorAll("*")).filter(m=>Yue.has(Nc(m.localName))&&Fue(m)===a);if(!s){l.length&&e.unmeasured++;continue}e.frames++;let u=(m,p)=>p==="left"||p==="right"?`x ${o(m.X0)}..${o(m.X1)}, frame ${o(s.x0)}..${o(s.x1)}`:`y ${o(m.Y0)}..${o(m.Y1)}, frame ${o(s.y0)}..${o(s.y1)}`,c=m=>m.X0>s.x1+al?"right":m.X1<s.x0-al?"left":m.Y0>s.y1+al?"bottom":m.Y1<s.y0-al?"top":"",h=m=>m.X1>s.x1+al?"right":m.X0<s.x0-al?"left":m.Y1>s.y1+al?"bottom":m.Y0<s.y0-al?"top":"";for(let m of l){if(Vue(m,a)||Hue(m,a))continue;let p=zue(m,a);if(!p)continue;let g=Nc(m.localName);if(g==="text"){if(Math.abs(p[1])>1e-9||Math.abs(p[2])>1e-9)continue;let P=Zl(m,a,"writing-mode")??"";if(P.startsWith("tb")||P.startsWith("vertical")||P.startsWith("sideways"))continue;let A=Zl(m,a,"fill"),M=Zl(m,a,"stroke");if(A==="none"&&(M===null||M==="none"))continue;let E=jue(m,s.x1-s.x0,s.y1-s.y0);if(!E)continue;let U=i8(m,"textLength",US(m).px,s.x1-s.x0),F=E.length===1&&xf(m,"textLength")&&U?.sure&&U.v>0?U.v:null,L=null,T=null,v=null;for(let I of E){let D=I.fontPx,C=I.text;if(!(D>0))continue;let O=I.y,G=Zl(I.el,a,"dominant-baseline")??Zl(I.el,a,"alignment-baseline")??"";G==="middle"||G==="central"?O+=.35*D:(G==="hanging"||G==="text-before-edge")&&(O+=.8*D);let j=Zl(I.el,a,"text-anchor")??"start",Y=Zl(I.el,a,"direction")==="rtl",z=Zl(I.el,a,"letter-spacing"),X=z===null||z==="normal"?0:/^(?:\d*\.)?\d+(?:px)?$/.test(z)?parseFloat(z):NaN,ue=Array.from(C).length,Q=isFinite(X)?X*ue:0,ye=`${Zl(I.el,a,"font-family")??""} ${Zl(I.el,a,"font-stretch")??""}`,J=I.sure&&!i&&!Y&&isFinite(X)&&Zl(I.el,a,"word-spacing")===null&&!FX.test(ye)&&(F!==null||!xf(m,"textLength")),ve=(Je,Qe,tt)=>{let oe=j==="middle"?I.x-Je/2:j==="end"?I.x-Je:I.x;return OX([o8(p,oe,O-Qe*D),o8(p,oe+Je,O+tt*D)])},Me=ve(F??ue*D*.6+I.extra+Q,.75,.2),re=`text "${C.length>30?C.slice(0,30)+"...":C}"`,pe=o8(p,I.x,O)[0],ae=Me.Y0>s.y1+al?"bottom":Me.Y1<s.y0-al?"top":Y?"":j==="start"&&pe>s.x1+al?"right":j==="end"&&pe<s.x0-al?"left":"";if(ae){L??={what:re,edge:ae,where:u(Me,ae)};continue}let ne=h(Me);if(!ne||(T??={what:re,edge:ne,where:u(Me,ne)},!J||v))continue;let Ce=ve(F??Oue(C)*D+I.extra+Q,.5,0),ce=h(Ce);if(!ce)continue;let De=ce==="right"?Ce.X1-s.x1:ce==="left"?s.x0-Ce.X0:ce==="bottom"?Ce.Y1-s.y1:s.y0-Ce.Y0;v={what:re,edge:ce,where:u(Ce,ce),pastPx:Math.round(De)}}if(L){e.outside++,t(e.samples.outside,L);continue}T&&(e.textLikely++,t(e.samples.textLikely,T)),v&&(e.textEvenNarrow++,t(e.samples.textEvenNarrow,v));continue}let d;if(g==="circle"||g==="ellipse"){let P=g==="circle"?gs(m,"r"):gs(m,"rx"),A=g==="circle"?P:gs(m,"ry");if(!(P>0&&A>0))continue;let M=gs(m,"cx"),E=gs(m,"cy");d=[[M-P,E-A],[M+P,E+A],[M+P,E-A],[M-P,E+A]]}else if(g==="line")d=[[gs(m,"x1"),gs(m,"y1")],[gs(m,"x2"),gs(m,"y2")]];else if(g==="path"||g==="polygon"||g==="polyline"){if(g==="path")d=tT(m.getAttribute("d")??"");else{let P=(m.getAttribute("points")??"").split(/[\s,]+/).filter(Boolean).map(Number);d=[];for(let A=0;A+1<P.length;A+=2)d.push([P[A],P[A+1]])}if(!d.length||d.some(P=>!isFinite(P[0])||!isFinite(P[1])))continue}else{let P=gs(m,"width"),A=gs(m,"height");if(!(P>0&&A>0))continue;let M=gs(m,"x"),E=gs(m,"y");d=[[M,E],[M+P,E+A],[M+P,E],[M,E+A]]}let f=OX(d.map(P=>o8(p,P[0],P[1]))),b=c(f);if(b){e.outside++,t(e.samples.outside,{what:g,edge:b,where:u(f,b)});continue}if(g==="path")continue;let w=h(f);w&&(e.crossing++,t(e.samples.crossing,{what:g,edge:w,where:u(f,w)}))}}return e}var ece=new Set(["d3-sankey","d3-hexbin","d3-voronoi-treemap"]),tce=new Set(["title","desc","metadata","style","script"]);function XX(r){let e="";for(let t=r?.firstChild;t;t=t.nextSibling)t.nodeType===3||t.nodeType===4?e+=t.nodeValue||"":t.nodeType===1&&!tce.has(String(t.localName||"").toLowerCase())&&(e+=XX(t));return e}function rT(r){return US(r).px}function rce(r,e){let t=o=>{let n=String(r.getAttribute?.(o)??"").trim().split(/[\s,]+/)[0]??"",i=parseFloat(n);return isFinite(i)?/em$/i.test(n)?i*e:i:0};return{x:t("x")+t("dx"),y:t("y")+t("dy")}}function oce(r){for(let e=r;e&&e.getAttribute;e=e.parentElement){let o=(/(?:^|;)\s*text-anchor\s*:\s*([a-z]+)/i.exec(String(e.getAttribute("style")||""))?.[1]??e.getAttribute("text-anchor")??"").trim().toLowerCase();if(o)return o}return"start"}function nce(r){let e=new Set(["SVGElement","SVGGraphicsElement","SVGGeometryElement","SVGTextContentElement"].map(h=>r[h]?.prototype).filter(Boolean)),t=r.Element?.prototype;for(let h of["svg","g","text","tspan","textPath","path","rect","circle","ellipse","line","polyline","polygon","image","use"])try{for(let m=Object.getPrototypeOf(r.document.createElementNS("http://www.w3.org/2000/svg",h));m&&m!==t;m=Object.getPrototypeOf(m))e.add(m)}catch{}let o=h=>["text","tspan","textpath"].includes(String(h.tagName||"").toLowerCase()),n=h=>o(h)?XX(h).trim().length*rT(h)*.6:0,i=h=>{let m=String(h.tagName||"").toLowerCase();if(m==="path")return tT(h.getAttribute("d")||"");if(m==="line")return[[+h.getAttribute("x1")||0,+h.getAttribute("y1")||0],[+h.getAttribute("x2")||0,+h.getAttribute("y2")||0]];let p=String(h.getAttribute("points")||"").split(/[\s,]+/).filter(Boolean).map(Number),g=[];for(let d=0;d+1<p.length;d+=2)g.push([p[d],p[d+1]]);return g},a=h=>{let m=0;for(let p=1;p<h.length;p++)m+=Math.hypot(h[p][0]-h[p-1][0],h[p][1]-h[p-1][1]);return m},s=function(){if(o(this)){let g=rT(this),d=Math.max(1,n(this)),f=rce(this,g),b=oce(this);return{x:b==="middle"?f.x-d/2:b==="end"?f.x-d:f.x,y:f.y-g*.8,width:d,height:Math.max(1,g)}}let h=parseFloat(this.getAttribute?.("width")||"")||0,m=parseFloat(this.getAttribute?.("height")||"")||0;if(h>0||m>0)return{x:0,y:0,width:h||1,height:m||1};let p=parseFloat(this.getAttribute?.("r")||"")||0;return p>0?{x:-p,y:-p,width:2*p,height:2*p}:{x:0,y:0,width:1,height:1}},l=function(){let h=s.call(this);if(String(this.tagName||"").toLowerCase()!=="svg"){let m=[1,0,0,1,0,0];for(let p=this;p&&m&&String(p.tagName||"").toLowerCase()!=="svg";p=p.parentElement){let g=ZM(p.getAttribute?.("transform"));m=g?_S(g,m):null}if(m){let p=[[h.x,h.y],[h.x+h.width,h.y],[h.x,h.y+h.height],[h.x+h.width,h.y+h.height]].map(([w,P])=>[m[0]*w+m[2]*P+m[4],m[1]*w+m[3]*P+m[5]]),g=p.map(w=>w[0]),d=p.map(w=>w[1]),f=Math.min(...g),b=Math.min(...d);h={x:f,y:b,width:Math.max(...g)-f,height:Math.max(...d)-b}}}return{...h,top:h.y,left:h.x,right:h.x+h.width,bottom:h.y+h.height,toJSON(){return h}}},u=(h,m,p)=>Object.defineProperty(h,m,{configurable:!0,writable:!0,value:p});for(let h of e)u(h,"getBBox",s),u(h,"getBoundingClientRect",l),u(h,"getComputedTextLength",function(){return n(this)}),u(h,"getSubStringLength",function(m,p){return o(this)?Math.max(0,(p||0)*rT(this)*.6):0}),u(h,"getTotalLength",function(){return a(i(this))}),u(h,"getPointAtLength",function(m){let p=i(this);if(!p.length)return{x:0,y:0};let g=Math.max(0,+m||0);for(let f=1;f<p.length;f++){let b=Math.hypot(p[f][0]-p[f-1][0],p[f][1]-p[f-1][1]);if(g<=b&&b>0){let w=g/b;return{x:p[f-1][0]+w*(p[f][0]-p[f-1][0]),y:p[f-1][1]+w*(p[f][1]-p[f-1][1])}}g-=b}let d=p[p.length-1];return{x:d[0],y:d[1]}});let c=r.HTMLCanvasElement?.prototype;if(c){let h=new WeakMap,m=g=>{let d=String(g||"").match(/([\d.]+)\s*(px|pt|em|rem)\b/i);if(!d)return 10;let f=parseFloat(d[1]);return d[2].toLowerCase()==="pt"?f*4/3:/r?em/i.test(d[2])?f*16:f},p=()=>{};Object.defineProperty(c,"getContext",{configurable:!0,writable:!0,value:function(g){if(String(g||"").toLowerCase()!=="2d")return null;let d=h.get(this);if(!d){let f=this;d=new Proxy({canvas:f,font:"10px sans-serif",measureText(b){let w=m(this.font),P=String(b??"").length*w*.6;return{width:P,actualBoundingBoxLeft:0,actualBoundingBoxRight:P,actualBoundingBoxAscent:w*.8,actualBoundingBoxDescent:w*.2,fontBoundingBoxAscent:w*.8,fontBoundingBoxDescent:w*.2}},getImageData:(b,w,P,A)=>({width:P,height:A,data:new Uint8ClampedArray(Math.max(1,P*A*4))}),createLinearGradient:()=>({addColorStop:p}),createRadialGradient:()=>({addColorStop:p}),getLineDash:()=>[],isPointInPath:()=>!1,isPointInStroke:()=>!1},{get:(b,w)=>w in b?b[w]:typeof w=="string"&&/^[a-z]/.test(w)?p:void 0}),h.set(this,d)}return d}})}}function ice(r){let e=["window","document","navigator","Event","CustomEvent","MouseEvent","KeyboardEvent","PointerEvent","Element","HTMLElement","SVGElement","Node","getComputedStyle","requestAnimationFrame","cancelAnimationFrame","DOMParser","XMLSerializer","MutationObserver","Image","ResizeObserver"],t=e.map(n=>[n,Object.getOwnPropertyDescriptor(globalThis,n)]),o=n=>n==="window"?r:n==="ResizeObserver"?r.ResizeObserver??class{observe(){}unobserve(){}disconnect(){}}:typeof r[n]=="function"&&/^[a-z]/.test(n)?r[n].bind(r):r[n];for(let n of e){let i=o(n);if(i!==void 0)try{Object.defineProperty(globalThis,n,{configurable:!0,writable:!0,value:i})}catch{}}return()=>{for(let[n,i]of t)try{i?Object.defineProperty(globalThis,n,i):delete globalThis[n]}catch{}}}function zX(r,e){let t=e.split(/\r?\n/);for(let o of String(r?.stack??"").split(`
|
|
306
|
+
}`,(t.head||t.documentElement)?.appendChild(Re)}catch{}},z=()=>{if(!p)try{let Re=T,rt=!!Re&&Re.length>0,Nt=rt&&!I;r.classList?.[Nt?"add":"remove"](kS);let er=h.dimOpacity;if(typeof er=="number"){let bn=String(er),Do=F7.get(r),Zo=cj(r);Do?Zo&&Do.wrote&&!hj(Zo,Do.wrote)&&(Do.was=Zo.value?Zo:null):(Do={was:Zo?.value?Zo:null,holders:0,wrote:null},F7.set(r,Do)),F||(Do.holders++,F=!0),Do.wrote={value:bn,priority:""},r.style?.setProperty(Qp,bn)}else L();let oo=r.querySelectorAll(`.${Sf}`);for(let bn of Array.from(oo))bn.classList?.remove(Sf);let Co=!!v&&(typeof r.contains=="function"?r.contains(v):v.isConnected!==!1);rt&&Co&&v.classList?.add(Sf);let vo=new Set(Re??[]),Bo=r.querySelectorAll(`.${Qo}[${to}], .${ql}[${to}]`),Aa=az(r);if(Aa!=="any-row"){let bn=Array.from(Bo),Do=sz(bn.map(Zo=>({key:Ok(Zo),rows:O7(Zo.getAttribute(to))})),rt?vo:[],Aa,O());if(bn.forEach((Zo,sl)=>Zo.classList?.[Do.on[sl]?"add":"remove"]($h)),G(Do.keys.length?{keys:Do.keys,selection:Array.from(vo)}:null),rt)try{e.onSelectionPaint?.({rule:Aa,mode:Do.mode,lit:Do.on.filter(Boolean).length,marks:bn.length,selection:vo.size})}catch{}return}for(let bn of Array.from(Bo)){let Do=O7(bn.getAttribute(to)),Zo=rt&&Do.some(sl=>vo.has(sl));bn.classList?.[Zo?"add":"remove"]($h)}}catch{}},X="bic-selection-glyphs",ue=null,Q=null,ye=null,J="",ve=!1,Me=!1,re="",pe=()=>`${r.offsetWidth??0}x${r.offsetHeight??0}`,ae=`.${X}, .${k7}`,ne=Re=>{let rt=Re.target;return!rt||rt.closest?.(ae)?!1:!!(rt.classList?.contains(Qo)||rt.querySelector?.(`.${Qo}`))},Ce=Re=>{if(Re&&(Me=!0),ve)return;ve=!0;let rt=()=>{let Nt=Me;ve=!1,Me=!1,(Q||ye)&&Qe(Nt?"if-changed":!1)};o?.requestAnimationFrame?o.requestAnimationFrame(rt):setTimeout(rt,16)},ce=Re=>{if(!Re){Q&&(Q.disconnect(),Q=null),ye&&(ye.disconnect(),ye=null);return}let rt=o?.MutationObserver;!Q&&rt&&(Q=new rt(er=>{!ve&&er.some(ne)&&Ce(!1)}),Q.observe(r,{subtree:!0,attributes:!0,attributeFilter:["transform","d","x","y","cx","cy","points","width","height","visibility","opacity","style","class"]}));let Nt=o?.ResizeObserver;!ye&&Nt&&(ye=new Nt(()=>{pe()!==J&&Ce(!0)}),ye.observe(r))},De=Re=>{try{let rt=Re.checkVisibility;if(typeof rt=="function")return rt.call(Re,{visibilityProperty:!0,opacityProperty:!0})!==!1;let Nt=o?.getComputedStyle;if(typeof Nt!="function")return!0;let er=Nt.call(o,Re);if(er.visibility==="hidden"||er.visibility==="collapse")return!1;for(let oo=Re;oo&&oo!==r;oo=oo.parentElement){let Co=oo===Re?er:Nt.call(o,oo);if(Co.display==="none"||Co.opacity!==""&&parseFloat(Co.opacity)===0)return!1}}catch{}return!0},Je=()=>{let Re=new Map,rt=er=>{if(!Re.has(er)){let oo=null;try{if((er.tagName||"").toLowerCase()==="svg"){let Co=er.getBoundingClientRect();Co.width>0&&Co.height>0&&(oo=Co)}else er.hasAttribute?.("clip-path")&&(oo=W7(er))}catch{oo=null}Re.set(er,oo)}return Re.get(er)??null},Nt=.5;return(er,oo,Co)=>{for(let vo=er;vo&&vo!==r;vo=vo.parentElement){let Bo=rt(vo);if(Bo&&(oo<Bo.left-Nt||oo>Bo.right+Nt||Co<Bo.top-Nt||Co>Bo.bottom+Nt))return!1}return!0}},Qe=(Re=!0)=>{if(p)return;let rt=!1;try{let Nt=r.querySelector(`:scope > .${X}`);pz(Nt);let er=h.selectionGlyph;if(er!=="dot"&&er!=="check"){re="";return}if(!(!!T&&T.length>0&&!I)){re="";return}if(h.suppressSelectionGlyph){if(Re===!0)try{e.onSelectionGlyphs?.({mode:er,drawn:0,total:0,suppressed:!0})}catch{}re="";return}if(rt=!0,!Nt){Nt=t.createElement("div"),Nt.className=X,Nt.setAttribute("aria-hidden","true"),Object.assign(Nt.style,{position:"absolute",left:"0",top:"0",width:"0",height:"0",overflow:"hidden",pointerEvents:"none",zIndex:"1"});try{let Zo=o?.getComputedStyle?.(r)?.position||r.style.position;if(!Zo||Zo==="static"){let sl=r.style.position;r.style.position="relative",ue===null&&(ue=sl)}}catch{}r.appendChild(Nt)}Nt.style.width="0",Nt.style.height="0";let Co=r.scrollWidth||0,vo=r.scrollHeight||0;Nt.style.width=`${Co}px`,Nt.style.height=`${vo}px`,J=pe();let Bo=[];mz(r,Nt.getBoundingClientRect(),Bo,{shown:De,at:Je()});let Aa=!!h.isHighContrast,bn=Bo.length?dz(Nt,Bo,{symbol:er==="check"?"\u2713":"\u25CF",color:Aa&&h.themeFg||"#111",halo:Aa&&h.themeBg||"#fff"}):0,Do=`${er}:${bn}:${Bo.length}`;if(Re===!0||Re==="if-changed"&&Do!==re){re=Do;try{e.onSelectionGlyphs?.({mode:er,drawn:bn,total:Bo.length,suppressed:!1})}catch{}}}catch{}finally{try{ce(rt),Q?.takeRecords()}catch{}}},tt=(Re,rt,Nt,er=!1,oo=!0)=>{if(!p&&(T=Re,D=Re.length>0&&er,C=oo,v=Re.length?Nt??null:null,I=Re.length>0&&Lk(!!Nt,Wk(r)),z(),Qe(),!!oo))for(let Co of j)try{Co(Re,rt)}catch{}},oe=Re=>{if(vz(h.lasso)==="highlight"){tt(Re,"user",null,!0,!1);return}if(tt(Re,"user",null,!0),b||!Re.length)return;let rt=!0;try{rt=e.selectionReachesPage?e.selectionReachesPage()!==!1:j.size>0}catch{}if(!rt){b=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] a lasso circled ${Re.length} ${Re.length===1?"row":"rows"}, but the page gave this chart no filter to set (no \`selects\` or bindFilter, no chart group), so the lasso only highlights inside the chart and the rest of the page does not follow. To filter the page, pass selects={useBicFilter("<key column>")} to this chart and filter the other charts by that filter; for a highlight on purpose, set lasso.effect to "highlight".`)}catch{}}},_e=0,Fe=150,ze=Re=>{let rt=Re?.detail||{};_e=Date.now(),rt.clear?tt([],rt.source||"chart",void 0,!1,C||!(T&&T.length)):rt.mark?tt(O7(rt.mark.getAttribute?.(to)),rt.source||"chart",rt.mark,!0):Array.isArray(rt.rows)&&tt(nz(rt.rows),rt.source||"chart",null,!0)},Oe=hz({root:r,doc:t,log:()=>{}}),kt=()=>{if(T&&T.length){let Re=r[tP];if(D&&typeof Re=="function")try{Re()}catch{}T&&T.length&&tt([],"user",void 0,!1,C)}},Bt=null,dt=()=>{let Re=Bt;Bt=null;try{Re?.destroy()}catch{}},Wt=`.${Qo}[${to}], .${ql}[${to}], .${Pc}[${to}]`,Ye=Re=>{let rt=cz(r,Re);if(Vk(r),rt||Date.now()-_e<Fe||N7(Re?.target,r))return;let Nt=Oe.findMark(Re?.target,Wt,Re);if(Nt||(Nt=Oe.penetrateOverlayAt(Re?.clientX,Re?.clientY,Wt)),Nt||(Nt=Oe.resolveByGeometry(Re?.clientX,Re?.clientY,Wt)),!Nt){kt();return}let er=O7(Nt.getAttribute(to));if(!er.length)return;let oo=Nt.classList?.contains?.(Pc)?Nt:null,Co=!!(Re?.ctrlKey||Re?.metaKey||Re?.shiftKey),vo=iz(T,er,{ctrl:!!(Re?.ctrlKey||Re?.metaKey),shift:!!Re?.shiftKey}),Bo=!Co&&vo.length===0;G(lz(O(),T,Ok(Nt),vo,{ctrl:!!(Re?.ctrlKey||Re?.metaKey),shift:!!Re?.shiftKey})),tt(vo,"user",Bo?null:oo)};r.addEventListener(eP,ze);let mt=uz(r);r.addEventListener("click",Ye),r.classList?.add(Va),Y();let Pt=e.fit??!0,Rt=e.labelContrast??!0,Qt=()=>{let Re=r[l7];if(typeof Re=="function")try{Re()}catch{}},Yt=e.zoomMemory??null,Jt=null,fr="",gr=()=>{if(Yt)try{Yt.flush()}catch{}},ro=()=>{if(Yt)try{Yt.release?.(r)}catch{}},yo=e.restoreScroll!==!1,za,eu=()=>{if(e.code)return e.code;if(za===void 0&&typeof e.renderFn=="function")try{za=Function.prototype.toString.call(e.renderFn)}catch{return e.renderFn}return za},xc=!1,Ec=()=>{if(Yt&&Jt)try{Yt.restore(r,Jt,fr,i)}catch{}try{let rt=nX(r,w);if(rt.collisions.length&&!f){f=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] ids shared with another chart, scoped: ${rt.collisions.slice(0,5).join(", ")}`)}catch{}}e.onIdScope?.(rt)}catch{}if(Rt!==!1)try{let rt=Rt===!0?{}:{...Rt};if(!rt.pageBg){let er=h.backgroundColor??h.themeBg;typeof er=="string"&&er&&(rt.pageBg=er)}let Nt=rX(r,rt);e.onLabelContrast?.(Nt)}catch{}if(e.layoutPass)try{e.layoutPass(r)}catch{}Lz(r,t),z();try{let rt=J7(r);if($7({markCount:rt.markCount,rows:a.rows?a.rows.length:0,animated:e.animated,contractUntagged:e.contractUntagged,declaresNoRowMarks:rt.declaresNoRowMarks})){if(!d){d=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] this chart rendered without error but painted no data marks, against ${a.rows.length} row(s) \u2014 so the container is empty. The usual cause is that the generated code binds a column BY NAME that is no longer in the data, sending it down its own "no data" branch. Check that the columns in your table still match the ones the chart was generated for.`)}catch{}}e.onBlankRender?.({census:rt,rows:a.rows?a.rows.length:0})}}catch{}if(e.onHitBandCensus)try{e.onHitBandCensus(Iz(r,t))}catch{}if(e.onColourSpreadCensus)try{e.onColourSpreadCensus(kj(r,t))}catch{}if(e.onClippedTextCensus)try{e.onClippedTextCensus($j(r))}catch{}if(e.onValuePlacementCensus)try{e.onValuePlacementCensus(Zj(r,a))}catch{}let Re=Fz(r);if(Pt!==!1)try{let rt=Pt===!0?{}:Pt,Nt=Gz(r,yo?{...rt,restoreScroll:{memory:Re,key:eu()}}:rt);e.onFit?.(Nt)}catch{}try{M()}catch{}Qe();try{Bt=Cz({container:r,options:()=>h,rows:a.rows?a.rows.length:0,select:oe,clearSelection:kt})}catch{}},tu=Re=>{let rt=String(Re?.message??Re??"");return e.onInvalidSentinel&&iX(rt)?(Qt(),r.innerHTML="",e.onInvalidSentinel({reason:aX(rt),message:rt}),null):cX(Re,n)},ru={render(){if(p)return;let Re=++P;if(Qt(),ce(!1),dt(),gr(),xc&&yo&&$k(r,eu()),r.innerHTML="",xc=!0,!m){if(!e.code)throw new Error("createChartHost: provide code or renderFn");m=pX(e.code,o,t,i)}if(h.geo===void 0&&e.geoKind){let Nt=e.geoProvider?.(e.geoKind)??jz(e.geoKind);if(Nt)h={...h,geo:Nt};else if(!g){g=!0;try{(o?.console??console)?.warn(`[@bicharts/chart-host] geoKind "${e.geoKind}" was set but no geometry is available, so this chart will draw without a basemap. Either \`await loadGeo("${e.geoKind}")\` before rendering, pass a geoProvider, or import { geoForKind } from "@bicharts/chart-host/geo" and set options.geo.`)}catch{}}}h.geoUnmatched===void 0&&a.geoUnmatched&&(h={...h,geoUnmatched:a.geoUnmatched}),h.geoPoint===void 0&&a.geoPoint&&(h={...h,geoPoint:a.geoPoint}),h.geoPointDest===void 0&&a.geoPointDest&&(h={...h,geoPointDest:a.geoPointDest}),h.geoPointRefused===void 0&&a.geoPointRefused?.length&&(h={...h,geoPointRefused:a.geoPointRefused}),h.dateCellsAreUtcDays===void 0&&a.dateCellsAreUtcDays&&(h={...h,dateCellsAreUtcDays:!0}),h.suppressSelectionGlyph===void 0&&a.meta?.suppressSelectionGlyph===!0&&(h={...h,suppressSelectionGlyph:!0});let rt;if(Jt=null,Yt&&e.code&&!e.renderFn)try{fr=Yt.keyFor(e.code,h.width??r.clientWidth,h.height??r.clientHeight),Jt=Yt.capture(i)}catch{Jt=null}try{try{rt=m(r,{columns:a.columns,rows:a.rows},h)}finally{try{Jt?.release()}catch{}}}catch(Nt){let er=tu(Nt);if(er)throw U(Promise.reject(er)),er;U(Promise.resolve());return}if(!cue(rt)){Ec(),U(Promise.resolve());return}U(new Promise((Nt,er)=>{let oo=setTimeout(()=>{er(new Error(`[@bicharts/chart-host] the chart did not finish drawing within ${Math.round(uj/1e3)}s, so the host stopped waiting for it. Nothing past that point ran: no label-contrast pass, no hit-target heal, no census, no fit. A render() that returns a promise has to settle it.`))},uj),Co=vo=>{clearTimeout(oo),vo()};Promise.resolve(rt).then(()=>Co(()=>{if(p||Re!==P){Nt();return}Ec(),Nt()}),vo=>Co(()=>{if(p||Re!==P){Nt();return}let Bo=tu(vo);Bo?er(Bo):Nt()}))}))},setOptions(Re){p||(s={...s,...Re},h=c(s),ru.render())},setData(Re){p||(a=Re,ru.render())},get options(){return h},setAnnotations(Re){if(!p){A.set(Re);try{M()}catch{}}},get annotationReport(){return A.report},get rendered(){return E},selection:{onChange(Re){return j.add(Re),()=>j.delete(Re)},clear(){if(p)return;let Re=r[tP];if(typeof Re=="function")try{Re()}catch{}G(null),Bt?.clear({publish:!1,source:"host"}),tt([],"host")},highlight(Re){if(p)return;let rt=Array.isArray(Re)?Re.slice():[];Bt&&Bt.rows().length&&!rP(rt,Bt.rows())&&Bt.clear({publish:!1,source:"host"}),tt(rt,"host")},get current(){return T}},animation:{stop(){p||Qt()}},initialMark(){return p?null:r[kk]??null},destroy(){if(!p&&(p=!0,Qt(),r.removeEventListener(eP,ze),r.removeEventListener("click",Ye),mt(),Vk(r),dt(),j.clear(),L(),A.destroy(),xc&&yo&&$k(r,eu()),ed(r),gr(),ro(),ce(!1),r.innerHTML="",ue!==null)){try{r.style.position==="relative"&&(r.style.position=ue)}catch{}ue=null}}};return ru}var hue=Object.freeze({sourceId:null,rows:Object.freeze([])});function Q7(r,e){return r?e.map(t=>r[t]).filter(t=>t!==void 0):e.slice()}function mue(r,e){let t=new Map;return r.forEach((o,n)=>{t.has(o)||t.set(o,n)}),e.map(o=>t.get(o)).filter(o=>o!==void 0)}var pue=(r,e)=>{if(r.length!==e.length)return!1;let t=r.slice().sort((n,i)=>n-i),o=e.slice().sort((n,i)=>n-i);return t.every((n,i)=>n===o[i])};function dX(r,e,t,o,n,i){if(e.sourceId===t&&e.rows.length>0){if(i){let s=mue(i,e.rows);pue(s,r.selection.current??[])||r.selection.highlight(s)}return}if(o&&n&&n.length){r.selection.highlight(n.slice());return}r.selection.current&&r.selection.current.length&&r.selection.clear()}function UM(r,e,t={}){let o=r,n=e,i=t.geo??null,a=t.point??null,s=t.destination??null,l=hue,u=new Set,c=new Set,h=f=>{for(let b of Array.from(u))b(l,f)},m=(f,b)=>{let w=l,P=w.rows.length&&w.sourceId&&w.sourceId!==f?w.rows.slice():null;return b?w.sourceId===b?P:null:P},p=f=>{let b=f?f.slice():n.map((A,M)=>M),w=b.map(A=>n[A]);return{payload:qj(o,w,i??void 0,a??void 0,s??void 0),rowMap:b}},g=(f,b={})=>p(b.respondsWith==="highlight"?null:m(f,b.filteredBy)),d={get selection(){return l},get columns(){return o},get rows(){return n},incomingFor:m,payloadFor:p,memberPayload:g,publish(f,b){l=b.length?{sourceId:f,rows:b.slice()}:{sourceId:null,rows:[]},h(b.length?"select":"clear")},clear(){l={sourceId:null,rows:[]},h("clear")},setSource(f,b,w={}){o=f,n=b,i=w.geo??null,a=w.point??null,s=w.destination??null,h("source")},onChange(f){return u.add(f),()=>{u.delete(f)}},attach(f,b,w={}){let P=w.respondsWith==="highlight",A=g(f,w).rowMap,M=T=>P||!T?"*":T.join(","),E=M(m(f,w.filteredBy)),U=b.selection.onChange((T,v)=>{if(v==="host")return;let I=Q7(A,T);f&&d.publish(f,I),w.onSelect?.(I)}),F=d.onChange((T,v)=>{let I=m(f,w.filteredBy),D=M(I);if(v==="source"||D!==E){let C=p(P?null:I);A=C.rowMap,E=D,b.setData(C.payload)}dX(b,T,f,P,I,A)}),L={get rowMap(){return A},detach(){U(),F(),c.delete(L)}};return c.add(L),L},destroy(){for(let f of Array.from(c))f.detach();u.clear()}};return d}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var due=10,yue=1e5,fue=1e4,lo=r=>Object.freeze({...r,...r.values?{values:Object.freeze([...r.values])}:{}}),BM=Object.freeze({aggregation:lo({timing:"live-and-next-generate",default:"",values:["","sum","average","median","min","max","count","distinct"],wire:"request"}),colorScaleLow:lo({timing:"live-and-next-generate",default:"",wire:"request"}),colorScaleHigh:lo({timing:"live-and-next-generate",default:"",wire:"request"}),palette:lo({timing:"live-and-next-generate",default:"",wire:"request"}),maxMapPoints:lo({timing:"live-and-next-generate",default:v7,min:due,max:yue,wire:"clientHints"}),pageSize:lo({timing:"live",default:0,min:0}),valueAxisBaseline:lo({timing:"live",default:w7,values:["fit","zero","auto"]}),seasonalMarkers:lo({timing:"live",default:P7,values:["auto","always","never"]}),animAutoPlay:lo({timing:"live",default:!1}),animPlaySpeedMs:lo({timing:"live",default:h7,min:m7,max:p7}),animLoopDelaySec:lo({timing:"live",default:d7,min:y7}),animStopAtEnd:lo({timing:"live",default:!1}),animMaxIdealFrames:lo({timing:"live",default:f7,min:g7,max:b7}),animTimelineStyle:lo({timing:"live",default:"",values:["","line","boxes"]}),filtersDuringPlay:lo({timing:"live",default:!1}),flipMode:lo({timing:"live",default:S7,values:["both","all","single"]}),flipIntervalMs:lo({timing:"live",default:"",min:0,max:oz}),flipDirection:lo({timing:"live",default:A7,values:["horizontal","vertical"]}),cardBackgroundColor:lo({timing:"live",default:""}),hoverDropLines:lo({timing:"live",default:"",values:["","on","off"]}),geoBorders:lo({timing:"live",default:!0}),deriveProvinces:lo({timing:"next-generate",default:!0}),levelOfDetail:lo({timing:"next-generate",default:"",values:["","High","Medium","Low"],wire:"clientHints"}),favorLimitTo:lo({timing:"next-generate",default:"",values:["","latest","top / greatest","bottom / smallest","most common","outliers"],wire:"clientHints"}),favorLimitCount:lo({timing:"next-generate",default:0,min:0,max:fue,wire:"clientHints"}),favorTitle:lo({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),favorDPValues:lo({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),legendPlacement:lo({timing:"next-generate",default:"",values:["","outside","inside","none"],wire:"clientHints"}),industryContext:lo({timing:"next-generate",default:"",wire:"clientHints"}),suggestFontFamily:lo({timing:"next-generate",default:"",wire:"clientHints"}),visionReview:lo({timing:"after-render",default:!1}),saveThumbnails:lo({timing:"after-render",default:!1})}),WSt=Object.freeze(Object.keys(BM).filter(r=>BM[r].timing==="live"||BM[r].timing==="live-and-next-generate"));var LSt=Object.freeze(["TILE_TOO_NARROW","TILE_TOO_SHORT","TILE_NOT_SQUARE","TILE_NOT_TALL","TILE_TOO_SMALL","EMBED_NOTHING_FITS_TILE","EMBED_BEESWARM_TILE_TOO_SMALL"]);function fs(r,e,t,o){var n,i=arguments.length,a=i<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,t):o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(r,e,t,o);else for(var s=r.length-1;s>=0;s--)(n=r[s])&&(a=(i<3?n(a):i>3?n(e,t,a):n(e,t))||a);return i>3&&a&&Object.defineProperty(e,t,a),a}function Ql(r,e,t){if(t||arguments.length===2)for(var o,n=0,i=e.length;n<i;n++)!o&&n in e||(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return r.concat(o||Array.prototype.slice.call(e))}var fX=function(r,e,t){return[r,e,t].map((function(o){return(o/=255)>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92}))},gX=function(r,e,t){return[r,e,t].map((function(o){return 255*(o<=.00304?12.92*o:1.055*Math.pow(o,1/2.4)-.055)}))},gn=function(r,e,t){return Math.min(Math.max(r,e),t)},bX=function(r,e){return Math.round((r+Number.EPSILON)*Math.pow(10,e))/Math.pow(10,e)},Z7=function(r,e){return Math.floor(Math.random()*(e-r+1)-r)},SX=function(r,e,t,o){for(var n,i=[r,e,t],a="#",s=0;s<i.length;s++)a+=(n=i[s],Math.round(gn(n,0,255)).toString(16).padStart(2,"0"));return o!=null&&(a+=Math.round(gn(o,0,100)/100*255).toString(16).padStart(2,"0")),a},AX=function(r){var e=r.length,t=(r=(function(i){var a=(i=/^#/.test(i)?i.slice(1):i).length;if(![3,4,6,8].includes(a))return"000000";if(a===6||a===8)return i;if(a===3||a===4){for(var s="",l=0;l<a;l++){var u=i[l];s+=""+u+u}return s}return"000000"})(r).padEnd(8,"ff")).match(/.{2}/g);if(!t)return[0,0,0,1];var o=[0,0,0],n=!1;return t.forEach((function(i,a){a<3?o[a]=parseInt(i,16):n=100*parseInt(i,16)/255})),n===!1||e<8?o:Ql(Ql([],o,!0),[n],!1)},wX=function(r,e,t){var o;o=[r,e,t].map((function(a){return a/255})),r=o[0],e=o[1],t=o[2];var n=1-Math.max(r,e,t),i=n<1?1/(1-n):0;return[(1-r-n)*i*100,(1-e-n)*i*100,(1-t-n)*i*100,100*n]},PX=function(r,e,t,o){return o===100?[0,0,0]:(o/=100,[r,e,t].map((function(n){return(n/=100)>=1?0:255*(1-n)*(1-o)})))};function HM(r,e,t,o){var n;o===void 0&&(o="l"),n=[r,e,t].map((function(p){return p/255})),r=n[0],e=n[1],t=n[2];var i=Math.max(r,e,t),a=Math.min(r,e,t),s=(function(p,g,d,f){var b;f===void 0&&(f=!1),b=[p,g,d].map((function(E){return E/255})),p=b[0],g=b[1],d=b[2];var w=Math.max(p,g,d),P=Math.min(p,g,d),A=0;if(w!==P)if(f)A=(p-g+(p-d))/2,A/=Math.sqrt((p-g)*(p-g)+(p-d)*(g-d)),A=Math.acos(A),d>g&&(A=2*Math.PI-A),A/=2*Math.PI;else{var M=w-P;A=w===p?(g-d)/M+(g<d?6:0):w===g?(d-p)/M+2:(p-g)/M+4,A/=6}else A=NaN;return 360*A})(r,e,t,o==="i"),l=0,u=(i+a)/2,c=i-a,h=i,m=(r+e+t)/3;return o==="v"&&(l=i===0?0:c/i),i!==a&&o==="l"&&(l=u>.5?c/(2-i-a):c/(i+a)),o==="i"&&(l=m>0?1-a/m:0),l*=100,u*=100,m*=100,o==="l"?[s,l,u]:o==="v"?[s,l,h*=100]:[s,l,m]}var zM=function(r,e,t){return HM(r,e,t,"l")},nd=function(r,e,t){var o,n,i=function(a){return 6*(a=a<0?a+1:a>1?a-1:a)<1?o+(n-o)*a*6:2*a<1?n:3*a<2?o+(n-o)*(.6666666666666666-a)*6:o};return r=r%360/360,e=gn(e/100,0,1),t=gn(t/100,0,1),o=2*t-(n=t<=.5?t*(e+1):t+e-t*e),[255*i(r+1/3),255*i(r),255*i(r-1/3)]},vX=function(r,e,t){return HM(r,e,t,"v")},jM=function(r,e,t){var o,n,i=[t/=100,t*(1-(e/=100)),t*(1-(n=(r=r%360/360*360)/60-(o=Math.floor(r/60%6)))*e),t*(1-(1-n)*e)],a=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return[255*i[a[o][0]],255*i[a[o][1]],255*i[a[o][2]]]},NX=function(r,e,t){return HM(r,e,t,"i")},XM=function(r,e,t){var o,n,i,a;e/=100,t/=100,isNaN(r)&&(r=0),isNaN(e)&&(e=0);var s=function(l){return(1+e*Math.cos(2*Math.PI*l)/Math.cos(Math.PI/3-2*Math.PI*l))/3};return(r=(360+r)%360/360)<1/3?i=1-((a=(1-e)/3)+(n=s(r))):r<2/3?a=1-((n=(1-e)/3)+(i=s(r-=1/3))):n=1-((i=(1-e)/3)+(a=s(r-=2/3))),o=[n,i,a].map((function(l){return 255*gn(t*l*3,0,1)})),[n=o[0],i=o[1],a=o[2]]},xX=function(r,e,t){return[zM(r,e,t)[0],100*(Math.min(r,e,t)/255),100*(1-Math.max(r,e,t)/255)]};function KM(r,e,t){return e/=100,t/=100,nd(r,100,50).map((function(o){return 255*(o/255*(1-e-t)+e)}))}var DM={x:[.4124564,.3575761,.1804375],y:[.2126729,.7151522,.072175],z:[.0193339,.119192,.9503041]},OM={r:[3.2404542,-1.5371385,-.4985314],g:[-.969266,1.8760108,.041556],b:[.0556434,-.2040259,1.0572252]},EX=.95047,CX=1,kX=1.08883,gue=.206896552,bue=.008856452,MX=24389/27,FM=function(r,e,t){var o=fX(r,e,t);return[100*DM.x.reduce((function(n,i,a){return n+i*o[a]}),0),100*DM.y.reduce((function(n,i,a){return n+i*o[a]}),0),100*DM.z.reduce((function(n,i,a){return n+i*o[a]}),0)]},bP=function(r,e,t){var o=[r,e,t],n=OM.r.reduce((function(s,l,u){return s+l*o[u]}),0)/100,i=OM.g.reduce((function(s,l,u){return s+l*o[u]}),0)/100,a=OM.b.reduce((function(s,l,u){return s+l*o[u]}),0)/100;return gX(n,i,a)},e8=function(r,e,t){var o;return o=[r=r/EX/100,e=e/CX/100,t=t/kX/100].map((function(n){return n>bue?Math.pow(n,1/3):(MX*n+16)/116})),r=o[0],e=o[1],t=o[2],[Math.max(0,116*e-16),500*(r-e),200*(e-t)]},YM=function(r,e,t){var o,n=(r+16)/116,i=isNaN(e)?n:n+e/500,a=isNaN(t)?n:n-t/200;return o=[i,n,a].map((function(s){return s>gue?Math.pow(s,3):(116*s-16)/MX})),i=o[0],n=o[1],a=o[2],[i*EX*100,n*CX*100,a*kX*100]},qM=function(r,e,t){return bP.apply(void 0,YM(r,e,t))},GM=function(r,e,t){e=gn(e,-100,100),t=gn(t,-100,100);var o=Math.sqrt(e*e+t*t),n=(180*Math.atan2(t,e)/Math.PI+360)%360;return Math.round(1e4*o)===0&&(n=Number.NaN),[r,o,n]},TX=function(r,e,t){return isNaN(t)&&(t=0),t*=Math.PI/180,[r,Math.cos(t)*e,Math.sin(t)*e]},JM=function(r,e,t){return YM.apply(void 0,TX(r,e,t))},WX=function(r,e,t){var o=r+e+t,n=0,i=0;return o>0&&(n=r/o,i=e/o),[n,i,e]},Sue=Object.freeze({__proto__:null,linear2rgb:gX,rgb2linear:fX,rgb2hex:SX,hex2rgb:AX,rgb2cmyk:wX,cmyk2rgb:PX,rgb2hsl:zM,hsl2rgb:nd,rgb2hsv:vX,hsv2rgb:jM,rgb2hsi:NX,hsi2rgb:XM,rgb2hwb:xX,hwb2rgb:KM,rgb2xyz:FM,xyz2rgb:bP,xyz2lab:e8,lab2xyz:YM,rgb2lab:function(r,e,t){return e8.apply(void 0,FM(r,e,t))},lab2rgb:qM,lch2lab:TX,lab2lch:GM,xyz2lch:function(r,e,t){return GM.apply(void 0,e8(r,e,t))},lch2xyz:JM,xyY2xyz:function(r,e,t){return e===0?[0,0,0]:[r*(t/e),t,t/e*(1-r-e)]},xyz2xyY:WX});function $l(r,e){return e===void 0&&(e=!1),function(t,o,n){var i=n.value;n.value=function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];if(a.length>0&&e){var l=JSON.stringify(a);r+=l}if(this.cache.has(r))return this.cache.get(r);var u=i.call.apply(i,Ql([this],a,!1));return this.cache.set(r,u),u}}}function il(r,e,t,o){return r===void 0&&(r=[0,2,2]),e===void 0&&(e=0),t===void 0&&(t=!0),o===void 0&&(o=0),function(n,i,a){var s=a.value;a.value=function(){for(var l=[],u=0;u<arguments.length;u++)l[u]=arguments[u];var c=l[o]===void 0?t:l[o],h=s.call.apply(s,Ql([this],l,!1));if(c===!1)return h;var m=typeof c=="number"?Math.round(c):0,p=typeof r=="number"?new Array(h.length).fill(r):r,g=p.map((function(d){return e===1?typeof c=="number"?m:d:d+m}));return h.map((function(d,f){return bX(d,g[f])}))}}}var LX=function(r,e,t){var o=r instanceof kn?r:new kn(r),n=e instanceof kn?e:new kn(e),i=gn(t,0,100)/100,a=2*i-1,s=o.alpha()-n.alpha(),l=((a*s==-1?a:(a+s)/(1+a*s))+1)/2,u=1-l,c=[Math.round(gn(o.red()*l+n.red()*u,0,255)),Math.round(gn(o.green()*l+n.green()*u,0,255)),Math.round(gn(o.blue()*l+n.blue()*u,0,255))],h=o.alpha()*i+n.alpha()*(1-i);return new kn(c,h)},Ha=Math.sqrt,Kr=Math.pow,LS=Math.cos,gP=Math.abs,yX=Math.sin,Aue=Math.exp,wue=Math.atan2,IX=Math.PI,od=function(r){return IX*r/180},VM=function(r,e,t){t===void 0&&(t=!0);var o=wue(e,r);return t&&(o=(o=(o=180*o/IX)>0?o:o+360)>360?o-360:o),o},IS=function(r,e){e===void 0&&(e=!0);var t=r.lab(!1),o=t[0],n=t[1],i=t[2];return[o,Ha(Kr(n,2)+Kr(i,2)),VM(n,i,e),n,i]},Pue=["CMC","CIE","CIE2000","CIE1994","CIE1976"],vue="CMC",Nue="CIE2000",xue="CIE1994",Eue="CIE1976",RX=function(r,e,t,o){t===void 0&&(t="CIE");var n=(function(c){var h=c.toUpperCase();return Pue.includes(h)&&h!=="CIE"?h:Nue})(t);if(o=o||{},n===vue){var i=Object.assign({},{l:1,c:1},o);return(function(c,h,m,p){m===void 0&&(m=1),p===void 0&&(p=1);var g=IS(c,!0),d=g[0],f=g[1],b=g[2],w=g[3],P=g[4],A=IS(h),M=A[0],E=A[1],U=A[3],F=f-E,L=d-M,T=P-A[4],v=Ha(Kr(w-U,2)+Kr(T,2)-Kr(F,2)),I=d<16?.511:.040975*d/(1+.01765*d),D=.0638*f/(1+.0131*f)+.638,C=164<=b&&b<=345?.56+gP(.2*LS(od(b+168))):.36+gP(.4*LS(od(b+35))),O=Ha(Kr(f,4)/(Kr(f,4)+1900)),G=D*(O*C+1-O);return Ha(Kr(L/(m*I),2)+Kr(F/(p*D),2)+Kr(v/G,2))})(r,e,i.l,i.c)}if(n===xue){var a={kL:1,kC:1,kH:1,cate:"graphic"},s=Object.assign({},a,o);return(function(c,h,m,p,g,d){m===void 0&&(m=1),p===void 0&&(p=1),g===void 0&&(g=1),d===void 0&&(d="graphic");var f=d==="textiles"?.048:.045,b=d==="textiles"?.014:.015;m=d==="textiles"?2:m;var w=IS(c),P=w[0],A=w[1],M=w[3],E=w[4],U=IS(h),F=U[0],L=U[1],T=U[3],v=P-F,I=A-L,D=E-U[4],C=1+f*A,O=1+b*A,G=Ha(Kr(M-T,2)+Kr(D,2)-Kr(I,2));return Ha(Kr(v/(1*m),2)+Kr(I/(p*C),2)+Kr(G/(g*O),2))})(r,e,s.kL,s.kC,s.kH,s.cate)}if(n===Eue)return(function(c,h){var m=c.lab(!1),p=m[0],g=m[1],d=m[2],f=h.lab(!1),b=f[0],w=f[1],P=f[2];return Ha(Kr(p-b,2)+Kr(g-w,2)+Kr(d-P,2))})(r,e);var l={kL:1,kC:1,kH:1},u=Object.assign({},l,o);return(function(c,h,m,p,g){m===void 0&&(m=1),p===void 0&&(p=1),g===void 0&&(g=1);var d=IS(c),f=d[0],b=d[1],w=d[3],P=d[4],A=IS(h),M=A[0],E=A[1],U=A[3],F=A[4],L=(f+M)/2,T=(b+E)/2,v=(1-Ha(Kr(T,7)/(Kr(T,7)+Kr(25,7))))/2,I=w*(1+v),D=U*(1+v),C=Ha(Kr(I,2)+Kr(P,2)),O=Ha(Kr(D,2)+Kr(F,2)),G=VM(I,P,!0),j=VM(D,F,!0),Y=(C+O)/2,z=gP(G-j)>180?(G+j+360)/2:(G+j)/2,X=1-.17*LS(od(z-30))+.24*LS(od(2*z))+.32*LS(od(3*z+6))-.2*LS(od(4*z-63)),ue=gP(j-G)<=180?j-G:gP(j-G)>180&&j<=G?j-G+360:j-G-360,Q=M-f,ye=E-b,J=2*Ha(C*O)*yX(od(ue)/2),ve=1+.015*Kr(L-50,2)/Ha(20+Kr(L-50,2)),Me=1+.045*Y,re=1+.015*Y*X,pe=30*Aue(-Kr((z-275)/25,2)),ae=-2*Ha(Kr(Y,7)/(Kr(Y,7)+Kr(25,7)))*yX(2*od(pe));return Ha(Kr(Q/(m*ve),2)+Kr(ye/(p*Me),2)+Kr(J/(g*re),2)+ae*(ye/(p*Me))*(J/(g*re)))})(r,e,u.kL,u.kC,u.kH)},Cue=function(r,e,t){var o=Math.abs,n=Math.max,i=Math.min,a=r instanceof kn?r:new kn(r),s=e instanceof kn?e:new kn(e),l=Object.assign({},{b:125,c:500},t);return!(o(255*a.brightness()/100-255*s.brightness()/100)<=l.b)&&!(n(a.red(),s.red())-i(a.red(),s.red())+(n(a.green(),s.green())-i(a.green(),s.green()))+(n(a.blue(),s.blue())-i(a.blue(),s.blue()))<=l.c)},RS=function(r,e,t){var o,n=function(u){return gn(u,0,100)},i=function(u){return gn(u,0,255)},a={h:[0,function(u){return u%360}],s:[1,n],l:[2,n],r:[0,i],g:[1,i],b:[2,i]},s=a[e][0];if(["h","s","l"].includes(e)){var l=r.hsl();if(t===void 0)return l[s];t=a[e][1](t),l[s]=t,o=nd.apply(void 0,l)}else{if(o=r.rgb(),t===void 0)return o[s];t=a[e][1](t),o[s]=t}return new kn(o,r.alpha())},r8={},kue=new Set(["rgb","rgba","cmyk","lab","hsl","hsla","hsv","hsva","hsi","hsia","xyz","lch","hwb","hwba"]),Mue=/^([a-zA-Z]+)\(([\s\S]+)\)$/,t8=function(r){return typeof r=="string"?r.indexOf("%")===-1?t8(Number(r.trim())):(r=r.split("%")[0],(r=Number(r.trim()))||0):Math.abs(r)<1?100*r:r},_X=function(r,e){e===void 0&&(e=new Set);var t=typeof r=="string"?r:r.join(",");if(e.has(t))throw new Error("Invalid Color");e.add(t);var o="rgb",n=[0,0,0],i=100;if(Array.isArray(r)){if(r.length<3)throw new Error("Invalid Color");for(var a=0;a<r.length;a++)if(a<3)n[a]=r[a];else{if(a!==3||r[3]===void 0)break;i=r[3]}}else{var s=!1,l=r.trim().match(Mue);if(l||(s=!0),l){var u=l[1].toLocaleLowerCase();if(o=u,kue.has(u)||(s=!0),l[2]&&!s){var c=l[2],h=c.indexOf(",")!==-1?",":" ",m=c.split(h);for(a=0;a<3;a++)m[a]!==void 0&&(["lch","lab"].includes(o)&&a===0||["hsl","hsla","hsv","hsva","hwb","hwba","hsi","hsia"].includes(o)&&a>0?n[a]=t8(m[a]):n[a]=Number(m[a].trim()));["rgba","hsla","hsva","hwba","hsia"].includes(o)?(o=o.slice(0,-1),m[3]!==void 0&&(i=t8(m[3]))):o==="cmyk"&&n.push(m[3]!==void 0?t8(m[3]):0)}}if(s){if(!/^#(([a-fA-F\d]{3}){1,2}|[a-fA-F\d]{8})$/.test(r))try{return r=(function(p,g){if(g===void 0&&(g=!1),p=p.toLowerCase(),r8[p]===void 0){if(g)throw new Error("Unknown color name: ".concat(p,")"));return p}return r8[p]})(r,!0),_X(r,e)}catch{throw new Error("Invalid Color")}n=AX(r)}}return[o,n,i]},UX={thowParseError:!1},kn=(function(){function r(e,t,o){this.cache=new Map,this._rgb=[0,0,0],this._alpha=100;var n={thowParseError:UX.thowParseError},i=Object.assign({},n,o??{});try{var a=(function(u){var c,h={lab2rgb:qM,hsl2rgb:nd,hsv2rgb:jM,xyz2rgb:bP,hwb2rgb:KM,hsi2rgb:XM},m=_X(u),p=m[0],g=m[1],d=m[2];if(p==="rgb")return[g,d];p==="lch"&&(p=(c=["xyz",JM(g[0],g[1],g[2])])[0],g=c[1]);var f=g[0],b=g[1],w=g[2],P=g[3];if(p==="cmyk")return[PX(f,b,w,P).map((function(M){return gn(M,0,255)})),d];var A="".concat(p,"2rgb");if(typeof h[A]=="function")return[h[A](f,b,w).map((function(M){return gn(M,0,255)})),d];throw new Error("Invalid color")})(e),s=a[0],l=a[1];this._alpha=l,this._rgb=s}catch(u){if(i.thowParseError)throw u}t!==void 0&&(this._alpha=gn(t,0,100))}return r.prototype.red=function(e){return RS(this,"r",e)},r.prototype.green=function(e){return RS(this,"g",e)},r.prototype.blue=function(e){return RS(this,"b",e)},r.prototype.alpha=function(e){return e===void 0?this._alpha:(e=gn(e,0,100),new r(this.rgb(),e))},r.prototype.fadeIn=function(e,t){return e===void 0&&(e=10),e=t&&t==="relative"?this._alpha*e/100:e,new r(this.rgb(),gn(this._alpha+e,0,100))},r.prototype.fadeOut=function(e,t){return e===void 0&&(e=10),e=t&&t==="relative"?this._alpha*e/100:e,new r(this.rgb(),gn(this._alpha-e,0,100))},r.prototype.opacify=function(e,t){return e===void 0&&(e=10),this.fadeIn(e,t)},r.prototype.transparentize=function(e,t){return e===void 0&&(e=10),this.fadeOut(e,t)},r.prototype.hue=function(e){return RS(this,"h",e)},r.prototype.saturation=function(e){return RS(this,"s",e)},r.prototype.lightness=function(e){return RS(this,"l",e)},r.prototype.rgb=function(e){return Ql([],this._rgb,!0)},r.prototype.rgba=function(e){return Ql(Ql([],this.rgb(!1),!0),[this._alpha],!1)},r.prototype.cmyk=function(e){return wX.apply(void 0,this._rgb)},r.prototype.hsl=function(e){return zM.apply(void 0,this._rgb)},r.prototype.hsla=function(e){return Ql(Ql([],this.hsl(!1),!0),[this._alpha],!1)},r.prototype.hsv=function(e){return vX.apply(void 0,this._rgb)},r.prototype.hsi=function(e){return NX.apply(void 0,this._rgb)},r.prototype.hwb=function(e){return xX.apply(void 0,this._rgb)},r.prototype.xyz=function(e){return FM.apply(void 0,this._rgb)},r.prototype.lab=function(e){return e8.apply(void 0,this.xyz(!1))},r.prototype.lch=function(e){return GM.apply(void 0,this.lab(!1))},r.prototype.xyY=function(e){return WX.apply(void 0,this.xyz(!1))},r.prototype.hex=function(e){e===void 0&&(e=2);var t=e===0?void 0:e===1?this._alpha:this._alpha===100?void 0:this._alpha,o="color:hex:param_".concat(e);if(this.cache.has(o))return this.cache.get(o);var n=SX.apply(void 0,Ql(Ql([],this._rgb,!1),[t],!1));return this.cache.set(o,n),n},r.prototype.lighten=function(e,t){e===void 0&&(e=5);var o=this.hsl(!1),n=o[0],i=o[1],a=o[2];return a=gn(a+=t!==void 0&&t==="relative"?a*(e/100):e,0,100),new r(nd(n,i,a),this._alpha)},r.prototype.darken=function(e,t){return e===void 0&&(e=5),this.lighten(-e,t)},r.prototype.saturate=function(e,t){e===void 0&&(e=5);var o=this.hsl(!1),n=o[0],i=o[1],a=o[2];return i=gn(i+=t!==void 0&&t==="relative"?i*(e/100):e,0,100),new r(nd(n,i,a),this._alpha)},r.prototype.desaturate=function(e,t){return e===void 0&&(e=5),this.saturate(-e,t)},r.prototype.spin=function(e){var t=this.hsl(!1),o=t[0],n=t[1],i=t[2];return new r(nd(o=(o+e%360+360)%360,n,i),this._alpha)},r.prototype.adjustHue=function(e){return this.spin(e)},r.prototype.complement=function(){return this.spin(180)},r.prototype.invert=function(){var e=this._rgb.map((function(t){return 255-t}));return new r([e[0],e[1],e[2]],this._alpha)},r.prototype.mix=function(e,t){return t===void 0&&(t=50),LX(this,e,100-gn(t,0,100))},r.prototype.luma=function(){var e=this._rgb.map((function(t){return(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}));return .2126*e[0]+.7152*e[1]+.0722*e[2]},r.prototype.brightness=function(){var e=this._rgb;return(function(t,o,n){return(299*t+587*o+114*n)/1e3/255*100})(e[0],e[1],e[2])},r.prototype.deltaE=function(e,t,o){return t===void 0&&(t="CMC"),RX(this,e,t,o)},r.prototype.visibility=function(e,t){return Cue(this,e,t)},fs([il(0,1,!0,0),$l("color:rgb")],r.prototype,"rgb",null),fs([il(0,1,!0,0)],r.prototype,"rgba",null),fs([il(0,1,!0,0),$l("color:cmyk")],r.prototype,"cmyk",null),fs([il(0,1,!0,0),$l("color:hsl")],r.prototype,"hsl",null),fs([il(0,1,!0,0)],r.prototype,"hsla",null),fs([il(0,1,!0,0),$l("color:hsv")],r.prototype,"hsv",null),fs([il(0,1,!0,0),$l("color:hsi")],r.prototype,"hsi",null),fs([il(0,1,!0,0),$l("color: hwb")],r.prototype,"hwb",null),fs([il(2,1,!0,0),$l("color:xyz")],r.prototype,"xyz",null),fs([il(2,1,!0,0),$l("color:lab")],r.prototype,"lab",null),fs([il(2,1,!0,0),$l("color:lch")],r.prototype,"lch",null),fs([il(2,1,!0,0),$l("color:xyY")],r.prototype,"xyY",null),fs([$l("color:luma")],r.prototype,"luma",null),r})(),Tue=function(r,e,t,o){return new kn([r,e,t],o)},Wue=function(r,e,t,o){return new kn(nd(r,e,t),o)},Lue=function(r,e,t,o){return new kn(jM(r,e,t),o)},Iue=function(r,e,t,o){return new kn(XM(r,e,t),o)},Rue=function(r,e,t,o){return new kn(KM(r,e,t),o)},_ue=function(r,e,t,o){return new kn(bP(r,e,t),o)},Uue=function(r,e,t,o){return new kn(qM(r,e,t),o)},Bue=function(r,e,t,o){return new kn(bP.apply(void 0,JM(r,e,t)),o)};function Mi(r,e,t){return new kn(r,e,t)}Mi.config=function(r){Object.assign(UX,r)},Mi.random=function(){var r=Z7(0,255),e=Z7(0,255),t=Z7(0,255);return new kn([r,e,t])},Mi.convertor=Sue,Mi.Color=kn,Mi.rgb=Tue,Mi.hsl=Wue,Mi.hsv=Lue,Mi.hsi=Iue,Mi.hwb=Rue,Mi.xyz=_ue,Mi.lab=Uue,Mi.lch=Bue,Mi.mix=LX,Mi.deltaE=RX,Mi.utils={roundDecimal:bX,randomRange:Z7},Mi.useNames=function(r,e){return(function(t,o){if(o!==void 0&&typeof o=="function"){var n={};for(var i in t){var a=o(i,t[i]),s=a[0],l=a[1];n[s]=l}Object.assign(r8,n)}else Object.assign(r8,t)})(r,e),Mi};var n8=[1,0,0,1,0,0],_S=(r,e)=>[r[0]*e[0]+r[2]*e[1],r[1]*e[0]+r[3]*e[1],r[0]*e[2]+r[2]*e[3],r[1]*e[2]+r[3]*e[3],r[0]*e[4]+r[2]*e[5]+r[4],r[1]*e[4]+r[3]*e[5]+r[5]],o8=(r,e,t)=>[r[0]*e+r[2]*t+r[4],r[1]*e+r[3]*t+r[5]];function ZM(r){if(!r||!r.trim())return n8;let e=n8,t=/(matrix|translate|scale|rotate|skewX|skewY)\s*\(([^)]*)\)/g,o="";for(let n of r.matchAll(t)){o+=n[0];let i=n[2].split(/[\s,]+/).filter(Boolean).map(Number);if(i.some(s=>!isFinite(s)))return null;let a;switch(n[1]){case"matrix":if(i.length!==6)return null;a=i;break;case"translate":a=[1,0,0,1,i[0]??0,i[1]??0];break;case"scale":a=[i[0]??1,0,0,i[1]??i[0]??1,0,0];break;case"rotate":{let s=(i[0]??0)*Math.PI/180,l=Math.cos(s),u=Math.sin(s),c=[l,u,-u,l,0,0];a=i.length>=3?_S(_S([1,0,0,1,i[1],i[2]],c),[1,0,0,1,-i[1],-i[2]]):c;break}case"skewX":a=[1,0,Math.tan((i[0]??0)*Math.PI/180),1,0,0];break;default:a=[1,Math.tan((i[0]??0)*Math.PI/180),0,1,0,0];break}e=_S(e,a)}return r.replace(t,"").replace(/[\s,]/g,"")!==""?null:o?e:n8}var Nc=r=>String(r??"").toLowerCase(),SP=(r,e)=>{let t=Nc(r.getAttribute("style")).replace(/\s+/g,"");for(let o of t.split(";")){let n=o.indexOf(":");if(n>0&&o.slice(0,n)===e)return o.slice(n+1)}return null},Ef=(r,e)=>SP(r,e)??(r.getAttribute(e)!==null?Nc(r.getAttribute(e)):null);function Due(r){for(let e of String(r.getAttribute?.("style")??"").split(";")){let t=e.indexOf(":");if(t<0||e.slice(0,t).trim().toLowerCase()!=="font")continue;let o=/(?:^|\s)((?:\d*\.)?\d+(?:px|pt|em|%))(?:\s|\/|$)/i.exec(e.slice(t+1));return o?o[1].toLowerCase():"unreadable"}return null}var BX=10;function US(r){for(let e=r;e;e=e.parentElement){let t=SP(e,"font-size")??Due(e)??(e.getAttribute?.("font-size")!=null&&e.getAttribute("font-size").trim()!==""?Nc(e.getAttribute("font-size")).trim():null);if(t===null)continue;let o=/^((?:\d*\.)?\d+(?:e[+-]?\d+)?)(px|pt|em|%)?$/.exec(t);if(!o)return{px:BX,sure:!1};let n=parseFloat(o[1]),i=o[2]??"px";if(i==="px")return{px:n,sure:!0};if(i==="pt")return{px:n*4/3,sure:!0};let a=US(e.parentElement);return{px:(i==="em"?n:n/100)*a.px,sure:a.sure}}return{px:BX,sure:!1}}function i8(r,e,t,o){let n=String(r.getAttribute(e)??"").trim().toLowerCase();if(!n)return{v:0,sure:!0};let i=n.split(/[\s,]+/).filter(Boolean),a=/^([-+]?(?:\d*\.)?\d+(?:e[+-]?\d+)?)(px|em|%)?$/.exec(i[0]);if(!a)return null;let s=parseFloat(a[1]),l=a[2]==="em"?s*t:a[2]==="%"?s/100*o:s;return isFinite(l)?{v:l,sure:i.length===1}:null}function Oue(r){return Array.from(r).length*.5}function Fue(r){for(let e=r.parentElement;e;e=e.parentElement)if(Nc(e.localName)==="svg")return e;return null}var eT=new Set(["defs","clippath","mask","pattern","marker","symbol","lineargradient","radialgradient","filter","title","desc","metadata","style","script"]);function DX(r){let e=String(r??"").trim();return/^\+?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?$/i.test(e)?parseFloat(e):NaN}function Gue(r){if(Ef(r,"overflow")==="visible")return null;let e=DX(SP(r,"width")??r.getAttribute("width")),t=DX(SP(r,"height")??r.getAttribute("height")),o=r.getAttribute("viewBox");if(o){let n=o.split(/[\s,]+/).filter(Boolean).map(Number);return n.length!==4||!n.every(isFinite)||n[2]<=0||n[3]<=0||!Nc(r.getAttribute("preserveAspectRatio")).includes("none")&&isFinite(e)&&isFinite(t)&&e>0&&t>0&&Math.abs(n[2]/n[3]-e/t)>.01*(e/t)?null:{x0:n[0],y0:n[1],x1:n[0]+n[2],y1:n[1]+n[3]}}return!(e>0)||!(t>0)?null:{x0:0,y0:0,x1:e,y1:t}}function Vue(r,e){for(let t=r;t&&t!==e;t=t.parentElement){if(Ef(t,"display")==="none")return!0;let o=Ef(t,"visibility");if(o==="hidden"||o==="collapse")return!0;let n=Ef(t,"opacity");if(n!==null&&n!==""&&parseFloat(n)===0)return!0}return!1}function Hue(r,e){for(let t=r;t&&t!==e;t=t.parentElement)if(t.getAttribute("clip-path")||SP(t,"clip-path")||eT.has(Nc(t.localName)))return!0;return!1}function zue(r,e){let t=n8;for(let o=r;o&&o!==e;o=o.parentElement){let n=ZM(o.getAttribute("transform"));if(!n)return null;t=_S(n,t)}return t}var gs=(r,e)=>{let t=parseFloat(r.getAttribute(e)??"");return isFinite(t)?t:0};function QM(r){let e="";for(let t=r.firstChild;t;t=t.nextSibling)t.nodeType===3||t.nodeType===4?e+=t.nodeValue??"":t.nodeType===1&&!eT.has(Nc(t.localName))&&(e+=QM(t));return e}function Zl(r,e,t){for(let o=r;o&&o!==e.parentElement;o=o.parentElement){let n=Ef(o,t);if(n!==null&&n!=="")return n}return null}var $M=["x","y","dx","dy"],xf=(r,e)=>(r.getAttribute(e)??"").trim()!=="";function jue(r,e,t){let o=US(r),[n,i,a,s]=$M.map(c=>i8(r,c,o.px,c==="x"||c==="dx"?e:t));if(!n||!i||!a||!s)return null;let l={text:"",x:n.v+a.v,y:i.v+s.v,fontPx:o.px,el:r,extra:0,sure:o.sure&&n.sure&&i.sure&&a.sure&&s.sure},u=[l];for(let c=r.firstChild;c;c=c.nextSibling){if(c.nodeType===3||c.nodeType===4){l.text+=c.nodeValue??"";continue}if(c.nodeType!==1)continue;let h=c,m=Nc(h.localName);if(eT.has(m))continue;if(m==="textpath"||h.querySelector("textPath, textpath"))return null;if(Ef(h,"display")==="none")continue;let p=US(h),g=Array.from(h.querySelectorAll("*")).some(d=>$M.some(f=>xf(d,f)));if(xf(h,"x")){let[d,f,b,w]=$M.map(P=>i8(h,P,p.px,P==="x"||P==="dx"?e:t));if(!d||!f||!b||!w)return null;l={text:QM(h),x:d.v+b.v,y:(xf(h,"y")?f.v:l.y)+w.v,fontPx:p.px,el:h,extra:0,sure:p.sure&&d.sure&&f.sure&&b.sure&&w.sure&&!g},u.push(l)}else{l.text+=QM(h);let d=i8(h,"dx",p.px,e);if(!d)return null;l.extra+=d.v,(!d.sure||xf(h,"y")||xf(h,"dy")||g||p.px!==l.fontPx||!p.sure||Ef(h,"text-anchor")!==null)&&(l.sure=!1),l.fontPx=Math.max(l.fontPx,p.px)}}for(let c of u)c.text=c.text.replace(/\s+/g," ").trim();return u.filter(c=>c.text)}function tT(r){let e=[],t=r.match(/[a-zA-Z]|[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/g)??[],o=0,n="",i=0,a=0,s=0,l=0,u=()=>parseFloat(t[o++]),c=()=>o<t.length&&!/^[a-zA-Z]$/.test(t[o]);for(;o<t.length;){if(/^[a-zA-Z]$/.test(t[o]))n=t[o++];else if(!n)return[];let h=n===n.toLowerCase(),m=n.toUpperCase();if(m==="Z"){if(i=s,a=l,c())return e;continue}let p={M:2,L:2,T:2,H:1,V:1,C:6,S:4,Q:4,A:7}[m];if(!p)return e;if(!c())continue;let g=[];for(let b=0;b<p;b++)g.push(u());if(g.some(b=>!isFinite(b)))return e;let d=h?i:0,f=h?a:0;if(m==="H")i=d+g[0],e.push([i,a]);else if(m==="V")a=f+g[0],e.push([i,a]);else if(m==="A")i=d+g[5],a=f+g[6],e.push([i,a]);else{for(let b=0;b<p;b+=2)e.push([d+g[b],f+g[b+1]]);i=d+g[p-2],a=f+g[p-1]}m==="M"&&(s=i,l=a,n=h?"l":"L")}return e}function OX(r){let e=1/0,t=-1/0,o=1/0,n=-1/0;for(let[i,a]of r)e=Math.min(e,i),t=Math.max(t,i),o=Math.min(o,a),n=Math.max(n,a);return{X0:e,X1:t,Y0:o,Y1:n}}var FX=/condensed|narrow|compressed|impact|agency/,Xue=/(?:^|[{;\s])(font-size|font|font-family|font-stretch|text-anchor|letter-spacing|word-spacing|direction|writing-mode|transform|text-transform)\s*:\s*([^;}]*)/gi;function Kue(r){for(let e of r.replace(/\/\*[\s\S]*?\*\//g,"").matchAll(Xue)){let t=e[1].toLowerCase(),o=e[2].trim().toLowerCase().replace(/\s*!important$/,"");if(!(t!=="font-size"&&t!=="font"&&/^(normal|inherit|initial|unset|none|0|0px|ltr|horizontal-tb)$/.test(o))&&!(t==="font-family"&&!FX.test(o))&&!(t==="text-transform"&&o==="uppercase"))return!0}return!1}var Yue=new Set(["rect","image","foreignobject","circle","ellipse","line","text","path","polygon","polyline"]),al=.5,que=5;function GX(r){let e={frames:0,unmeasured:0,outside:0,crossing:0,textLikely:0,textEvenNarrow:0,samples:{outside:[],crossing:[],textLikely:[],textEvenNarrow:[]}},t=(a,s)=>{a.length<que&&a.push(s)},o=Math.round,n=r.ownerDocument??r,i=Array.from(n.querySelectorAll("style")).concat(Array.from(r.querySelectorAll("style"))).some(a=>Kue(a.textContent??""));for(let a of Array.from(r.querySelectorAll("svg"))){let s=Gue(a),l=Array.from(a.querySelectorAll("*")).filter(m=>Yue.has(Nc(m.localName))&&Fue(m)===a);if(!s){l.length&&e.unmeasured++;continue}e.frames++;let u=(m,p)=>p==="left"||p==="right"?`x ${o(m.X0)}..${o(m.X1)}, frame ${o(s.x0)}..${o(s.x1)}`:`y ${o(m.Y0)}..${o(m.Y1)}, frame ${o(s.y0)}..${o(s.y1)}`,c=m=>m.X0>s.x1+al?"right":m.X1<s.x0-al?"left":m.Y0>s.y1+al?"bottom":m.Y1<s.y0-al?"top":"",h=m=>m.X1>s.x1+al?"right":m.X0<s.x0-al?"left":m.Y1>s.y1+al?"bottom":m.Y0<s.y0-al?"top":"";for(let m of l){if(Vue(m,a)||Hue(m,a))continue;let p=zue(m,a);if(!p)continue;let g=Nc(m.localName);if(g==="text"){if(Math.abs(p[1])>1e-9||Math.abs(p[2])>1e-9)continue;let P=Zl(m,a,"writing-mode")??"";if(P.startsWith("tb")||P.startsWith("vertical")||P.startsWith("sideways"))continue;let A=Zl(m,a,"fill"),M=Zl(m,a,"stroke");if(A==="none"&&(M===null||M==="none"))continue;let E=jue(m,s.x1-s.x0,s.y1-s.y0);if(!E)continue;let U=i8(m,"textLength",US(m).px,s.x1-s.x0),F=E.length===1&&xf(m,"textLength")&&U?.sure&&U.v>0?U.v:null,L=null,T=null,v=null;for(let I of E){let D=I.fontPx,C=I.text;if(!(D>0))continue;let O=I.y,G=Zl(I.el,a,"dominant-baseline")??Zl(I.el,a,"alignment-baseline")??"";G==="middle"||G==="central"?O+=.35*D:(G==="hanging"||G==="text-before-edge")&&(O+=.8*D);let j=Zl(I.el,a,"text-anchor")??"start",Y=Zl(I.el,a,"direction")==="rtl",z=Zl(I.el,a,"letter-spacing"),X=z===null||z==="normal"?0:/^(?:\d*\.)?\d+(?:px)?$/.test(z)?parseFloat(z):NaN,ue=Array.from(C).length,Q=isFinite(X)?X*ue:0,ye=`${Zl(I.el,a,"font-family")??""} ${Zl(I.el,a,"font-stretch")??""}`,J=I.sure&&!i&&!Y&&isFinite(X)&&Zl(I.el,a,"word-spacing")===null&&!FX.test(ye)&&(F!==null||!xf(m,"textLength")),ve=(Je,Qe,tt)=>{let oe=j==="middle"?I.x-Je/2:j==="end"?I.x-Je:I.x;return OX([o8(p,oe,O-Qe*D),o8(p,oe+Je,O+tt*D)])},Me=ve(F??ue*D*.6+I.extra+Q,.75,.2),re=`text "${C.length>30?C.slice(0,30)+"...":C}"`,pe=o8(p,I.x,O)[0],ae=Me.Y0>s.y1+al?"bottom":Me.Y1<s.y0-al?"top":Y?"":j==="start"&&pe>s.x1+al?"right":j==="end"&&pe<s.x0-al?"left":"";if(ae){L??={what:re,edge:ae,where:u(Me,ae)};continue}let ne=h(Me);if(!ne||(T??={what:re,edge:ne,where:u(Me,ne)},!J||v))continue;let Ce=ve(F??Oue(C)*D+I.extra+Q,.5,0),ce=h(Ce);if(!ce)continue;let De=ce==="right"?Ce.X1-s.x1:ce==="left"?s.x0-Ce.X0:ce==="bottom"?Ce.Y1-s.y1:s.y0-Ce.Y0;v={what:re,edge:ce,where:u(Ce,ce),pastPx:Math.round(De)}}if(L){e.outside++,t(e.samples.outside,L);continue}T&&(e.textLikely++,t(e.samples.textLikely,T)),v&&(e.textEvenNarrow++,t(e.samples.textEvenNarrow,v));continue}let d;if(g==="circle"||g==="ellipse"){let P=g==="circle"?gs(m,"r"):gs(m,"rx"),A=g==="circle"?P:gs(m,"ry");if(!(P>0&&A>0))continue;let M=gs(m,"cx"),E=gs(m,"cy");d=[[M-P,E-A],[M+P,E+A],[M+P,E-A],[M-P,E+A]]}else if(g==="line")d=[[gs(m,"x1"),gs(m,"y1")],[gs(m,"x2"),gs(m,"y2")]];else if(g==="path"||g==="polygon"||g==="polyline"){if(g==="path")d=tT(m.getAttribute("d")??"");else{let P=(m.getAttribute("points")??"").split(/[\s,]+/).filter(Boolean).map(Number);d=[];for(let A=0;A+1<P.length;A+=2)d.push([P[A],P[A+1]])}if(!d.length||d.some(P=>!isFinite(P[0])||!isFinite(P[1])))continue}else{let P=gs(m,"width"),A=gs(m,"height");if(!(P>0&&A>0))continue;let M=gs(m,"x"),E=gs(m,"y");d=[[M,E],[M+P,E+A],[M+P,E],[M,E+A]]}let f=OX(d.map(P=>o8(p,P[0],P[1]))),b=c(f);if(b){e.outside++,t(e.samples.outside,{what:g,edge:b,where:u(f,b)});continue}if(g==="path")continue;let w=h(f);w&&(e.crossing++,t(e.samples.crossing,{what:g,edge:w,where:u(f,w)}))}}return e}var ece=new Set(["d3-sankey","d3-hexbin","d3-voronoi-treemap"]);function tce(r){}var rce=new Set(["title","desc","metadata","style","script"]);function XX(r){let e="";for(let t=r?.firstChild;t;t=t.nextSibling)t.nodeType===3||t.nodeType===4?e+=t.nodeValue||"":t.nodeType===1&&!rce.has(String(t.localName||"").toLowerCase())&&(e+=XX(t));return e}function rT(r){return US(r).px}function oce(r,e){let t=o=>{let n=String(r.getAttribute?.(o)??"").trim().split(/[\s,]+/)[0]??"",i=parseFloat(n);return isFinite(i)?/em$/i.test(n)?i*e:i:0};return{x:t("x")+t("dx"),y:t("y")+t("dy")}}function nce(r){for(let e=r;e&&e.getAttribute;e=e.parentElement){let o=(/(?:^|;)\s*text-anchor\s*:\s*([a-z]+)/i.exec(String(e.getAttribute("style")||""))?.[1]??e.getAttribute("text-anchor")??"").trim().toLowerCase();if(o)return o}return"start"}function ice(r){let e=new Set(["SVGElement","SVGGraphicsElement","SVGGeometryElement","SVGTextContentElement"].map(h=>r[h]?.prototype).filter(Boolean)),t=r.Element?.prototype;for(let h of["svg","g","text","tspan","textPath","path","rect","circle","ellipse","line","polyline","polygon","image","use"])try{for(let m=Object.getPrototypeOf(r.document.createElementNS("http://www.w3.org/2000/svg",h));m&&m!==t;m=Object.getPrototypeOf(m))e.add(m)}catch{}let o=h=>["text","tspan","textpath"].includes(String(h.tagName||"").toLowerCase()),n=h=>o(h)?XX(h).trim().length*rT(h)*.6:0,i=h=>{let m=String(h.tagName||"").toLowerCase();if(m==="path")return tT(h.getAttribute("d")||"");if(m==="line")return[[+h.getAttribute("x1")||0,+h.getAttribute("y1")||0],[+h.getAttribute("x2")||0,+h.getAttribute("y2")||0]];let p=String(h.getAttribute("points")||"").split(/[\s,]+/).filter(Boolean).map(Number),g=[];for(let d=0;d+1<p.length;d+=2)g.push([p[d],p[d+1]]);return g},a=h=>{let m=0;for(let p=1;p<h.length;p++)m+=Math.hypot(h[p][0]-h[p-1][0],h[p][1]-h[p-1][1]);return m},s=function(){if(o(this)){let g=rT(this),d=Math.max(1,n(this)),f=oce(this,g),b=nce(this);return{x:b==="middle"?f.x-d/2:b==="end"?f.x-d:f.x,y:f.y-g*.8,width:d,height:Math.max(1,g)}}let h=parseFloat(this.getAttribute?.("width")||"")||0,m=parseFloat(this.getAttribute?.("height")||"")||0;if(h>0||m>0)return{x:0,y:0,width:h||1,height:m||1};let p=parseFloat(this.getAttribute?.("r")||"")||0;return p>0?{x:-p,y:-p,width:2*p,height:2*p}:{x:0,y:0,width:1,height:1}},l=function(){let h=s.call(this);if(String(this.tagName||"").toLowerCase()!=="svg"){let m=[1,0,0,1,0,0];for(let p=this;p&&m&&String(p.tagName||"").toLowerCase()!=="svg";p=p.parentElement){let g=ZM(p.getAttribute?.("transform"));m=g?_S(g,m):null}if(m){let p=[[h.x,h.y],[h.x+h.width,h.y],[h.x,h.y+h.height],[h.x+h.width,h.y+h.height]].map(([w,P])=>[m[0]*w+m[2]*P+m[4],m[1]*w+m[3]*P+m[5]]),g=p.map(w=>w[0]),d=p.map(w=>w[1]),f=Math.min(...g),b=Math.min(...d);h={x:f,y:b,width:Math.max(...g)-f,height:Math.max(...d)-b}}}return{...h,top:h.y,left:h.x,right:h.x+h.width,bottom:h.y+h.height,toJSON(){return h}}},u=(h,m,p)=>Object.defineProperty(h,m,{configurable:!0,writable:!0,value:p});for(let h of e)u(h,"getBBox",s),u(h,"getBoundingClientRect",l),u(h,"getComputedTextLength",function(){return n(this)}),u(h,"getSubStringLength",function(m,p){return o(this)?Math.max(0,(p||0)*rT(this)*.6):0}),u(h,"getTotalLength",function(){return a(i(this))}),u(h,"getPointAtLength",function(m){let p=i(this);if(!p.length)return{x:0,y:0};let g=Math.max(0,+m||0);for(let f=1;f<p.length;f++){let b=Math.hypot(p[f][0]-p[f-1][0],p[f][1]-p[f-1][1]);if(g<=b&&b>0){let w=g/b;return{x:p[f-1][0]+w*(p[f][0]-p[f-1][0]),y:p[f-1][1]+w*(p[f][1]-p[f-1][1])}}g-=b}let d=p[p.length-1];return{x:d[0],y:d[1]}});let c=r.HTMLCanvasElement?.prototype;if(c){let h=new WeakMap,m=g=>{let d=String(g||"").match(/([\d.]+)\s*(px|pt|em|rem)\b/i);if(!d)return 10;let f=parseFloat(d[1]);return d[2].toLowerCase()==="pt"?f*4/3:/r?em/i.test(d[2])?f*16:f},p=()=>{};Object.defineProperty(c,"getContext",{configurable:!0,writable:!0,value:function(g){if(String(g||"").toLowerCase()!=="2d")return null;let d=h.get(this);if(!d){let f=this;d=new Proxy({canvas:f,font:"10px sans-serif",measureText(b){let w=m(this.font),P=String(b??"").length*w*.6;return{width:P,actualBoundingBoxLeft:0,actualBoundingBoxRight:P,actualBoundingBoxAscent:w*.8,actualBoundingBoxDescent:w*.2,fontBoundingBoxAscent:w*.8,fontBoundingBoxDescent:w*.2}},getImageData:(b,w,P,A)=>({width:P,height:A,data:new Uint8ClampedArray(Math.max(1,P*A*4))}),createLinearGradient:()=>({addColorStop:p}),createRadialGradient:()=>({addColorStop:p}),getLineDash:()=>[],isPointInPath:()=>!1,isPointInStroke:()=>!1},{get:(b,w)=>w in b?b[w]:typeof w=="string"&&/^[a-z]/.test(w)?p:void 0}),h.set(this,d)}return d}})}}function ace(r){let e=["window","document","navigator","Event","CustomEvent","MouseEvent","KeyboardEvent","PointerEvent","Element","HTMLElement","SVGElement","Node","getComputedStyle","requestAnimationFrame","cancelAnimationFrame","DOMParser","XMLSerializer","MutationObserver","Image","ResizeObserver"],t=e.map(n=>[n,Object.getOwnPropertyDescriptor(globalThis,n)]),o=n=>n==="window"?r:n==="ResizeObserver"?r.ResizeObserver??class{observe(){}unobserve(){}disconnect(){}}:typeof r[n]=="function"&&/^[a-z]/.test(n)?r[n].bind(r):r[n];for(let n of e){let i=o(n);if(i!==void 0)try{Object.defineProperty(globalThis,n,{configurable:!0,writable:!0,value:i})}catch{}}return()=>{for(let[n,i]of t)try{i?Object.defineProperty(globalThis,n,i):delete globalThis[n]}catch{}}}function zX(r,e){let t=e.split(/\r?\n/);for(let o of String(r?.stack??"").split(`
|
|
307
307
|
`)){if(!/eval at|anonymous/.test(o))continue;let n=o.match(/<anonymous>:(\d+):(\d+)\)?\s*$/);if(!n)continue;let i=parseInt(n[1],10)-2;if(i<1||i>t.length||!t[i-1].trim())continue;let a=t[i-1].trim();return{line:i,lineText:a.length>200?a.slice(0,197)+"...":a}}return{}}var Zh=r=>String(r?.message??r??"unknown error").split(`
|
|
308
|
-
`)[0].slice(0,400),KX=r=>new Promise(e=>setTimeout(e,r));async function jX(r,e){let t=Date.now()+e;for(;Date.now()<t;){let o=!1;for(let n of Array.from(r.querySelectorAll("*"))){let i=n.__transition;if(i&&Object.keys(i).length){o=!0;break}}if(!o)return;await KX(40)}}async function
|
|
308
|
+
`)[0].slice(0,400),KX=r=>new Promise(e=>setTimeout(e,r));async function jX(r,e){let t=Date.now()+e;for(;Date.now()<t;){let o=!1;for(let n of Array.from(r.querySelectorAll("*"))){let i=n.__transition;if(i&&Object.keys(i).length){o=!0;break}}if(!o)return;await KX(40)}}async function sce(r){let e=Date.now(),t={rows:r.rows.length,payloadRows:0,missingPlugins:[],threw:null,invalid:null,timedOut:!1,marks:{byKind:{},total:0,legend:0,containerKind:"empty",declaresNoRowMarks:!1},blank:!1,frame:null,click:{tried:!1,target:"",reached:!1,sourceRowIdxs:[],sourceRows:[],error:null},consoleErrors:[],elapsedMs:0},o=t.consoleErrors,n=d=>{o.length<8&&!/painted no data marks/.test(d)&&o.push(d.slice(0,300))};if(t.missingPlugins=RM(r.code).filter(d=>!ece.has(d)),t.missingPlugins.length)return t.elapsedMs=Date.now()-e,t;let i=new Proxy({},{get:(d,f)=>f==="error"||f==="warn"?(...b)=>n(b.map(w=>Zh(w)).join(" ")):()=>{}}),a=new Ap({url:"http://localhost/",width:r.width,height:r.height,console:i,settings:{disableJavaScriptFileLoading:!0,disableCSSFileLoading:!0,handleDisabledFileLoadingAsSuccess:!0,suppressInsecureJavaScriptEnvironmentWarning:!0}});ice(a);let s=ace(a),l=console.error,u=console.warn,c=console.log;console.error=(...d)=>n(d.map(f=>Zh(f)).join(" ")),console.warn=(...d)=>n(d.map(f=>Zh(f)).join(" ")),console.log=()=>{};let h=d=>{n(`uncaught: ${Zh(d?.error??d?.message)}`)};a.addEventListener("error",h);let m=LM(ek,$ue,Que,Zue);a.d3=m;let p=a.document.createElement("div");p.style.width=`${r.width}px`,p.style.height=`${r.height}px`,a.document.body.appendChild(p);let g=null;try{let f=UM(r.columns,r.rows,r.binding).payloadFor(null);t.payloadRows=f.payload.rows.length,g=_M(p,{code:r.code,d3:m,data:f.payload,options:{...r.options??{},width:r.width,height:r.height,openUrl:tce},geoKind:r.geoKind||void 0,geoProvider:()=>r.geo,fit:!1,onInvalidSentinel:w=>{t.invalid=w.reason||w.message}});let b={rows:[]};g.selection.onChange((w,P)=>{P!=="host"&&(b.rows=Q7(f.rowMap,w))});try{g.render();let w=r.renderTimeoutMs??15e3;await Promise.race([g.rendered.then(()=>!1),KX(w).then(()=>!0)])&&(t.timedOut=!0)}catch(w){let P=/could not be COMPILED|did not define render/.test(Zh(w));t.threw={phase:P?"compile":"render",message:Zh(w),...zX(w,r.code)}}if(!t.threw&&!t.invalid&&!t.timedOut){await jX(p,2e3);let w=J7(p);t.marks.legend=w.legendMarkCount,t.marks.containerKind=w.containerKind,t.marks.declaresNoRowMarks=w.declaresNoRowMarks;for(let A of Array.from(p.querySelectorAll(".d3-mark"))){if(A.closest(".d3-legend-mark"))continue;let M=String(A.localName||"element").toLowerCase();t.marks.byKind[M]=(t.marks.byKind[M]??0)+1}t.marks.total=w.markCount,t.blank=$7({markCount:w.markCount,rows:t.payloadRows,declaresNoRowMarks:w.declaresNoRowMarks});try{t.frame=GX(p)}catch{t.frame=null}let P=Array.from(p.querySelectorAll(".d3-mark")).find(A=>!A.closest(".d3-legend-mark")&&(A.hasAttribute("data-row-idx")||A.querySelector("[data-row-idx]")));if(P){t.click.tried=!0;let A=P.hasAttribute("data-row-idx")?P:P.querySelector("[data-row-idx]"),M=String(A.getAttribute("data-row-idx")).split(",");t.click.target=`${String(P.localName).toLowerCase()} for ${M.length===1?`row ${M[0]}`:`${M.length} rows`}`;let E=o.length;try{P.dispatchEvent(new a.MouseEvent("click",{bubbles:!0,cancelable:!0,view:a})),await jX(p,1e3)}catch(U){t.click.error=Zh(U)}!t.click.error&&o.length>E&&(t.click.error=o[E]),b.rows.length&&(t.click.reached=!0,t.click.sourceRowIdxs=b.rows,t.click.sourceRows=b.rows.slice(0,3).map(U=>r.rows[U]).filter(Boolean))}}}catch(d){t.threw=t.threw??{phase:"render",message:Zh(d),...zX(d,r.code)}}finally{try{g?.animation.stop()}catch{}try{g?.destroy()}catch{}a.removeEventListener("error",h),console.error=l,console.warn=u,console.log=c,s();try{await a.happyDOM.abort(),await a.happyDOM.close()}catch{}}return t.elapsedMs=Date.now()-e,t}if(!Jue&&VX&&HX?.bicCheckChart){let r=VX;sce(HX.job).then(e=>r.postMessage({ok:!0,facts:e}),e=>r.postMessage({ok:!1,error:Zh(e)}))}export{ice as installLayoutEstimates,sce as renderChartCheck};
|