@bicharts/chart-host 0.6.45 → 0.6.48

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.
@@ -22,11 +22,11 @@ var require_papaparse_min = __commonJS({
22
22
  "function" == typeof define && define.amd ? define([], t) : "object" == typeof module && "undefined" != typeof exports ? module.exports = t() : e.Papa = t();
23
23
  })(exports, function r2() {
24
24
  var n = "undefined" != typeof self ? self : "undefined" != typeof window ? window : void 0 !== n ? n : {};
25
- var d2, s = !n.document && !!n.postMessage, a2 = n.IS_PAPA_WORKER || false, o2 = {}, h3 = 0, v2 = {};
25
+ var d2, s2 = !n.document && !!n.postMessage, a3 = n.IS_PAPA_WORKER || false, o4 = {}, h4 = 0, v = {};
26
26
  function P4(e) {
27
27
  return 65279 === e.charCodeAt(0) ? e.slice(1) : e;
28
28
  }
29
- function u2(e) {
29
+ function u4(e) {
30
30
  this._handle = null, this._finished = false, this._completed = false, this._halted = false, this._input = null, this._baseIndex = 0, this._partialLine = "", this._rowCount = 0, this._start = 0, this._nextChunk = null, this.isFirstChunk = true, this._completeResults = { data: [], errors: [], meta: {} }, function(e2) {
31
31
  var t = b4(e2);
32
32
  t.chunkSize = parseInt(t.chunkSize), e2.step || e2.chunk || (t.chunkSize = null);
@@ -41,7 +41,7 @@ var require_papaparse_min = __commonJS({
41
41
  var i2 = this._partialLine + t, r4 = (this._partialLine = "", this._handle.parse(i2, this._baseIndex, !this._finished));
42
42
  if (!this._handle.paused() && !this._handle.aborted()) {
43
43
  t = r4.meta.cursor, i2 = (this._finished || (this._partialLine = i2.substring(t - this._baseIndex), this._baseIndex = t), r4 && r4.data && (this._rowCount += r4.data.length), this._finished || this._config.preview && this._rowCount >= this._config.preview);
44
- if (a2) n.postMessage({ results: r4, workerId: v2.WORKER_ID, finished: i2 });
44
+ if (a3) n.postMessage({ results: r4, workerId: v.WORKER_ID, finished: i2 });
45
45
  else if (q2(this._config.chunk) && !e2) {
46
46
  if (this._config.chunk(r4, this._handle), this._handle.paused() || this._handle.aborted()) return void (this._halted = true);
47
47
  this._completeResults = r4 = void 0;
@@ -50,12 +50,12 @@ var require_papaparse_min = __commonJS({
50
50
  }
51
51
  this._halted = true;
52
52
  }, this._sendError = function(e2) {
53
- q2(this._config.error) ? this._config.error(e2) : a2 && this._config.error && n.postMessage({ workerId: v2.WORKER_ID, error: e2, finished: false });
53
+ q2(this._config.error) ? this._config.error(e2) : a3 && this._config.error && n.postMessage({ workerId: v.WORKER_ID, error: e2, finished: false });
54
54
  };
55
55
  }
56
56
  function f4(e) {
57
57
  var r4;
58
- (e = e || {}).chunkSize || (e.chunkSize = v2.RemoteChunkSize), u2.call(this, e), this._nextChunk = s ? function() {
58
+ (e = e || {}).chunkSize || (e.chunkSize = v.RemoteChunkSize), u4.call(this, e), this._nextChunk = s2 ? function() {
59
59
  this._readChunk(), this._chunkLoaded();
60
60
  } : function() {
61
61
  this._readChunk();
@@ -64,7 +64,7 @@ var require_papaparse_min = __commonJS({
64
64
  }, this._readChunk = function() {
65
65
  if (this._finished) this._chunkLoaded();
66
66
  else {
67
- if (r4 = new XMLHttpRequest(), this._config.withCredentials && (r4.withCredentials = this._config.withCredentials), s || (r4.onload = y4(this._chunkLoaded, this), r4.onerror = y4(this._chunkError, this)), r4.open(this._config.downloadRequestBody ? "POST" : "GET", this._input, !s), this._config.downloadRequestHeaders) {
67
+ if (r4 = new XMLHttpRequest(), this._config.withCredentials && (r4.withCredentials = this._config.withCredentials), s2 || (r4.onload = y2(this._chunkLoaded, this), r4.onerror = y2(this._chunkError, this)), r4.open(this._config.downloadRequestBody ? "POST" : "GET", this._input, !s2), this._config.downloadRequestHeaders) {
68
68
  var e2, t = this._config.downloadRequestHeaders;
69
69
  for (e2 in t) r4.setRequestHeader(e2, t[e2]);
70
70
  }
@@ -75,7 +75,7 @@ var require_papaparse_min = __commonJS({
75
75
  } catch (e4) {
76
76
  this._chunkError(e4.message);
77
77
  }
78
- s && 0 === r4.status && this._chunkError();
78
+ s2 && 0 === r4.status && this._chunkError();
79
79
  }
80
80
  }, this._chunkLoaded = function() {
81
81
  4 === r4.readyState && (r4.status < 200 || 400 <= r4.status ? this._chunkError() : (this._start += this._config.chunkSize || r4.responseText.length, this._finished = !this._config.chunkSize || this._start >= ((e2) => null !== (e2 = e2.getResponseHeader("Content-Range")) ? parseInt(e2.substring(e2.lastIndexOf("/") + 1)) : -1)(r4), this.parseChunk(r4.responseText)));
@@ -84,11 +84,11 @@ var require_papaparse_min = __commonJS({
84
84
  this._sendError(new Error(e2));
85
85
  };
86
86
  }
87
- function l(e) {
88
- (e = e || {}).chunkSize || (e.chunkSize = v2.LocalChunkSize), u2.call(this, e);
87
+ function l2(e) {
88
+ (e = e || {}).chunkSize || (e.chunkSize = v.LocalChunkSize), u4.call(this, e);
89
89
  var i2, r4, n2 = "undefined" != typeof FileReader;
90
90
  this.stream = function(e2) {
91
- this._input = e2, r4 = e2.slice || e2.webkitSlice || e2.mozSlice, n2 ? ((i2 = new FileReader()).onload = y4(this._chunkLoaded, this), i2.onerror = y4(this._chunkError, this)) : i2 = new FileReaderSync(), this._nextChunk();
91
+ this._input = e2, r4 = e2.slice || e2.webkitSlice || e2.mozSlice, n2 ? ((i2 = new FileReader()).onload = y2(this._chunkLoaded, this), i2.onerror = y2(this._chunkError, this)) : i2 = new FileReaderSync(), this._nextChunk();
92
92
  }, this._nextChunk = function() {
93
93
  this._finished || this._config.preview && !(this._rowCount < this._config.preview) || this._readChunk();
94
94
  }, this._readChunk = function() {
@@ -102,103 +102,103 @@ var require_papaparse_min = __commonJS({
102
102
  }
103
103
  function c2(e) {
104
104
  var i2;
105
- u2.call(this, e = e || {}), this.stream = function(e2) {
105
+ u4.call(this, e = e || {}), this.stream = function(e2) {
106
106
  return i2 = e2, this._nextChunk();
107
107
  }, this._nextChunk = function() {
108
108
  var e2, t;
109
109
  if (!this._finished) return e2 = this._config.chunkSize, i2 = e2 ? (t = i2.substring(0, e2), i2.substring(e2)) : (t = i2, ""), this._finished = !i2, this.parseChunk(t);
110
110
  };
111
111
  }
112
- function p2(e) {
113
- u2.call(this, e = e || {});
112
+ function p4(e) {
113
+ u4.call(this, e = e || {});
114
114
  var t = [], i2 = true, r4 = false;
115
115
  this.pause = function() {
116
- u2.prototype.pause.apply(this, arguments), this._input.pause();
116
+ u4.prototype.pause.apply(this, arguments), this._input.pause();
117
117
  }, this.resume = function() {
118
- u2.prototype.resume.apply(this, arguments), this._input.resume();
118
+ u4.prototype.resume.apply(this, arguments), this._input.resume();
119
119
  }, this.stream = function(e2) {
120
120
  this._input = e2, this._input.on("data", this._streamData), this._input.on("end", this._streamEnd), this._input.on("error", this._streamError);
121
121
  }, this._checkIsFinished = function() {
122
122
  r4 && 1 === t.length && (this._finished = true);
123
123
  }, this._nextChunk = function() {
124
124
  this._checkIsFinished(), t.length ? this.parseChunk(t.shift()) : i2 = true;
125
- }, this._streamData = y4(function(e2) {
125
+ }, this._streamData = y2(function(e2) {
126
126
  try {
127
127
  t.push("string" == typeof e2 ? e2 : e2.toString(this._config.encoding)), i2 && (i2 = false, this._checkIsFinished(), this.parseChunk(t.shift()));
128
128
  } catch (e4) {
129
129
  this._streamError(e4);
130
130
  }
131
- }, this), this._streamError = y4(function(e2) {
131
+ }, this), this._streamError = y2(function(e2) {
132
132
  this._streamCleanUp(), this._sendError(e2);
133
- }, this), this._streamEnd = y4(function() {
133
+ }, this), this._streamEnd = y2(function() {
134
134
  this._streamCleanUp(), r4 = true, this._streamData("");
135
- }, this), this._streamCleanUp = y4(function() {
135
+ }, this), this._streamCleanUp = y2(function() {
136
136
  this._input.removeListener("data", this._streamData), this._input.removeListener("end", this._streamEnd), this._input.removeListener("error", this._streamError);
137
137
  }, this);
138
138
  }
139
- function i(m4) {
140
- var n2, s2, a4, t, o4 = Math.pow(2, 53), h4 = -o4, u4 = /^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/, d3 = /^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/, i2 = this, r4 = 0, f5 = 0, l2 = false, e = false, c4 = [], p4 = { data: [], errors: [], meta: {} };
141
- function y5(e2) {
142
- return "greedy" === m4.skipEmptyLines ? "" === e2.join("").trim() : 1 === e2.length && 0 === e2[0].length;
139
+ function i(m5) {
140
+ var n2, s4, a4, t, o5 = Math.pow(2, 53), h5 = -o5, u5 = /^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/, d4 = /^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/, i2 = this, r4 = 0, f5 = 0, l4 = false, e = false, c4 = [], p5 = { data: [], errors: [], meta: {} };
141
+ function y4(e2) {
142
+ return "greedy" === m5.skipEmptyLines ? "" === e2.join("").trim() : 1 === e2.length && 0 === e2[0].length;
143
143
  }
144
- function g4() {
145
- if (p4 && a4 && (k3("Delimiter", "UndetectableDelimiter", "Unable to auto-detect delimiting character; defaulted to '" + v2.DefaultDelimiter + "'"), a4 = false), m4.skipEmptyLines && (p4.data = p4.data.filter(function(e4) {
146
- return !y5(e4);
147
- })), _4()) {
144
+ function g6() {
145
+ if (p5 && a4 && (k3("Delimiter", "UndetectableDelimiter", "Unable to auto-detect delimiting character; defaulted to '" + v.DefaultDelimiter + "'"), a4 = false), m5.skipEmptyLines && (p5.data = p5.data.filter(function(e4) {
146
+ return !y4(e4);
147
+ })), _5()) {
148
148
  let t4 = function(e4, t5) {
149
- e4 = P4(e4), q2(m4.transformHeader) && (e4 = m4.transformHeader(e4, t5)), c4.push(e4);
149
+ e4 = P4(e4), q2(m5.transformHeader) && (e4 = m5.transformHeader(e4, t5)), c4.push(e4);
150
150
  };
151
151
  var t2 = t4;
152
- if (p4) if (Array.isArray(p4.data[0])) {
153
- for (var e2 = 0; _4() && e2 < p4.data.length; e2++) p4.data[e2].forEach(t4);
154
- p4.data.splice(0, 1);
155
- } else p4.data.forEach(t4);
152
+ if (p5) if (Array.isArray(p5.data[0])) {
153
+ for (var e2 = 0; _5() && e2 < p5.data.length; e2++) p5.data[e2].forEach(t4);
154
+ p5.data.splice(0, 1);
155
+ } else p5.data.forEach(t4);
156
156
  }
157
157
  function i4(e4, t4) {
158
- for (var i5 = m4.header ? {} : [], r6 = 0; r6 < e4.length; r6++) {
159
- var n4 = r6, s4 = e4[r6], s4 = ((e5, t5) => ((e6) => (m4.dynamicTypingFunction && void 0 === m4.dynamicTyping[e6] && (m4.dynamicTyping[e6] = m4.dynamicTypingFunction(e6)), true === (m4.dynamicTyping[e6] || m4.dynamicTyping)))(e5) ? "true" === t5 || "TRUE" === t5 || "false" !== t5 && "FALSE" !== t5 && (((e6) => {
160
- if (u4.test(e6)) {
158
+ for (var i5 = m5.header ? {} : [], r6 = 0; r6 < e4.length; r6++) {
159
+ var n4 = r6, s5 = e4[r6], s5 = ((e5, t5) => ((e6) => (m5.dynamicTypingFunction && void 0 === m5.dynamicTyping[e6] && (m5.dynamicTyping[e6] = m5.dynamicTypingFunction(e6)), true === (m5.dynamicTyping[e6] || m5.dynamicTyping)))(e5) ? "true" === t5 || "TRUE" === t5 || "false" !== t5 && "FALSE" !== t5 && (((e6) => {
160
+ if (u5.test(e6)) {
161
161
  e6 = parseFloat(e6);
162
- if (h4 < e6 && e6 < o4) return 1;
162
+ if (h5 < e6 && e6 < o5) return 1;
163
163
  }
164
- })(t5) ? parseFloat(t5) : d3.test(t5) ? new Date(t5) : "" === t5 ? null : t5) : t5)(n4 = m4.header ? r6 >= c4.length ? "__parsed_extra" : c4[r6] : n4, s4 = m4.transform ? m4.transform(s4, n4) : s4);
165
- "__parsed_extra" === n4 ? (i5[n4] = i5[n4] || [], i5[n4].push(s4)) : i5[n4] = s4;
164
+ })(t5) ? parseFloat(t5) : d4.test(t5) ? new Date(t5) : "" === t5 ? null : t5) : t5)(n4 = m5.header ? r6 >= c4.length ? "__parsed_extra" : c4[r6] : n4, s5 = m5.transform ? m5.transform(s5, n4) : s5);
165
+ "__parsed_extra" === n4 ? (i5[n4] = i5[n4] || [], i5[n4].push(s5)) : i5[n4] = s5;
166
166
  }
167
- return m4.header && (r6 > c4.length ? k3("FieldMismatch", "TooManyFields", "Too many fields: expected " + c4.length + " fields but parsed " + r6, f5 + t4) : r6 < c4.length && k3("FieldMismatch", "TooFewFields", "Too few fields: expected " + c4.length + " fields but parsed " + r6, f5 + t4)), i5;
167
+ return m5.header && (r6 > c4.length ? k3("FieldMismatch", "TooManyFields", "Too many fields: expected " + c4.length + " fields but parsed " + r6, f5 + t4) : r6 < c4.length && k3("FieldMismatch", "TooFewFields", "Too few fields: expected " + c4.length + " fields but parsed " + r6, f5 + t4)), i5;
168
168
  }
169
169
  var r5;
170
- p4 && (m4.header || m4.dynamicTyping || m4.transform) && (r5 = 1, !p4.data.length || Array.isArray(p4.data[0]) ? (p4.data = p4.data.map(i4), r5 = p4.data.length) : p4.data = i4(p4.data, 0), m4.header && p4.meta && (p4.meta.fields = c4), f5 += r5);
170
+ p5 && (m5.header || m5.dynamicTyping || m5.transform) && (r5 = 1, !p5.data.length || Array.isArray(p5.data[0]) ? (p5.data = p5.data.map(i4), r5 = p5.data.length) : p5.data = i4(p5.data, 0), m5.header && p5.meta && (p5.meta.fields = c4), f5 += r5);
171
171
  }
172
- function _4() {
173
- return m4.header && 0 === c4.length;
172
+ function _5() {
173
+ return m5.header && 0 === c4.length;
174
174
  }
175
175
  function k3(e2, t2, i4, r5) {
176
176
  e2 = { type: e2, code: t2, message: i4 };
177
- void 0 !== r5 && (e2.row = r5), p4.errors.push(e2);
177
+ void 0 !== r5 && (e2.row = r5), p5.errors.push(e2);
178
178
  }
179
- q2(m4.step) && (t = m4.step, m4.step = function(e2) {
180
- p4 = e2, _4() ? g4() : (g4(), 0 !== p4.data.length && (r4 += e2.data.length, m4.preview && r4 > m4.preview ? s2.abort() : (p4.data = p4.data[0], t(p4, i2))));
179
+ q2(m5.step) && (t = m5.step, m5.step = function(e2) {
180
+ p5 = e2, _5() ? g6() : (g6(), 0 !== p5.data.length && (r4 += e2.data.length, m5.preview && r4 > m5.preview ? s4.abort() : (p5.data = p5.data[0], t(p5, i2))));
181
181
  }), this.parse = function(e2, t2, i4) {
182
- var r5 = m4.quoteChar || '"', r5 = (m4.newline || (m4.newline = this.guessLineEndings(e2, r5)), a4 = false, m4.delimiter ? q2(m4.delimiter) && (m4.delimiter = m4.delimiter(e2), p4.meta.delimiter = m4.delimiter) : ((r5 = ((e4, t4, i5, r6, n4) => {
183
- var s4, a5, o5, h5;
184
- n4 = n4 || [",", " ", "|", ";", v2.RECORD_SEP, v2.UNIT_SEP];
185
- for (var u5 = 0; u5 < n4.length; u5++) {
186
- for (var d4, f6 = n4[u5], l3 = 0, c5 = 0, p5 = 0, g5 = (o5 = void 0, new E4({ comments: r6, delimiter: f6, newline: t4, preview: 10 }).parse(e4)), _5 = 0; _5 < g5.data.length; _5++) i5 && y5(g5.data[_5]) ? p5++ : (d4 = g5.data[_5].length, c5 += d4, void 0 === o5 ? o5 = d4 : 0 < d4 && (l3 += Math.abs(d4 - o5), o5 = d4));
187
- 0 < g5.data.length && (c5 /= g5.data.length - p5), (void 0 === a5 || l3 <= a5) && (void 0 === h5 || h5 < c5) && 1.99 < c5 && (a5 = l3, s4 = f6, h5 = c5);
182
+ var r5 = m5.quoteChar || '"', r5 = (m5.newline || (m5.newline = this.guessLineEndings(e2, r5)), a4 = false, m5.delimiter ? q2(m5.delimiter) && (m5.delimiter = m5.delimiter(e2), p5.meta.delimiter = m5.delimiter) : ((r5 = ((e4, t4, i5, r6, n4) => {
183
+ var s5, a5, o6, h6;
184
+ n4 = n4 || [",", " ", "|", ";", v.RECORD_SEP, v.UNIT_SEP];
185
+ for (var u6 = 0; u6 < n4.length; u6++) {
186
+ for (var d5, f6 = n4[u6], l5 = 0, c5 = 0, p6 = 0, g7 = (o6 = void 0, new E4({ comments: r6, delimiter: f6, newline: t4, preview: 10 }).parse(e4)), _6 = 0; _6 < g7.data.length; _6++) i5 && y4(g7.data[_6]) ? p6++ : (d5 = g7.data[_6].length, c5 += d5, void 0 === o6 ? o6 = d5 : 0 < d5 && (l5 += Math.abs(d5 - o6), o6 = d5));
187
+ 0 < g7.data.length && (c5 /= g7.data.length - p6), (void 0 === a5 || l5 <= a5) && (void 0 === h6 || h6 < c5) && 1.99 < c5 && (a5 = l5, s5 = f6, h6 = c5);
188
188
  }
189
- return { successful: !!(m4.delimiter = s4), bestDelimiter: s4 };
190
- })(e2, m4.newline, m4.skipEmptyLines, m4.comments, m4.delimitersToGuess)).successful ? m4.delimiter = r5.bestDelimiter : (a4 = true, m4.delimiter = v2.DefaultDelimiter), p4.meta.delimiter = m4.delimiter), b4(m4));
191
- return m4.preview && m4.header && r5.preview++, n2 = e2, s2 = new E4(r5), p4 = s2.parse(n2, t2, i4), g4(), l2 ? { meta: { paused: true } } : p4 || { meta: { paused: false } };
189
+ return { successful: !!(m5.delimiter = s5), bestDelimiter: s5 };
190
+ })(e2, m5.newline, m5.skipEmptyLines, m5.comments, m5.delimitersToGuess)).successful ? m5.delimiter = r5.bestDelimiter : (a4 = true, m5.delimiter = v.DefaultDelimiter), p5.meta.delimiter = m5.delimiter), b4(m5));
191
+ return m5.preview && m5.header && r5.preview++, n2 = e2, s4 = new E4(r5), p5 = s4.parse(n2, t2, i4), g6(), l4 ? { meta: { paused: true } } : p5 || { meta: { paused: false } };
192
192
  }, this.paused = function() {
193
- return l2;
193
+ return l4;
194
194
  }, this.pause = function() {
195
- l2 = true, s2.abort(), n2 = q2(m4.chunk) ? "" : n2.substring(s2.getCharIndex());
195
+ l4 = true, s4.abort(), n2 = q2(m5.chunk) ? "" : n2.substring(s4.getCharIndex());
196
196
  }, this.resume = function() {
197
- i2.streamer._halted ? (l2 = false, i2.streamer.parseChunk(n2, true)) : setTimeout(i2.resume, 3);
197
+ i2.streamer._halted ? (l4 = false, i2.streamer.parseChunk(n2, true)) : setTimeout(i2.resume, 3);
198
198
  }, this.aborted = function() {
199
199
  return e;
200
200
  }, this.abort = function() {
201
- e = true, s2.abort(), p4.meta.aborted = true, q2(m4.complete) && m4.complete(p4), n2 = "";
201
+ e = true, s4.abort(), p5.meta.aborted = true, q2(m5.complete) && m5.complete(p5), n2 = "";
202
202
  }, this.guessLineEndings = function(e2, t2) {
203
203
  e2 = e2.substring(0, 1048576);
204
204
  var t2 = new RegExp(U2(t2) + "([^]*?)" + U2(t2), "gm"), i4 = (e2 = e2.replace(t2, "")).split("\r"), t2 = e2.split("\n"), e2 = 1 < t2.length && t2[0].length < i4[0].length;
@@ -211,89 +211,89 @@ var require_papaparse_min = __commonJS({
211
211
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
212
212
  }
213
213
  function E4(C2) {
214
- var S2 = (C2 = C2 || {}).delimiter, O3 = C2.newline, x3 = C2.comments, I4 = C2.step, A4 = C2.preview, T2 = C2.fastMode, D2 = null, L4 = false, F4 = null == C2.quoteChar ? '"' : C2.quoteChar, j3 = F4;
215
- if (void 0 !== C2.escapeChar && (j3 = C2.escapeChar), ("string" != typeof S2 || -1 < v2.BAD_DELIMITERS.indexOf(S2)) && (S2 = ","), x3 === S2) throw new Error("Comment character same as delimiter");
216
- true === x3 ? x3 = "#" : ("string" != typeof x3 || -1 < v2.BAD_DELIMITERS.indexOf(x3)) && (x3 = false), "\n" !== O3 && "\r" !== O3 && "\r\n" !== O3 && (O3 = "\n");
214
+ var S2 = (C2 = C2 || {}).delimiter, O4 = C2.newline, x3 = C2.comments, I2 = C2.step, A4 = C2.preview, T = C2.fastMode, D2 = null, L4 = false, F4 = null == C2.quoteChar ? '"' : C2.quoteChar, j4 = F4;
215
+ if (void 0 !== C2.escapeChar && (j4 = C2.escapeChar), ("string" != typeof S2 || -1 < v.BAD_DELIMITERS.indexOf(S2)) && (S2 = ","), x3 === S2) throw new Error("Comment character same as delimiter");
216
+ true === x3 ? x3 = "#" : ("string" != typeof x3 || -1 < v.BAD_DELIMITERS.indexOf(x3)) && (x3 = false), "\n" !== O4 && "\r" !== O4 && "\r\n" !== O4 && (O4 = "\n");
217
217
  var z4 = 0, M2 = false;
218
218
  this.parse = function(i2, t, r4) {
219
219
  if ("string" != typeof i2) throw new Error("Input must be a string");
220
- var n2 = i2.length, e = S2.length, s2 = O3.length, a4 = x3.length, o4 = q2(I4), h4 = [], u4 = [], d3 = [], f5 = z4 = 0;
221
- if (!i2) return w2();
222
- if (T2 || false !== T2 && -1 === i2.indexOf(F4)) {
223
- for (var l2 = i2.split(O3), c4 = 0; c4 < l2.length; c4++) {
224
- if (d3 = l2[c4], z4 += d3.length, c4 !== l2.length - 1) z4 += O3.length;
225
- else if (r4) return w2();
226
- if (!x3 || d3.substring(0, a4) !== x3) {
227
- if (o4) {
228
- if (h4 = [], k3(d3.split(S2)), R2(), M2) return w2();
229
- } else k3(d3.split(S2));
230
- if (A4 && A4 <= c4) return h4 = h4.slice(0, A4), w2(true);
220
+ var n2 = i2.length, e = S2.length, s4 = O4.length, a4 = x3.length, o5 = q2(I2), h5 = [], u5 = [], d4 = [], f5 = z4 = 0;
221
+ if (!i2) return w3();
222
+ if (T || false !== T && -1 === i2.indexOf(F4)) {
223
+ for (var l4 = i2.split(O4), c4 = 0; c4 < l4.length; c4++) {
224
+ if (d4 = l4[c4], z4 += d4.length, c4 !== l4.length - 1) z4 += O4.length;
225
+ else if (r4) return w3();
226
+ if (!x3 || d4.substring(0, a4) !== x3) {
227
+ if (o5) {
228
+ if (h5 = [], k3(d4.split(S2)), R4(), M2) return w3();
229
+ } else k3(d4.split(S2));
230
+ if (A4 && A4 <= c4) return h5 = h5.slice(0, A4), w3(true);
231
231
  }
232
232
  }
233
- return w2();
233
+ return w3();
234
234
  }
235
- for (var p4 = i2.indexOf(S2, z4), g4 = i2.indexOf(O3, z4), _4 = new RegExp(U2(j3) + U2(F4), "g"), m4 = i2.indexOf(F4, z4); ; ) if (i2[z4] === F4) for (m4 = z4, z4++; ; ) {
236
- if (-1 === (m4 = i2.indexOf(F4, m4 + 1))) return r4 || u4.push({ type: "Quotes", code: "MissingQuotes", message: "Quoted field unterminated", row: h4.length, index: z4 }), E5();
237
- if (m4 === n2 - 1) return E5(i2.substring(z4, m4).replace(_4, F4));
238
- if (F4 === j3 && i2[m4 + 1] === j3) m4++;
239
- else if (F4 === j3 || 0 === m4 || i2[m4 - 1] !== j3) {
240
- -1 !== p4 && p4 < m4 + 1 && (p4 = i2.indexOf(S2, m4 + 1));
241
- var y5 = v3(-1 === (g4 = -1 !== g4 && g4 < m4 + 1 ? i2.indexOf(O3, m4 + 1) : g4) ? p4 : Math.min(p4, g4));
242
- if (i2.substr(m4 + 1 + y5, e) === S2) {
243
- d3.push(i2.substring(z4, m4).replace(_4, F4)), i2[z4 = m4 + 1 + y5 + e] !== F4 && (m4 = i2.indexOf(F4, z4)), p4 = i2.indexOf(S2, z4), g4 = i2.indexOf(O3, z4);
235
+ for (var p5 = i2.indexOf(S2, z4), g6 = i2.indexOf(O4, z4), _5 = new RegExp(U2(j4) + U2(F4), "g"), m5 = i2.indexOf(F4, z4); ; ) if (i2[z4] === F4) for (m5 = z4, z4++; ; ) {
236
+ if (-1 === (m5 = i2.indexOf(F4, m5 + 1))) return r4 || u5.push({ type: "Quotes", code: "MissingQuotes", message: "Quoted field unterminated", row: h5.length, index: z4 }), E5();
237
+ if (m5 === n2 - 1) return E5(i2.substring(z4, m5).replace(_5, F4));
238
+ if (F4 === j4 && i2[m5 + 1] === j4) m5++;
239
+ else if (F4 === j4 || 0 === m5 || i2[m5 - 1] !== j4) {
240
+ -1 !== p5 && p5 < m5 + 1 && (p5 = i2.indexOf(S2, m5 + 1));
241
+ var y4 = v2(-1 === (g6 = -1 !== g6 && g6 < m5 + 1 ? i2.indexOf(O4, m5 + 1) : g6) ? p5 : Math.min(p5, g6));
242
+ if (i2.substr(m5 + 1 + y4, e) === S2) {
243
+ d4.push(i2.substring(z4, m5).replace(_5, F4)), i2[z4 = m5 + 1 + y4 + e] !== F4 && (m5 = i2.indexOf(F4, z4)), p5 = i2.indexOf(S2, z4), g6 = i2.indexOf(O4, z4);
244
244
  break;
245
245
  }
246
- y5 = v3(g4);
247
- if (i2.substring(m4 + 1 + y5, m4 + 1 + y5 + s2) === O3) {
248
- if (d3.push(i2.substring(z4, m4).replace(_4, F4)), b5(m4 + 1 + y5 + s2), p4 = i2.indexOf(S2, z4), m4 = i2.indexOf(F4, z4), o4 && (R2(), M2)) return w2();
249
- if (A4 && h4.length >= A4) return w2(true);
246
+ y4 = v2(g6);
247
+ if (i2.substring(m5 + 1 + y4, m5 + 1 + y4 + s4) === O4) {
248
+ if (d4.push(i2.substring(z4, m5).replace(_5, F4)), b5(m5 + 1 + y4 + s4), p5 = i2.indexOf(S2, z4), m5 = i2.indexOf(F4, z4), o5 && (R4(), M2)) return w3();
249
+ if (A4 && h5.length >= A4) return w3(true);
250
250
  break;
251
251
  }
252
- u4.push({ type: "Quotes", code: "InvalidQuotes", message: "Trailing quote on quoted field is malformed", row: h4.length, index: z4 }), m4++;
252
+ u5.push({ type: "Quotes", code: "InvalidQuotes", message: "Trailing quote on quoted field is malformed", row: h5.length, index: z4 }), m5++;
253
253
  }
254
254
  }
255
- else if (x3 && 0 === d3.length && i2.substring(z4, z4 + a4) === x3) {
256
- if (-1 === g4) return w2();
257
- z4 = g4 + s2, g4 = i2.indexOf(O3, z4), p4 = i2.indexOf(S2, z4);
258
- } else if (-1 !== p4 && (p4 < g4 || -1 === g4)) d3.push(i2.substring(z4, p4)), z4 = p4 + e, p4 = i2.indexOf(S2, z4);
255
+ else if (x3 && 0 === d4.length && i2.substring(z4, z4 + a4) === x3) {
256
+ if (-1 === g6) return w3();
257
+ z4 = g6 + s4, g6 = i2.indexOf(O4, z4), p5 = i2.indexOf(S2, z4);
258
+ } else if (-1 !== p5 && (p5 < g6 || -1 === g6)) d4.push(i2.substring(z4, p5)), z4 = p5 + e, p5 = i2.indexOf(S2, z4);
259
259
  else {
260
- if (-1 === g4) break;
261
- if (d3.push(i2.substring(z4, g4)), b5(g4 + s2), o4 && (R2(), M2)) return w2();
262
- if (A4 && h4.length >= A4) return w2(true);
260
+ if (-1 === g6) break;
261
+ if (d4.push(i2.substring(z4, g6)), b5(g6 + s4), o5 && (R4(), M2)) return w3();
262
+ if (A4 && h5.length >= A4) return w3(true);
263
263
  }
264
264
  return E5();
265
265
  function k3(e2) {
266
- h4.push(e2), f5 = z4;
266
+ h5.push(e2), f5 = z4;
267
267
  }
268
- function v3(e2) {
268
+ function v2(e2) {
269
269
  var t2 = 0;
270
- return t2 = -1 !== e2 && (e2 = i2.substring(m4 + 1, e2)) && "" === e2.trim() ? e2.length : t2;
270
+ return t2 = -1 !== e2 && (e2 = i2.substring(m5 + 1, e2)) && "" === e2.trim() ? e2.length : t2;
271
271
  }
272
272
  function E5(e2) {
273
- return r4 || (void 0 === e2 && (e2 = i2.substring(z4)), d3.push(e2), z4 = n2, k3(d3), o4 && R2()), w2();
273
+ return r4 || (void 0 === e2 && (e2 = i2.substring(z4)), d4.push(e2), z4 = n2, k3(d4), o5 && R4()), w3();
274
274
  }
275
275
  function b5(e2) {
276
- z4 = e2, k3(d3), d3 = [], g4 = i2.indexOf(O3, z4);
276
+ z4 = e2, k3(d4), d4 = [], g6 = i2.indexOf(O4, z4);
277
277
  }
278
- function w2(e2) {
279
- if (C2.header && !t && h4.length && !L4) {
280
- var s4 = h4[0], a5 = /* @__PURE__ */ Object.create(null), o5 = new Set(s4);
278
+ function w3(e2) {
279
+ if (C2.header && !t && h5.length && !L4) {
280
+ var s5 = h5[0], a5 = /* @__PURE__ */ Object.create(null), o6 = new Set(s5);
281
281
  let n4 = false;
282
- for (let r5 = 0; r5 < s4.length; r5++) {
283
- let i4 = P4(s4[r5]);
282
+ for (let r5 = 0; r5 < s5.length; r5++) {
283
+ let i4 = P4(s5[r5]);
284
284
  if (a5[i4 = q2(C2.transformHeader) ? C2.transformHeader(i4, r5) : i4]) {
285
285
  let e4, t2 = a5[i4];
286
- for (; e4 = i4 + "_" + t2, t2++, o5.has(e4); ) ;
287
- o5.add(e4), s4[r5] = e4, a5[i4]++, n4 = true, (D2 = null === D2 ? {} : D2)[e4] = i4;
288
- } else a5[i4] = 1, s4[r5] = i4;
289
- o5.add(i4);
286
+ for (; e4 = i4 + "_" + t2, t2++, o6.has(e4); ) ;
287
+ o6.add(e4), s5[r5] = e4, a5[i4]++, n4 = true, (D2 = null === D2 ? {} : D2)[e4] = i4;
288
+ } else a5[i4] = 1, s5[r5] = i4;
289
+ o6.add(i4);
290
290
  }
291
291
  n4 && console.warn("Duplicate headers found and renamed."), L4 = true;
292
292
  }
293
- return { data: h4, errors: u4, meta: { delimiter: S2, linebreak: O3, aborted: M2, truncated: !!e2, cursor: f5 + (t || 0), renamedHeaders: D2 } };
293
+ return { data: h5, errors: u5, meta: { delimiter: S2, linebreak: O4, aborted: M2, truncated: !!e2, cursor: f5 + (t || 0), renamedHeaders: D2 } };
294
294
  }
295
- function R2() {
296
- I4(w2()), h4 = [], u4 = [];
295
+ function R4() {
296
+ I2(w3()), h5 = [], u5 = [];
297
297
  }
298
298
  }, this.abort = function() {
299
299
  M2 = true;
@@ -301,25 +301,25 @@ var require_papaparse_min = __commonJS({
301
301
  return z4;
302
302
  };
303
303
  }
304
- function g3(e) {
305
- var t = e.data, i2 = o2[t.workerId], r4 = false;
304
+ function g5(e) {
305
+ var t = e.data, i2 = o4[t.workerId], r4 = false;
306
306
  if (t.error) i2.userError(t.error, t.file);
307
307
  else if (t.results && t.results.data) {
308
308
  var n2 = { abort: function() {
309
- r4 = true, _3(t.workerId, { data: [], errors: [], meta: { aborted: true } });
310
- }, pause: m2, resume: m2 };
309
+ r4 = true, _4(t.workerId, { data: [], errors: [], meta: { aborted: true } });
310
+ }, pause: m4, resume: m4 };
311
311
  if (q2(i2.userStep)) {
312
- for (var s2 = 0; s2 < t.results.data.length && (i2.userStep({ data: t.results.data[s2], errors: t.results.errors, meta: t.results.meta }, n2), !r4); s2++) ;
312
+ for (var s4 = 0; s4 < t.results.data.length && (i2.userStep({ data: t.results.data[s4], errors: t.results.errors, meta: t.results.meta }, n2), !r4); s4++) ;
313
313
  delete t.results;
314
314
  } else q2(i2.userChunk) && (i2.userChunk(t.results, n2, t.file), delete t.results);
315
315
  }
316
- t.finished && !r4 && _3(t.workerId, t.results);
316
+ t.finished && !r4 && _4(t.workerId, t.results);
317
317
  }
318
- function _3(e, t) {
319
- var i2 = o2[e];
320
- q2(i2.userComplete) && i2.userComplete(t), i2.terminate(), delete o2[e];
318
+ function _4(e, t) {
319
+ var i2 = o4[e];
320
+ q2(i2.userComplete) && i2.userComplete(t), i2.terminate(), delete o4[e];
321
321
  }
322
- function m2() {
322
+ function m4() {
323
323
  throw new Error("Not implemented.");
324
324
  }
325
325
  function b4(e) {
@@ -328,7 +328,7 @@ var require_papaparse_min = __commonJS({
328
328
  for (t in e) i2[t] = b4(e[t]);
329
329
  return i2;
330
330
  }
331
- function y4(e, t) {
331
+ function y2(e, t) {
332
332
  return function() {
333
333
  e.apply(t, arguments);
334
334
  };
@@ -336,27 +336,27 @@ var require_papaparse_min = __commonJS({
336
336
  function q2(e) {
337
337
  return "function" == typeof e;
338
338
  }
339
- return v2.parse = function(e, t) {
339
+ return v.parse = function(e, t) {
340
340
  var i2 = (t = t || {}).dynamicTyping || false;
341
341
  q2(i2) && (t.dynamicTypingFunction = i2, i2 = {});
342
- if (t.dynamicTyping = i2, t.transform = !!q2(t.transform) && t.transform, !t.worker || !v2.WORKERS_SUPPORTED) return i2 = null, v2.NODE_STREAM_INPUT, "string" == typeof e ? (e = P4(e), i2 = new (t.download ? f4 : c2)(t)) : true === e.readable && q2(e.read) && q2(e.on) ? i2 = new p2(t) : (n.File && e instanceof File || e instanceof Object) && (i2 = new l(t)), i2.stream(e);
342
+ if (t.dynamicTyping = i2, t.transform = !!q2(t.transform) && t.transform, !t.worker || !v.WORKERS_SUPPORTED) return i2 = null, v.NODE_STREAM_INPUT, "string" == typeof e ? (e = P4(e), i2 = new (t.download ? f4 : c2)(t)) : true === e.readable && q2(e.read) && q2(e.on) ? i2 = new p4(t) : (n.File && e instanceof File || e instanceof Object) && (i2 = new l2(t)), i2.stream(e);
343
343
  (i2 = (() => {
344
344
  var e2;
345
- return !!v2.WORKERS_SUPPORTED && (e2 = (() => {
345
+ return !!v.WORKERS_SUPPORTED && (e2 = (() => {
346
346
  var e4 = n.URL || n.webkitURL || null, t2 = r2.toString();
347
- return v2.BLOB_URL || (v2.BLOB_URL = e4.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; ", "(", t2, ")();"], { type: "text/javascript" })));
348
- })(), (e2 = new n.Worker(e2)).onmessage = g3, e2.id = h3++, o2[e2.id] = e2);
347
+ return v.BLOB_URL || (v.BLOB_URL = e4.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; ", "(", t2, ")();"], { type: "text/javascript" })));
348
+ })(), (e2 = new n.Worker(e2)).onmessage = g5, e2.id = h4++, o4[e2.id] = e2);
349
349
  })()).userStep = t.step, i2.userChunk = t.chunk, i2.userComplete = t.complete, i2.userError = t.error, t.step = q2(t.step), t.chunk = q2(t.chunk), t.complete = q2(t.complete), t.error = q2(t.error), delete t.worker, i2.postMessage({ input: e, config: t, workerId: i2.id });
350
- }, v2.unparse = function(e, t) {
351
- var s2 = false, _4 = true, m4 = ",", y5 = "\r\n", a4 = '"', o4 = a4 + a4, i2 = false, r4 = null, h4 = false, u4 = ((() => {
350
+ }, v.unparse = function(e, t) {
351
+ var s4 = false, _5 = true, m5 = ",", y4 = "\r\n", a4 = '"', o5 = a4 + a4, i2 = false, r4 = null, h5 = false, u5 = ((() => {
352
352
  if ("object" == typeof t) {
353
- if ("string" != typeof t.delimiter || v2.BAD_DELIMITERS.filter(function(e2) {
353
+ if ("string" != typeof t.delimiter || v.BAD_DELIMITERS.filter(function(e2) {
354
354
  return -1 !== t.delimiter.indexOf(e2);
355
- }).length || (m4 = t.delimiter), "boolean" != typeof t.quotes && "function" != typeof t.quotes && !Array.isArray(t.quotes) || (s2 = t.quotes), "boolean" != typeof t.skipEmptyLines && "string" != typeof t.skipEmptyLines || (i2 = t.skipEmptyLines), "string" == typeof t.newline && (y5 = t.newline), "string" == typeof t.quoteChar && (a4 = t.quoteChar, o4 = a4 + a4), "boolean" == typeof t.header && (_4 = t.header), Array.isArray(t.columns)) {
355
+ }).length || (m5 = t.delimiter), "boolean" != typeof t.quotes && "function" != typeof t.quotes && !Array.isArray(t.quotes) || (s4 = t.quotes), "boolean" != typeof t.skipEmptyLines && "string" != typeof t.skipEmptyLines || (i2 = t.skipEmptyLines), "string" == typeof t.newline && (y4 = t.newline), "string" == typeof t.quoteChar && (a4 = t.quoteChar, o5 = a4 + a4), "boolean" == typeof t.header && (_5 = t.header), Array.isArray(t.columns)) {
356
356
  if (0 === t.columns.length) throw new Error("Option columns is empty");
357
357
  r4 = t.columns;
358
358
  }
359
- void 0 !== t.escapeChar && (o4 = t.escapeChar + a4), t.escapeFormulae instanceof RegExp ? h4 = t.escapeFormulae : "boolean" == typeof t.escapeFormulae && t.escapeFormulae && (h4 = /^[=+\-@\t\r].*$/);
359
+ void 0 !== t.escapeChar && (o5 = t.escapeChar + a4), t.escapeFormulae instanceof RegExp ? h5 = t.escapeFormulae : "boolean" == typeof t.escapeFormulae && t.escapeFormulae && (h5 = /^[=+\-@\t\r].*$/);
360
360
  }
361
361
  })(), new RegExp(U2(a4), "g"));
362
362
  "string" == typeof e && (e = JSON.parse(e));
@@ -366,76 +366,76 @@ var require_papaparse_min = __commonJS({
366
366
  } else if ("object" == typeof e) return "string" == typeof e.data && (e.data = JSON.parse(e.data)), Array.isArray(e.data) && (e.fields || (e.fields = e.meta && e.meta.fields || r4), e.fields || (e.fields = Array.isArray(e.data[0]) ? e.fields : "object" == typeof e.data[0] ? Object.keys(e.data[0]) : []), Array.isArray(e.data[0]) || "object" == typeof e.data[0] || (e.data = [e.data])), n2(e.fields || [], e.data || [], i2);
367
367
  throw new Error("Unable to serialize unrecognized input");
368
368
  function n2(e2, t2, i4) {
369
- var r5 = "", n4 = ("string" == typeof e2 && (e2 = JSON.parse(e2)), "string" == typeof t2 && (t2 = JSON.parse(t2)), Array.isArray(e2) && 0 < e2.length), s4 = !Array.isArray(t2[0]);
370
- if (n4 && _4) {
371
- for (var a5 = 0; a5 < e2.length; a5++) 0 < a5 && (r5 += m4), r5 += k3(e2[a5], a5);
372
- 0 < t2.length && (r5 += y5);
369
+ var r5 = "", n4 = ("string" == typeof e2 && (e2 = JSON.parse(e2)), "string" == typeof t2 && (t2 = JSON.parse(t2)), Array.isArray(e2) && 0 < e2.length), s5 = !Array.isArray(t2[0]);
370
+ if (n4 && _5) {
371
+ for (var a5 = 0; a5 < e2.length; a5++) 0 < a5 && (r5 += m5), r5 += k3(e2[a5], a5);
372
+ 0 < t2.length && (r5 += y4);
373
373
  }
374
- for (var o5 = 0; o5 < t2.length; o5++) {
375
- var h5 = (n4 ? e2 : t2[o5]).length, u5 = false, d3 = n4 ? 0 === Object.keys(t2[o5]).length : 0 === t2[o5].length;
376
- if (i4 && !n4 && (u5 = "greedy" === i4 ? "" === t2[o5].join("").trim() : 1 === t2[o5].length && 0 === t2[o5][0].length), "greedy" === i4 && n4) {
377
- for (var f5 = [], l2 = 0; l2 < h5; l2++) {
378
- var c4 = s4 ? e2[l2] : l2;
379
- f5.push(t2[o5][c4]);
374
+ for (var o6 = 0; o6 < t2.length; o6++) {
375
+ var h6 = (n4 ? e2 : t2[o6]).length, u6 = false, d4 = n4 ? 0 === Object.keys(t2[o6]).length : 0 === t2[o6].length;
376
+ if (i4 && !n4 && (u6 = "greedy" === i4 ? "" === t2[o6].join("").trim() : 1 === t2[o6].length && 0 === t2[o6][0].length), "greedy" === i4 && n4) {
377
+ for (var f5 = [], l4 = 0; l4 < h6; l4++) {
378
+ var c4 = s5 ? e2[l4] : l4;
379
+ f5.push(t2[o6][c4]);
380
380
  }
381
- u5 = "" === f5.join("").trim();
381
+ u6 = "" === f5.join("").trim();
382
382
  }
383
- if (!u5) {
384
- for (var p4 = 0; p4 < h5; p4++) {
385
- 0 < p4 && !d3 && (r5 += m4);
386
- var g4 = n4 && s4 ? e2[p4] : p4;
387
- r5 += k3(t2[o5][g4], p4);
383
+ if (!u6) {
384
+ for (var p5 = 0; p5 < h6; p5++) {
385
+ 0 < p5 && !d4 && (r5 += m5);
386
+ var g6 = n4 && s5 ? e2[p5] : p5;
387
+ r5 += k3(t2[o6][g6], p5);
388
388
  }
389
- o5 < t2.length - 1 && (!i4 || 0 < h5 && !d3) && (r5 += y5);
389
+ o6 < t2.length - 1 && (!i4 || 0 < h6 && !d4) && (r5 += y4);
390
390
  }
391
391
  }
392
392
  return r5;
393
393
  }
394
394
  function k3(e2, t2) {
395
395
  var i4, r5, n4;
396
- return null == e2 ? "" : e2.constructor === Date ? JSON.stringify(e2).slice(1, 25) : (n4 = false, h4 && "string" == typeof e2 && h4.test(e2) && (e2 = "'" + e2, n4 = true), r5 = (i4 = e2.toString()).replace(u4, o4), (n4 = n4 || true === s2 || "function" == typeof s2 && s2(e2, t2) || Array.isArray(s2) && s2[t2] || ((e4, t4) => {
396
+ return null == e2 ? "" : e2.constructor === Date ? JSON.stringify(e2).slice(1, 25) : (n4 = false, h5 && "string" == typeof e2 && h5.test(e2) && (e2 = "'" + e2, n4 = true), r5 = (i4 = e2.toString()).replace(u5, o5), (n4 = n4 || true === s4 || "function" == typeof s4 && s4(e2, t2) || Array.isArray(s4) && s4[t2] || ((e4, t4) => {
397
397
  for (var i5 = 0; i5 < t4.length; i5++) if (-1 < e4.indexOf(t4[i5])) return true;
398
398
  return false;
399
- })(r5, v2.BAD_DELIMITERS) || -1 < r5.indexOf(m4) || -1 < i4.indexOf(a4) || " " === r5.charAt(0) || " " === r5.charAt(r5.length - 1)) ? a4 + r5 + a4 : r5);
399
+ })(r5, v.BAD_DELIMITERS) || -1 < r5.indexOf(m5) || -1 < i4.indexOf(a4) || " " === r5.charAt(0) || " " === r5.charAt(r5.length - 1)) ? a4 + r5 + a4 : r5);
400
400
  }
401
- }, v2.RECORD_SEP = String.fromCharCode(30), v2.UNIT_SEP = String.fromCharCode(31), v2.BYTE_ORDER_MARK = "\uFEFF", v2.BAD_DELIMITERS = ["\r", "\n", '"', v2.BYTE_ORDER_MARK], v2.WORKERS_SUPPORTED = !s && !!n.Worker, v2.NODE_STREAM_INPUT = 1, v2.LocalChunkSize = 10485760, v2.RemoteChunkSize = 5242880, v2.DefaultDelimiter = ",", v2.Parser = E4, v2.ParserHandle = i, v2.NetworkStreamer = f4, v2.FileStreamer = l, v2.StringStreamer = c2, v2.ReadableStreamStreamer = p2, n.jQuery && ((d2 = n.jQuery).fn.parse = function(o4) {
402
- var i2 = o4.config || {}, h4 = [];
401
+ }, v.RECORD_SEP = String.fromCharCode(30), v.UNIT_SEP = String.fromCharCode(31), v.BYTE_ORDER_MARK = "\uFEFF", v.BAD_DELIMITERS = ["\r", "\n", '"', v.BYTE_ORDER_MARK], v.WORKERS_SUPPORTED = !s2 && !!n.Worker, v.NODE_STREAM_INPUT = 1, v.LocalChunkSize = 10485760, v.RemoteChunkSize = 5242880, v.DefaultDelimiter = ",", v.Parser = E4, v.ParserHandle = i, v.NetworkStreamer = f4, v.FileStreamer = l2, v.StringStreamer = c2, v.ReadableStreamStreamer = p4, n.jQuery && ((d2 = n.jQuery).fn.parse = function(o5) {
402
+ var i2 = o5.config || {}, h5 = [];
403
403
  return this.each(function(e2) {
404
404
  if (!("INPUT" === d2(this).prop("tagName").toUpperCase() && "file" === d2(this).attr("type").toLowerCase() && n.FileReader) || !this.files || 0 === this.files.length) return true;
405
- for (var t = 0; t < this.files.length; t++) h4.push({ file: this.files[t], inputElem: this, instanceConfig: d2.extend({}, i2) });
405
+ for (var t = 0; t < this.files.length; t++) h5.push({ file: this.files[t], inputElem: this, instanceConfig: d2.extend({}, i2) });
406
406
  }), e(), this;
407
407
  function e() {
408
- if (0 === h4.length) q2(o4.complete) && o4.complete();
408
+ if (0 === h5.length) q2(o5.complete) && o5.complete();
409
409
  else {
410
- var e2, t, i4, r4, n2 = h4[0];
411
- if (q2(o4.before)) {
412
- var s2 = o4.before(n2.file, n2.inputElem);
413
- if ("object" == typeof s2) {
414
- if ("abort" === s2.action) return e2 = "AbortError", t = n2.file, i4 = n2.inputElem, r4 = s2.reason, void (q2(o4.error) && o4.error({ name: e2 }, t, i4, r4));
415
- if ("skip" === s2.action) return void u4();
416
- "object" == typeof s2.config && (n2.instanceConfig = d2.extend(n2.instanceConfig, s2.config));
417
- } else if ("skip" === s2) return void u4();
410
+ var e2, t, i4, r4, n2 = h5[0];
411
+ if (q2(o5.before)) {
412
+ var s4 = o5.before(n2.file, n2.inputElem);
413
+ if ("object" == typeof s4) {
414
+ if ("abort" === s4.action) return e2 = "AbortError", t = n2.file, i4 = n2.inputElem, r4 = s4.reason, void (q2(o5.error) && o5.error({ name: e2 }, t, i4, r4));
415
+ if ("skip" === s4.action) return void u5();
416
+ "object" == typeof s4.config && (n2.instanceConfig = d2.extend(n2.instanceConfig, s4.config));
417
+ } else if ("skip" === s4) return void u5();
418
418
  }
419
419
  var a4 = n2.instanceConfig.complete;
420
420
  n2.instanceConfig.complete = function(e4) {
421
- q2(a4) && a4(e4, n2.file, n2.inputElem), u4();
422
- }, v2.parse(n2.file, n2.instanceConfig);
421
+ q2(a4) && a4(e4, n2.file, n2.inputElem), u5();
422
+ }, v.parse(n2.file, n2.instanceConfig);
423
423
  }
424
424
  }
425
- function u4() {
426
- h4.splice(0, 1), e();
425
+ function u5() {
426
+ h5.splice(0, 1), e();
427
427
  }
428
- }), a2 && (n.onmessage = function(e) {
428
+ }), a3 && (n.onmessage = function(e) {
429
429
  e = e.data;
430
- void 0 === v2.WORKER_ID && e && (v2.WORKER_ID = e.workerId);
431
- "string" == typeof e.input ? n.postMessage({ workerId: v2.WORKER_ID, results: v2.parse(e.input, e.config), finished: true }) : (n.File && e.input instanceof File || e.input instanceof Object) && (e = v2.parse(e.input, e.config)) && n.postMessage({ workerId: v2.WORKER_ID, results: e, finished: true });
432
- }), (f4.prototype = Object.create(u2.prototype)).constructor = f4, (l.prototype = Object.create(u2.prototype)).constructor = l, (c2.prototype = Object.create(c2.prototype)).constructor = c2, (p2.prototype = Object.create(u2.prototype)).constructor = p2, v2;
430
+ void 0 === v.WORKER_ID && e && (v.WORKER_ID = e.workerId);
431
+ "string" == typeof e.input ? n.postMessage({ workerId: v.WORKER_ID, results: v.parse(e.input, e.config), finished: true }) : (n.File && e.input instanceof File || e.input instanceof Object) && (e = v.parse(e.input, e.config)) && n.postMessage({ workerId: v.WORKER_ID, results: e, finished: true });
432
+ }), (f4.prototype = Object.create(u4.prototype)).constructor = f4, (l2.prototype = Object.create(u4.prototype)).constructor = l2, (c2.prototype = Object.create(c2.prototype)).constructor = c2, (p4.prototype = Object.create(u4.prototype)).constructor = p4, v;
433
433
  });
434
434
  }
435
435
  });
436
436
 
437
437
  // src/contract.ts
438
- var HOST_CONTRACT_VERSION = "1.12.0";
438
+ var HOST_CONTRACT_VERSION = "1.13.0";
439
439
  var GEO_POINT_PRECISIONS = ["latlon", "city", "zip3", "state", "country"];
440
440
  var MARK_CLASS = "d3-mark";
441
441
  var LEGEND_MARK_CLASS = "d3-legend-mark";
@@ -443,6 +443,8 @@ var AXIS_FILTER_CLASS = "d3-axis-filter";
443
443
  var LIFT_SELECTED_CLASS = "d3-lift-selected";
444
444
  var CONTROL_CLASS = "lch-control";
445
445
  var ROW_IDX_ATTR = "data-row-idx";
446
+ var NO_ROW_MARKS_ATTR = "data-lch-no-row-marks";
447
+ var SNAPSHOT_SVG_ATTR = "data-lch-snapshot";
446
448
  var XFILTER_REFRESH_EVENT = "llm-xfilter-refresh";
447
449
  var CONTAINER_SLOT_ANIM_STOP = "__llmAnimStop";
448
450
  var CONTAINER_SLOT_XF_CLEAR = "__llmXfClear";
@@ -489,6 +491,8 @@ var COLOR_SCALE_SELF_CLAMP_PCT_DEFAULT = 95;
489
491
  var COLOR_SCALE_SELF_CLAMP_PCT_MIN = 50;
490
492
  var COLOR_SCALE_SELF_CLAMP_PCT_MAX = 100;
491
493
  var FLIP_MODE_DEFAULT = "both";
494
+ var FLIP_INTERVAL_MIN_MS = 500;
495
+ var FLIP_INTERVAL_MAX_MS = 12e4;
492
496
  var APPROXIMATE_POSITIONS_DEFAULT = "mark";
493
497
  var VALUE_AXIS_BASELINE_DEFAULT = "fit";
494
498
  var SEASONAL_MARKERS_DEFAULT = "auto";
@@ -496,8 +500,8 @@ var MAX_MAP_POINTS_DEFAULT = 2e3;
496
500
 
497
501
  // src/deltaE.ts
498
502
  function linearise(c2) {
499
- const v2 = c2 / 255;
500
- return v2 <= 0.04045 ? v2 / 12.92 : Math.pow((v2 + 0.055) / 1.055, 2.4);
503
+ const v = c2 / 255;
504
+ return v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
501
505
  }
502
506
  var Xn = 0.95047;
503
507
  var Yn = 1;
@@ -507,19 +511,19 @@ var KAPPA = 24389 / 27;
507
511
  function f(t) {
508
512
  return t > EPS ? Math.cbrt(t) : (KAPPA * t + 16) / 116;
509
513
  }
510
- function rgbToLab(r2, g3, b4) {
511
- const R2 = linearise(r2), G3 = linearise(g3), B3 = linearise(b4);
512
- const X3 = 0.4124564 * R2 + 0.3575761 * G3 + 0.1804375 * B3;
513
- const Y3 = 0.2126729 * R2 + 0.7151522 * G3 + 0.072175 * B3;
514
- const Z5 = 0.0193339 * R2 + 0.119192 * G3 + 0.9503041 * B3;
515
- const fx = f(X3 / Xn), fy = f(Y3 / Yn), fz = f(Z5 / Zn);
514
+ function rgbToLab(r2, g5, b4) {
515
+ const R4 = linearise(r2), G4 = linearise(g5), B4 = linearise(b4);
516
+ const X3 = 0.4124564 * R4 + 0.3575761 * G4 + 0.1804375 * B4;
517
+ const Y4 = 0.2126729 * R4 + 0.7151522 * G4 + 0.072175 * B4;
518
+ const Z4 = 0.0193339 * R4 + 0.119192 * G4 + 0.9503041 * B4;
519
+ const fx = f(X3 / Xn), fy = f(Y4 / Yn), fz = f(Z4 / Zn);
516
520
  return { L: 116 * fy - 16, a: 500 * (fx - fy), b: 200 * (fy - fz) };
517
521
  }
518
522
  function hexToLab(hex2) {
519
- const m2 = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(hex2.trim());
520
- if (!m2) return null;
521
- const h3 = m2[1].length === 3 ? m2[1][0] + m2[1][0] + m2[1][1] + m2[1][1] + m2[1][2] + m2[1][2] : m2[1];
522
- return rgbToLab(parseInt(h3.slice(0, 2), 16), parseInt(h3.slice(2, 4), 16), parseInt(h3.slice(4, 6), 16));
523
+ const m4 = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(hex2.trim());
524
+ if (!m4) return null;
525
+ const h4 = m4[1].length === 3 ? m4[1][0] + m4[1][0] + m4[1][1] + m4[1][1] + m4[1][2] + m4[1][2] : m4[1];
526
+ return rgbToLab(parseInt(h4.slice(0, 2), 16), parseInt(h4.slice(2, 4), 16), parseInt(h4.slice(4, 6), 16));
523
527
  }
524
528
  var RAD = Math.PI / 180;
525
529
  var DEG = 180 / Math.PI;
@@ -528,8 +532,8 @@ function deltaE2000(c1, c2) {
528
532
  const C1 = Math.hypot(c1.a, c1.b), C2 = Math.hypot(c2.a, c2.b);
529
533
  const Cbar = (C1 + C2) / 2;
530
534
  const C7 = Math.pow(Cbar, 7);
531
- const G3 = 0.5 * (1 - Math.sqrt(C7 / (C7 + Math.pow(25, 7))));
532
- const a1p = (1 + G3) * c1.a, a2p = (1 + G3) * c2.a;
535
+ const G4 = 0.5 * (1 - Math.sqrt(C7 / (C7 + Math.pow(25, 7))));
536
+ const a1p = (1 + G4) * c1.a, a2p = (1 + G4) * c2.a;
533
537
  const C1p = Math.hypot(a1p, c1.b), C2p = Math.hypot(a2p, c2.b);
534
538
  const neutral = C1p < NEUTRAL_CHROMA || C2p < NEUTRAL_CHROMA;
535
539
  const h1p = C1p < NEUTRAL_CHROMA ? 0 : (Math.atan2(c1.b, a1p) * DEG + 360) % 360;
@@ -549,7 +553,7 @@ function deltaE2000(c1, c2) {
549
553
  else if (Math.abs(h1p - h2p) <= 180) hbarp = (h1p + h2p) / 2;
550
554
  else if (h1p + h2p < 360) hbarp = (h1p + h2p + 360) / 2;
551
555
  else hbarp = (h1p + h2p - 360) / 2;
552
- const T2 = 1 - 0.17 * Math.cos((hbarp - 30) * RAD) + 0.24 * Math.cos(2 * hbarp * RAD) + 0.32 * Math.cos((3 * hbarp + 6) * RAD) - 0.2 * Math.cos((4 * hbarp - 63) * RAD);
556
+ const T = 1 - 0.17 * Math.cos((hbarp - 30) * RAD) + 0.24 * Math.cos(2 * hbarp * RAD) + 0.32 * Math.cos((3 * hbarp + 6) * RAD) - 0.2 * Math.cos((4 * hbarp - 63) * RAD);
553
557
  const dTheta = 30 * Math.exp(-Math.pow((hbarp - 275) / 25, 2));
554
558
  const Cbarp7 = Math.pow(Cbarp, 7);
555
559
  const RC = 2 * Math.sqrt(Cbarp7 / (Cbarp7 + Math.pow(25, 7)));
@@ -557,7 +561,7 @@ function deltaE2000(c1, c2) {
557
561
  const Lm50 = Math.pow(Lbarp - 50, 2);
558
562
  const SL = 1 + 0.015 * Lm50 / Math.sqrt(20 + Lm50);
559
563
  const SC = 1 + 0.045 * Cbarp;
560
- const SH = 1 + 0.015 * Cbarp * T2;
564
+ const SH = 1 + 0.015 * Cbarp * T;
561
565
  const tL = dLp / SL, tC = dCp / SC, tH = dHp / SH;
562
566
  return Math.sqrt(tL * tL + tC * tC + tH * tH + RT * tC * tH);
563
567
  }
@@ -568,21 +572,21 @@ function labToHex(lab) {
568
572
  };
569
573
  const fy = (lab.L + 16) / 116, fx = fy + lab.a / 500, fz = fy - lab.b / 200;
570
574
  const X3 = Xn * finv(fx);
571
- const Y3 = Yn * (lab.L > KAPPA * EPS ? fy * fy * fy : lab.L / KAPPA);
572
- const Z5 = Zn * finv(fz);
575
+ const Y4 = Yn * (lab.L > KAPPA * EPS ? fy * fy * fy : lab.L / KAPPA);
576
+ const Z4 = Zn * finv(fz);
573
577
  const lin = [
574
- 3.2404542 * X3 - 1.5371385 * Y3 - 0.4985314 * Z5,
575
- -0.969266 * X3 + 1.8760108 * Y3 + 0.041556 * Z5,
576
- 0.0556434 * X3 - 0.2040259 * Y3 + 1.0572252 * Z5
578
+ 3.2404542 * X3 - 1.5371385 * Y4 - 0.4985314 * Z4,
579
+ -0.969266 * X3 + 1.8760108 * Y4 + 0.041556 * Z4,
580
+ 0.0556434 * X3 - 0.2040259 * Y4 + 1.0572252 * Z4
577
581
  ];
578
- return "#" + lin.map((v2) => {
579
- const c2 = Math.max(0, Math.min(1, v2));
580
- const g3 = c2 <= 31308e-7 ? 12.92 * c2 : 1.055 * Math.pow(c2, 1 / 2.4) - 0.055;
581
- return Math.round(g3 * 255).toString(16).padStart(2, "0");
582
+ return "#" + lin.map((v) => {
583
+ const c2 = Math.max(0, Math.min(1, v));
584
+ const g5 = c2 <= 31308e-7 ? 12.92 * c2 : 1.055 * Math.pow(c2, 1 / 2.4) - 0.055;
585
+ return Math.round(g5 * 255).toString(16).padStart(2, "0");
582
586
  }).join("");
583
587
  }
584
- function deltaEHex(a2, b4) {
585
- const la = hexToLab(a2), lb = hexToLab(b4);
588
+ function deltaEHex(a3, b4) {
589
+ const la = hexToLab(a3), lb = hexToLab(b4);
586
590
  return la && lb ? deltaE2000(la, lb) : NaN;
587
591
  }
588
592
 
@@ -604,28 +608,28 @@ function styleOf(el, doc) {
604
608
  }
605
609
  }
606
610
  function fillOf(el, cs) {
607
- const a2 = el.getAttribute?.("fill");
608
- if (a2 !== null && a2 !== void 0 && String(a2).trim() !== "") return String(a2).trim();
611
+ const a3 = el.getAttribute?.("fill");
612
+ if (a3 !== null && a3 !== void 0 && String(a3).trim() !== "") return String(a3).trim();
609
613
  const c2 = cs?.fill;
610
614
  return c2 === null || c2 === void 0 ? "" : String(c2).trim();
611
615
  }
612
616
  function toRgb(raw) {
613
- const s = raw.trim().toLowerCase();
614
- if (!s || s === "none" || s === "transparent") return null;
615
- const hex2 = /^#([0-9a-f]{3}|[0-9a-f]{6})$/.exec(s);
617
+ const s2 = raw.trim().toLowerCase();
618
+ if (!s2 || s2 === "none" || s2 === "transparent") return null;
619
+ const hex2 = /^#([0-9a-f]{3}|[0-9a-f]{6})$/.exec(s2);
616
620
  if (hex2) {
617
- const h3 = hex2[1];
618
- const full = h3.length === 3 ? h3[0] + h3[0] + h3[1] + h3[1] + h3[2] + h3[2] : h3;
621
+ const h4 = hex2[1];
622
+ const full = h4.length === 3 ? h4[0] + h4[0] + h4[1] + h4[1] + h4[2] + h4[2] : h4;
619
623
  return [
620
624
  parseInt(full.slice(0, 2), 16),
621
625
  parseInt(full.slice(2, 4), 16),
622
626
  parseInt(full.slice(4, 6), 16)
623
627
  ];
624
628
  }
625
- const m2 = /^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)\s*(?:[,/]\s*([\d.]+)\s*)?\)$/.exec(s);
626
- if (!m2) return null;
627
- if (m2[4] !== void 0 && parseFloat(m2[4]) === 0) return null;
628
- return [Math.round(parseFloat(m2[1])), Math.round(parseFloat(m2[2])), Math.round(parseFloat(m2[3]))];
629
+ const m4 = /^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)\s*(?:[,/]\s*([\d.]+)\s*)?\)$/.exec(s2);
630
+ if (!m4) return null;
631
+ if (m4[4] !== void 0 && parseFloat(m4[4]) === 0) return null;
632
+ return [Math.round(parseFloat(m4[1])), Math.round(parseFloat(m4[2])), Math.round(parseFloat(m4[3]))];
629
633
  }
630
634
  function cellKey(rgb) {
631
635
  return [
@@ -635,7 +639,7 @@ function cellKey(rgb) {
635
639
  ].join(",");
636
640
  }
637
641
  function hex(rgb) {
638
- return "#" + rgb.map((v2) => Math.max(0, Math.min(255, v2)).toString(16).padStart(2, "0")).join("");
642
+ return "#" + rgb.map((v) => Math.max(0, Math.min(255, v)).toString(16).padStart(2, "0")).join("");
639
643
  }
640
644
  function censusColourSpread(container, doc) {
641
645
  if (!container || typeof container.querySelectorAll !== "function") return EMPTY;
@@ -651,15 +655,15 @@ function censusColourSpread(container, doc) {
651
655
  if (rgb) painted.push({ rgb, tag: String(el.tagName || "").toLowerCase() });
652
656
  }
653
657
  const byTag = /* @__PURE__ */ new Map();
654
- for (const p2 of painted) {
655
- const g3 = byTag.get(p2.tag) ?? { fills: /* @__PURE__ */ new Set(), n: 0 };
656
- g3.fills.add(p2.rgb.join(","));
657
- g3.n++;
658
- byTag.set(p2.tag, g3);
658
+ for (const p4 of painted) {
659
+ const g5 = byTag.get(p4.tag) ?? { fills: /* @__PURE__ */ new Set(), n: 0 };
660
+ g5.fills.add(p4.rgb.join(","));
661
+ g5.n++;
662
+ byTag.set(p4.tag, g5);
659
663
  }
660
- const overlays = new Set([...byTag].filter(([, g3]) => g3.fills.size === 1 && g3.n >= MIN_MARKS).map(([t]) => t));
661
- const restFills = new Set([...byTag].filter(([t]) => !overlays.has(t)).flatMap(([, g3]) => [...g3.fills]));
662
- const counted = restFills.size > 1 ? painted.filter((p2) => !overlays.has(p2.tag)) : painted;
664
+ const overlays = new Set([...byTag].filter(([, g5]) => g5.fills.size === 1 && g5.n >= MIN_MARKS).map(([t]) => t));
665
+ const restFills = new Set([...byTag].filter(([t]) => !overlays.has(t)).flatMap(([, g5]) => [...g5.fills]));
666
+ const counted = restFills.size > 1 ? painted.filter((p4) => !overlays.has(p4.tag)) : painted;
663
667
  const distinct = /* @__PURE__ */ new Set();
664
668
  const cells = /* @__PURE__ */ new Map();
665
669
  let marks = 0;
@@ -672,20 +676,20 @@ function censusColourSpread(container, doc) {
672
676
  else cells.set(k3, { rgb, n: 1 });
673
677
  }
674
678
  if (marks < MIN_MARKS || distinct.size < MIN_RAMP_FILLS) return EMPTY;
675
- const top = [...cells.values()].sort((a2, b4) => b4.n - a2.n).slice(0, MAX_CELLS);
676
- const cs = top.map((c2) => hexToLab(hex(c2.rgb))).filter((l) => l !== null);
679
+ const top = [...cells.values()].sort((a3, b4) => b4.n - a3.n).slice(0, MAX_CELLS);
680
+ const cs = top.map((c2) => hexToLab(hex(c2.rgb))).filter((l2) => l2 !== null);
677
681
  if (cs.length < MIN_RAMP_FILLS) return EMPTY;
678
682
  const d2 = cs.map(() => new Array(cs.length).fill(0));
679
683
  let span = 0, lo = 0, hi = 1;
680
684
  for (let i = 0; i < cs.length; i++) {
681
- for (let j3 = i + 1; j3 < cs.length; j3++) {
682
- const v2 = deltaE2000(cs[i], cs[j3]);
683
- d2[i][j3] = v2;
684
- d2[j3][i] = v2;
685
- if (v2 > span) {
686
- span = v2;
685
+ for (let j4 = i + 1; j4 < cs.length; j4++) {
686
+ const v = deltaE2000(cs[i], cs[j4]);
687
+ d2[i][j4] = v;
688
+ d2[j4][i] = v;
689
+ if (v > span) {
690
+ span = v;
687
691
  lo = i;
688
- hi = j3;
692
+ hi = j4;
689
693
  }
690
694
  }
691
695
  }
@@ -700,8 +704,8 @@ function censusColourSpread(container, doc) {
700
704
  let crowd = 0;
701
705
  for (let i = 0; i < cs.length; i++) {
702
706
  let n = 0;
703
- for (let j3 = 0; j3 < cs.length; j3++) {
704
- if (i === j3 || d2[i][j3] <= SAME_SHADE_DELTA_E) n += top[j3].n;
707
+ for (let j4 = 0; j4 < cs.length; j4++) {
708
+ if (i === j4 || d2[i][j4] <= SAME_SHADE_DELTA_E) n += top[j4].n;
705
709
  }
706
710
  if (n > crowd) crowd = n;
707
711
  }
@@ -729,18 +733,18 @@ var MIN_ACCENT_VS_CANVAS = 20;
729
733
  var HEX = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;
730
734
  function normHex(raw) {
731
735
  if (typeof raw !== "string") return null;
732
- const m2 = HEX.exec(raw.trim());
733
- if (!m2) return null;
734
- const h3 = m2[1].length === 3 ? m2[1].split("").map((c2) => c2 + c2).join("") : m2[1];
735
- return "#" + h3.toLowerCase();
736
+ const m4 = HEX.exec(raw.trim());
737
+ if (!m4) return null;
738
+ const h4 = m4[1].length === 3 ? m4[1].split("").map((c2) => c2 + c2).join("") : m4[1];
739
+ return "#" + h4.toLowerCase();
736
740
  }
737
- function mixLab(a2, b4, t) {
738
- return { L: a2.L + (b4.L - a2.L) * t, a: a2.a + (b4.a - a2.a) * t, b: a2.b + (b4.b - a2.b) * t };
741
+ function mixLab(a3, b4, t) {
742
+ return { L: a3.L + (b4.L - a3.L) * t, a: a3.a + (b4.a - a3.a) * t, b: a3.b + (b4.b - a3.b) * t };
739
743
  }
740
744
  function paintedOver(fg, canvas, alpha) {
741
745
  const f4 = [1, 3, 5].map((i) => parseInt(fg.slice(i, i + 2), 16));
742
746
  const c2 = [1, 3, 5].map((i) => parseInt(canvas.slice(i, i + 2), 16));
743
- const mixed = f4.map((v2, i) => Math.round(v2 * alpha + c2[i] * (1 - alpha))).map((v2) => v2.toString(16).padStart(2, "0"));
747
+ const mixed = f4.map((v, i) => Math.round(v * alpha + c2[i] * (1 - alpha))).map((v) => v.toString(16).padStart(2, "0"));
744
748
  return hexToLab("#" + mixed.join(""));
745
749
  }
746
750
  function autoRampMinStep(low, high, canvas, classes = AUTO_RAMP_CLASSES, opacity = AUTO_RAMP_DRAWN_OPACITY) {
@@ -755,15 +759,15 @@ function autoRampMinStep(low, high, canvas, classes = AUTO_RAMP_CLASSES, opacity
755
759
  }
756
760
  return min;
757
761
  }
758
- function autoRampCanvas(p2) {
759
- return normHex(p2.backgroundColor) ?? normHex(p2.themeBg) ?? "#ffffff";
762
+ function autoRampCanvas(p4) {
763
+ return normHex(p4.backgroundColor) ?? normHex(p4.themeBg) ?? "#ffffff";
760
764
  }
761
765
  var memoKey = "";
762
766
  var memoValue = { low: "", high: "" };
763
- function resolveAutoColorScale(p2) {
764
- const canvas = autoRampCanvas(p2);
765
- const palette = Array.isArray(p2.palette) ? p2.palette : [];
766
- const key = [canvas, p2.isHighContrast ? 1 : 0, p2.themeAccent ?? "", p2.themeFg ?? "", palette.join(",")].join("|");
767
+ function resolveAutoColorScale(p4) {
768
+ const canvas = autoRampCanvas(p4);
769
+ const palette = Array.isArray(p4.palette) ? p4.palette : [];
770
+ const key = [canvas, p4.isHighContrast ? 1 : 0, p4.themeAccent ?? "", p4.themeFg ?? "", palette.join(",")].join("|");
767
771
  if (key === memoKey) return memoValue;
768
772
  const bg = hexToLab(canvas);
769
773
  const darkCanvas = bg.L < 50;
@@ -771,7 +775,7 @@ function resolveAutoColorScale(p2) {
771
775
  const lab = hex2 ? hexToLab(hex2) : null;
772
776
  return !!lab && deltaE2000(lab, bg) >= MIN_ACCENT_VS_CANVAS;
773
777
  };
774
- const candidates = p2.isHighContrast ? [normHex(p2.themeAccent), normHex(p2.themeFg)] : [...palette.map(normHex), normHex(p2.themeAccent), normHex(p2.themeFg)];
778
+ const candidates = p4.isHighContrast ? [normHex(p4.themeAccent), normHex(p4.themeFg)] : [...palette.map(normHex), normHex(p4.themeAccent), normHex(p4.themeFg)];
775
779
  const accent = candidates.find(usable) ?? FALLBACK_ACCENT;
776
780
  const A4 = hexToLab(accent);
777
781
  let t = 0.1;
@@ -800,15 +804,15 @@ var numberOr = (raw, dflt) => {
800
804
  const n = raw == null || raw === "" ? NaN : Number(raw);
801
805
  return Number.isFinite(n) ? n : dflt;
802
806
  };
803
- function resolveOptions(p2) {
807
+ function resolveOptions(p4) {
804
808
  return {
805
809
  // ---- host fields: pass through exactly as supplied ----
806
- width: p2.width,
807
- height: p2.height,
808
- palette: p2.palette,
809
- geoUnmatched: p2.geoUnmatched,
810
- geo: p2.geo,
811
- geoPoint: p2.geoPoint,
810
+ width: p4.width,
811
+ height: p4.height,
812
+ palette: p4.palette,
813
+ geoUnmatched: p4.geoUnmatched,
814
+ geo: p4.geo,
815
+ geoPoint: p4.geoPoint,
812
816
  // THIRD AND FOURTH OCCURRENCES OF THE animLoopDelaySec OMISSION, found together by
813
817
  // reading the contract against this list rather than by a bug report. geoPointDest is
814
818
  // declared on RenderOptions, passed by the visual and read by the route archetypes, and
@@ -816,16 +820,16 @@ function resolveOptions(p2) {
816
820
  // endpoint" never saw the destination end at all. The guard test at the bottom of
817
821
  // tests/defaults.test.ts now compares the two lists, because four instances of one
818
822
  // omission is a missing check, not four mistakes.
819
- geoPointDest: p2.geoPointDest,
823
+ geoPointDest: p4.geoPointDest,
820
824
  // A host FACT about the data it serialised (contract 1.9.0), passed through untouched.
821
- dateCellsAreUtcDays: p2.dateCellsAreUtcDays,
825
+ dateCellsAreUtcDays: p4.dateCellsAreUtcDays,
822
826
  // NO LONGER A PASS-THROUGH. A host without a Max Map Points setting used to leave this
823
827
  // undefined, and every map chart then fell back to whatever number its own code carried -
824
828
  // 1000 in every archetype written so far - while the offer gate used the server's. One
825
829
  // default here makes the chart and the gate agree in every host. A positive value from
826
830
  // the host wins; absent, blank, zero or junk means the shared default.
827
831
  maxMapPoints: (() => {
828
- const n = numberOr(p2.maxMapPoints, 0);
832
+ const n = numberOr(p4.maxMapPoints, 0);
829
833
  return n > 0 ? Math.round(n) : MAX_MAP_POINTS_DEFAULT;
830
834
  })(),
831
835
  // FIFTH AND SIXTH OCCURRENCES, and the two that argue hardest for the guard test: both
@@ -835,74 +839,74 @@ function resolveOptions(p2) {
835
839
  // 0 is MEANINGFUL for both ("let the chart choose", "no paging"), so numberOr rather than
836
840
  // `|| DEFAULT`, which would turn an explicit 0 into something else. Clamping stays
837
841
  // chart-side for the same reason it does for flipIntervalMs.
838
- geoPointRadiusPx: Math.max(0, numberOr(p2.geoPointRadiusPx, 0)),
839
- pageSize: Math.max(0, numberOr(p2.pageSize, 0)),
840
- uiState: p2.uiState,
841
- setUiState: p2.setUiState,
842
- backgroundColor: p2.backgroundColor,
843
- themeBg: p2.themeBg,
844
- themeFg: p2.themeFg,
845
- isHighContrast: p2.isHighContrast,
846
- themeAccent: p2.themeAccent,
847
- cultureCode: p2.cultureCode,
848
- allowTooltips: p2.allowTooltips,
849
- noDataText: p2.noDataText,
850
- onSelect: p2.onSelect,
842
+ geoPointRadiusPx: Math.max(0, numberOr(p4.geoPointRadiusPx, 0)),
843
+ pageSize: Math.max(0, numberOr(p4.pageSize, 0)),
844
+ uiState: p4.uiState,
845
+ setUiState: p4.setUiState,
846
+ backgroundColor: p4.backgroundColor,
847
+ themeBg: p4.themeBg,
848
+ themeFg: p4.themeFg,
849
+ isHighContrast: p4.isHighContrast,
850
+ themeAccent: p4.themeAccent,
851
+ cultureCode: p4.cultureCode,
852
+ allowTooltips: p4.allowTooltips,
853
+ noDataText: p4.noDataText,
854
+ onSelect: p4.onSelect,
851
855
  // Control gestures (1.10.0). Passed straight through like onSelect: the host owns what a gesture MEANS,
852
856
  // and a host that supplies nothing leaves every control behaving exactly as before.
853
- onControlChange: p2.onControlChange,
857
+ onControlChange: p4.onControlChange,
854
858
  // ---- live-restyle knobs: `raw || undefined` / `.toString() || undefined` ----
855
- colorScaleLow: p2.colorScaleLow || void 0,
856
- colorScaleHigh: p2.colorScaleHigh || void 0,
859
+ colorScaleLow: p4.colorScaleLow || void 0,
860
+ colorScaleHigh: p4.colorScaleHigh || void 0,
857
861
  // DERIVED, never passed: the automatic ends a blank picker stands for, resolved from the
858
862
  // same palette and canvas the chart is handed on this render (autoRamp.ts).
859
- colorScaleAutoLow: resolveAutoColorScale(p2).low,
860
- colorScaleAutoHigh: resolveAutoColorScale(p2).high,
863
+ colorScaleAutoLow: resolveAutoColorScale(p4).low,
864
+ colorScaleAutoHigh: resolveAutoColorScale(p4).high,
861
865
  // "" (global, the default), "frame", or "self"; anything else fails open to global.
862
- colorScaleScope: p2.colorScaleScope === "frame" || p2.colorScaleScope === "self" ? p2.colorScaleScope : "",
866
+ colorScaleScope: p4.colorScaleScope === "frame" || p4.colorScaleScope === "self" ? p4.colorScaleScope : "",
863
867
  // Math.max(50, Math.min(100, Number(raw) || 95)) — only meaningful under "self".
864
- colorScaleSelfClampPct: clamp(Number(p2.colorScaleSelfClampPct) || COLOR_SCALE_SELF_CLAMP_PCT_DEFAULT, COLOR_SCALE_SELF_CLAMP_PCT_MIN, COLOR_SCALE_SELF_CLAMP_PCT_MAX),
868
+ colorScaleSelfClampPct: clamp(Number(p4.colorScaleSelfClampPct) || COLOR_SCALE_SELF_CLAMP_PCT_DEFAULT, COLOR_SCALE_SELF_CLAMP_PCT_MIN, COLOR_SCALE_SELF_CLAMP_PCT_MAX),
865
869
  // Map fills: `raw || undefined` like the colour-scale endpoints. The no-data ->
866
870
  // land cascade is left to the chart (so the fallback chain is visible in the
867
871
  // generated code); HC substitution has already happened in the caller.
868
- geoLandColor: p2.geoLandColor || void 0,
869
- geoNoDataColor: p2.geoNoDataColor || void 0,
870
- aggregation: (p2.aggregation == null ? "" : String(p2.aggregation)) || void 0,
872
+ geoLandColor: p4.geoLandColor || void 0,
873
+ geoNoDataColor: p4.geoNoDataColor || void 0,
874
+ aggregation: (p4.aggregation == null ? "" : String(p4.aggregation)) || void 0,
871
875
  // A recognised value wins, anything else falls to the default: an unknown string must
872
876
  // never reach a chart as a live mode. Both of these are read on EVERY render, so a
873
877
  // reader can change their mind about a cached chart without regenerating it.
874
878
  approximatePositions: (() => {
875
- const v2 = (p2.approximatePositions == null ? "" : String(p2.approximatePositions)).toLowerCase();
876
- return v2 === "mark" || v2 === "aggregate" || v2 === "skip" ? v2 : APPROXIMATE_POSITIONS_DEFAULT;
879
+ const v = (p4.approximatePositions == null ? "" : String(p4.approximatePositions)).toLowerCase();
880
+ return v === "mark" || v === "aggregate" || v === "skip" ? v : APPROXIMATE_POSITIONS_DEFAULT;
877
881
  })(),
878
882
  valueAxisBaseline: (() => {
879
- const v2 = (p2.valueAxisBaseline == null ? "" : String(p2.valueAxisBaseline)).toLowerCase();
880
- return v2 === "zero" || v2 === "fit" || v2 === "auto" ? v2 : VALUE_AXIS_BASELINE_DEFAULT;
883
+ const v = (p4.valueAxisBaseline == null ? "" : String(p4.valueAxisBaseline)).toLowerCase();
884
+ return v === "zero" || v === "fit" || v === "auto" ? v : VALUE_AXIS_BASELINE_DEFAULT;
881
885
  })(),
882
886
  // Same shape, and the same reason for it: an unrecognised string must never reach a chart
883
887
  // as a live mode. Failing open to "auto" is the conservative direction here — "auto" is
884
888
  // the setting that makes the chart PROVE the grid before it names a period, so a garbled
885
889
  // value withdraws the claim rather than asserting one.
886
890
  seasonalMarkers: (() => {
887
- const v2 = (p2.seasonalMarkers == null ? "" : String(p2.seasonalMarkers)).toLowerCase();
888
- return v2 === "auto" || v2 === "always" || v2 === "never" ? v2 : SEASONAL_MARKERS_DEFAULT;
891
+ const v = (p4.seasonalMarkers == null ? "" : String(p4.seasonalMarkers)).toLowerCase();
892
+ return v === "auto" || v === "always" || v === "never" ? v : SEASONAL_MARKERS_DEFAULT;
889
893
  })(),
890
894
  // ---- animation: booleans, default+clamp numerics, "" default enum ----
891
- animAutoPlay: !!p2.animAutoPlay,
895
+ animAutoPlay: !!p4.animAutoPlay,
892
896
  // Math.max(250, Math.min(5000, Number(raw) || 1000))
893
- animPlaySpeedMs: clamp(Number(p2.animPlaySpeedMs) || ANIM_PLAY_SPEED_DEFAULT, ANIM_PLAY_SPEED_MIN, ANIM_PLAY_SPEED_MAX),
897
+ animPlaySpeedMs: clamp(Number(p4.animPlaySpeedMs) || ANIM_PLAY_SPEED_DEFAULT, ANIM_PLAY_SPEED_MIN, ANIM_PLAY_SPEED_MAX),
894
898
  // Loop-restart delay (seconds on the overview between auto-play passes).
895
899
  // Floored at 0, deliberately NO upper clamp (huge = play once per viewing),
896
900
  // and 0 must survive as 0 — hence numberOr, not `|| DEFAULT`. This field was
897
901
  // MISSING from the resolve list when the assembly moved here, so callers
898
902
  // that passed it saw it dropped: the scrubber read undefined -> 0 -> every
899
903
  // pass restarted instantly and resumed-state auto-play lost its pacing.
900
- animLoopDelaySec: Math.max(ANIM_LOOP_DELAY_MIN, numberOr(p2.animLoopDelaySec, ANIM_LOOP_DELAY_DEFAULT)),
904
+ animLoopDelaySec: Math.max(ANIM_LOOP_DELAY_MIN, numberOr(p4.animLoopDelaySec, ANIM_LOOP_DELAY_DEFAULT)),
901
905
  // Math.max(3, Math.min(500, Number(raw) || 60))
902
- animMaxIdealFrames: clamp(Number(p2.animMaxIdealFrames) || ANIM_MAX_IDEAL_FRAMES_DEFAULT, ANIM_MAX_IDEAL_FRAMES_MIN, ANIM_MAX_IDEAL_FRAMES_MAX),
903
- animStopAtEnd: !!p2.animStopAtEnd,
904
- filtersDuringPlay: !!p2.filtersDuringPlay,
905
- animTimelineStyle: (p2.animTimelineStyle || "").toString(),
906
+ animMaxIdealFrames: clamp(Number(p4.animMaxIdealFrames) || ANIM_MAX_IDEAL_FRAMES_DEFAULT, ANIM_MAX_IDEAL_FRAMES_MIN, ANIM_MAX_IDEAL_FRAMES_MAX),
907
+ animStopAtEnd: !!p4.animStopAtEnd,
908
+ filtersDuringPlay: !!p4.filtersDuringPlay,
909
+ animTimelineStyle: (p4.animTimelineStyle || "").toString(),
906
910
  // ---- card deck ----
907
911
  // SECOND OCCURRENCE OF THE animLoopDelaySec BUG, six lines above (2026-08-13). The
908
912
  // visual passed both of these, the generated code read both correctly, and this
@@ -915,7 +919,7 @@ function resolveOptions(p2) {
915
919
  // flipSync DEFAULTS TRUE, so it cannot use `!!p.flipSync` — that would read a missing
916
920
  // value as "independent" and hand every deck twelve control strips. Absent means
917
921
  // synced; only an explicit false switches it.
918
- flipSync: p2.flipSync === void 0 || p2.flipSync === null ? true : !!p2.flipSync,
922
+ flipSync: p4.flipSync === void 0 || p4.flipSync === null ? true : !!p4.flipSync,
919
923
  // WHERE the controls live, which is a different question from whether the cards move
920
924
  // together (2026-08-13: "the ability to flip individual cards shouldn't necessarily
921
925
  // stop being able to flip all together too"). Resolution order matters and is the whole
@@ -928,22 +932,28 @@ function resolveOptions(p2) {
928
932
  // because a newer client shipped, and "both" would have done exactly that to every deck
929
933
  // already in a report.
930
934
  flipMode: (() => {
931
- const m2 = (p2.flipMode == null ? "" : String(p2.flipMode)).toLowerCase();
932
- if (m2 === "single" || m2 === "all" || m2 === "both") return m2;
933
- if (p2.flipSync === false) return "single";
934
- if (p2.flipSync === true) return "all";
935
+ const m4 = (p4.flipMode == null ? "" : String(p4.flipMode)).toLowerCase();
936
+ if (m4 === "single" || m4 === "all" || m4 === "both") return m4;
937
+ if (p4.flipSync === false) return "single";
938
+ if (p4.flipSync === true) return "all";
935
939
  return FLIP_MODE_DEFAULT;
936
940
  })(),
937
- // 0 is MEANINGFUL here (manual only) and is the default, so numberOr — not
938
- // `|| DEFAULT` — for the same reason animLoopDelaySec uses it. Clamping stays
939
- // chart-side: the archetype already clamps 500..120000 and two clamps in two
941
+ // 0 is MEANINGFUL here (manual only), so numberOr — not `|| DEFAULT` — for the same
942
+ // reason animLoopDelaySec uses it. UNSET STAYS UNSET (undefined), because the default is
943
+ // the CHART's, not this function's: the card deck reads `+(x || 0)` and is manual, a
944
+ // carousel reads `x == null ? 5000 : +x` and turns by itself. Resolving unset to 0 here
945
+ // made the carousel's default unreachable - every host handed it an explicit "manual".
946
+ // Clamping stays chart-side too: the archetypes clamp 500..120000, and two clamps in two
940
947
  // repositories is how they end up disagreeing.
941
- flipIntervalMs: Math.max(0, numberOr(p2.flipIntervalMs, 0)),
948
+ flipIntervalMs: (() => {
949
+ const n = numberOr(p4.flipIntervalMs, NaN);
950
+ return Number.isFinite(n) ? Math.max(0, n) : void 0;
951
+ })(),
942
952
  // `raw || undefined`, the same idiom as the colour-scale endpoints and the map fills:
943
953
  // blank must arrive as ABSENT, not as an empty string, because the chart's fallback is
944
954
  // `options.cardBackgroundColor || <its own choice>` and "" would satisfy a truthiness
945
955
  // test in some hands while painting nothing in others.
946
- cardBackgroundColor: p2.cardBackgroundColor || void 0
956
+ cardBackgroundColor: p4.cardBackgroundColor || void 0
947
957
  };
948
958
  }
949
959
 
@@ -1032,320 +1042,429 @@ function clearGeoCache() {
1032
1042
  /*! @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. */
1033
1043
  var a = "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";
1034
1044
 
1035
- // ../shape-core/dist/chunk-TPVDJHU6.mjs
1045
+ // ../shape-core/dist/chunk-5HI6TVMM.mjs
1036
1046
  /*! @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. */
1037
- var H = "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";
1038
- var X = "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";
1039
- var k = "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";
1040
- var W = { \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" };
1041
- function u(n) {
1042
- return n.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase().replace(/[øœæßłđðþıħŧŋəĸ]/g, (e) => W[e]).replace(/[^\p{L}\p{Nd}\s]/gu, " ").replace(/\s+/g, " ").trim();
1043
- }
1044
- var _ = "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";
1045
- var N = (() => {
1047
+ var s = 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" });
1048
+ var u = new RegExp(`[${Object.keys(s).join("")}]`, "gu");
1049
+ function g(t) {
1050
+ return t.replace(u, (e) => s[e] ?? e);
1051
+ }
1052
+ function l(t) {
1053
+ return t == null ? "" : g(String(t).replace(/\p{No}/gu, " ").normalize("NFKD").replace(/\p{Diacritic}/gu, "").toLowerCase()).replace(/&/g, "and").replace(/[^\p{L}\p{Nd}]/gu, "");
1054
+ }
1055
+ var p = 4;
1056
+ function o(t) {
1057
+ return t.length >= p;
1058
+ }
1059
+ var a2 = class {
1060
+ constructor(e = (n, r2) => n === r2) {
1061
+ this.same = e;
1062
+ }
1063
+ same;
1064
+ map = /* @__PURE__ */ new Map();
1065
+ add(e, n) {
1066
+ let r2 = l(e);
1067
+ if (!o(r2)) return;
1068
+ let i = this.map.get(r2);
1069
+ if (!i) {
1070
+ this.map.set(r2, { value: n, ambiguous: false });
1071
+ return;
1072
+ }
1073
+ !i.ambiguous && !this.same(i.value, n) && (i.ambiguous = true);
1074
+ }
1075
+ get(e) {
1076
+ if (!o(e)) return;
1077
+ let n = this.map.get(e);
1078
+ return n && !n.ambiguous ? n.value : void 0;
1079
+ }
1080
+ isAmbiguous(e) {
1081
+ return this.map.get(e)?.ambiguous === true;
1082
+ }
1083
+ entries() {
1084
+ return Array.from(this.map.entries());
1085
+ }
1086
+ };
1087
+
1088
+ // ../shape-core/dist/chunk-INMDBTAR.mjs
1089
+ /*! @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. */
1090
+ var J = "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";
1091
+ var Q = "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";
1092
+ var j = "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";
1093
+ var $ = /* @__PURE__ */ new Set(["n a", "none", "null", "nil", "unknown", "not applicable", "not available", "not specified", "unspecified", "missing", "blank", "empty", "tbd", "to be determined"]);
1094
+ var s3 = new Set(Array.from($).filter((n) => n.includes(" ") && n !== "n a").map((n) => n.replace(/ /g, "")));
1095
+ function m(n) {
1096
+ return n ? $.has(n) || s3.has(n.replace(/ /g, "")) : true;
1097
+ }
1098
+ var D3 = 80;
1099
+ function u2(n) {
1100
+ return g(n.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase()).replace(/[^\p{L}\p{Nd}\s]/gu, " ").replace(/\s+/g, " ").trim();
1101
+ }
1102
+ function R(n) {
1103
+ return l(n);
1104
+ }
1105
+ var l3 = "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";
1106
+ var L = (() => {
1046
1107
  let n = /* @__PURE__ */ new Map();
1047
- for (let e of _.split(",")) {
1048
- let [t, o2] = e.split(" ");
1049
- t && o2 && n.set(t, o2);
1108
+ for (let e of l3.split(",")) {
1109
+ let [t, o4] = e.split(" ");
1110
+ t && o4 && n.set(t, o4);
1050
1111
  }
1051
1112
  return n;
1052
1113
  })();
1053
- var z = new Set(N.keys());
1054
- var J = new Set(N.values());
1055
- var v = ["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"];
1056
- var Q = { 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" };
1057
- var b = null;
1058
- function j() {
1059
- if (b) return b;
1060
- let n = /* @__PURE__ */ new Map(), e = ["en", ...v.filter((t) => t !== "en")];
1061
- for (let t of e) {
1062
- let o2 = null;
1114
+ var u3 = new Set(L.keys());
1115
+ var c3 = new Set(L.values());
1116
+ var M3 = ["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"];
1117
+ var S3 = { 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" };
1118
+ var d3 = 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" });
1119
+ var X = null;
1120
+ var x = null;
1121
+ function q() {
1122
+ if (X) return X;
1123
+ let n = /* @__PURE__ */ new Map(), e = [], t = ["en", ...M3.filter((i) => i !== "en")];
1124
+ for (let i of t) {
1125
+ let a3 = null;
1063
1126
  try {
1064
- o2 = new Intl.DisplayNames([t], { type: "region" });
1127
+ a3 = new Intl.DisplayNames([i], { type: "region" });
1065
1128
  } catch {
1066
1129
  continue;
1067
1130
  }
1068
- for (let [i, r2] of N) {
1069
- let a2;
1131
+ for (let [r2, s2] of L) {
1132
+ let c2;
1070
1133
  try {
1071
- a2 = o2.of(i);
1134
+ c2 = a3.of(r2);
1072
1135
  } catch {
1073
- a2 = void 0;
1136
+ c2 = void 0;
1074
1137
  }
1075
- if (!a2 || a2 === i) continue;
1076
- let s = u(a2);
1077
- s && !n.has(s) && n.set(s, r2);
1138
+ if (!c2 || c2 === r2) continue;
1139
+ let d2 = u2(c2);
1140
+ d2 && !n.has(d2) && n.set(d2, s2), e.push([c2, s2]);
1078
1141
  }
1079
1142
  }
1080
- for (let [t, o2] of Object.entries(Q)) {
1081
- let i = u(t);
1082
- i && n.set(i, o2);
1143
+ for (let [i, a3] of Object.entries(d3)) {
1144
+ let r2 = u2(i);
1145
+ r2 && !n.has(r2) && n.set(r2, a3), e.push([i, a3]);
1083
1146
  }
1084
- return b = n, n;
1147
+ for (let [i, a3] of Object.entries(S3)) {
1148
+ let r2 = u2(i);
1149
+ r2 && n.set(r2, a3), e.push([i, a3]);
1150
+ }
1151
+ let o4 = new a2();
1152
+ for (let [i, a3] of e) {
1153
+ let r2 = u2(i);
1154
+ n.get(r2) === a3 && (o4.add(i, a3), o4.add(r2, a3));
1155
+ }
1156
+ return X = n, x = o4, n;
1085
1157
  }
1086
- function T(n) {
1087
- return N.get(String(n || "").trim().toUpperCase()) ?? null;
1158
+ function f3() {
1159
+ return x || q(), x;
1088
1160
  }
1089
- function E(n) {
1161
+ function p3(n) {
1090
1162
  if (n == null) return null;
1091
1163
  let e = String(n).trim();
1092
1164
  if (!e) return null;
1093
- let t = e.toUpperCase();
1094
- return t.length === 3 && J.has(t) ? t : t.length === 2 && z.has(t) ? N.get(t) ?? null : j().get(u(e)) ?? null;
1165
+ let t = u2(e), o4 = q().get(t);
1166
+ return o4 || (m(t) ? null : f3().get(R(e)) ?? null);
1095
1167
  }
1096
- var $ = /* @__PURE__ */ new Set(["n a", "none", "null", "nil", "unknown", "not applicable", "not available", "not specified", "unspecified", "missing", "blank", "empty", "tbd", "to be determined"]);
1097
- function V(n) {
1098
- return n ? $.has(n) : true;
1168
+ function G(n) {
1169
+ return L.get(String(n || "").trim().toUpperCase()) ?? null;
1170
+ }
1171
+ function k(n) {
1172
+ if (n == null) return null;
1173
+ let e = String(n).trim();
1174
+ if (!e) return null;
1175
+ let t = e.toUpperCase();
1176
+ return t.length === 3 && c3.has(t) ? t : t.length === 2 && u3.has(t) ? L.get(t) ?? null : p3(e);
1099
1177
  }
1100
- var m3 = 80;
1101
- var q = { "north-america": "N", world: "W" };
1102
- function F(n, e) {
1103
- let t = n.filter((o2) => o2.row.kinds.includes(q[e || "north-america"]));
1178
+ var A3 = { "north-america": "N", world: "W" };
1179
+ function _(n, e) {
1180
+ let t = n.filter((o4) => o4.row.kinds.includes(A3[e || "north-america"]));
1104
1181
  return t.length ? t : (e || "north-america") === "world" ? n : t;
1105
1182
  }
1106
- var P = a;
1107
- function L3(n) {
1108
- n !== P && (P = n || "", U = null, L = null, I = null);
1109
- }
1110
- function n3() {
1111
- return P.length > 0;
1112
- }
1113
- var t3 = { 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" };
1114
- var U = null;
1115
- function y() {
1116
- if (U) return U;
1117
- let n = /* @__PURE__ */ new Map(), e = P, t = (o2, i, r2) => {
1118
- if (!o2) return;
1119
- let a2 = n.get(o2);
1120
- a2 ? a2.some((s) => s.row === i) || a2.push({ row: i, primary: r2 }) : n.set(o2, [{ row: i, primary: r2 }]);
1183
+ var O = a;
1184
+ function _3(n) {
1185
+ n !== O && (O = n || "", P = null, h = null, B = null, E = null, K = null);
1186
+ }
1187
+ function C3() {
1188
+ return O.length > 0;
1189
+ }
1190
+ var g3 = { 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" };
1191
+ var P = null;
1192
+ function U() {
1193
+ if (P) return P;
1194
+ let n = /* @__PURE__ */ new Map(), e = O, t = (o4, i, a3) => {
1195
+ if (!o4) return;
1196
+ let r2 = n.get(o4);
1197
+ r2 ? r2.some((s2) => s2.row === i) || r2.push({ row: i, primary: a3 }) : n.set(o4, [{ row: i, primary: a3 }]);
1121
1198
  };
1122
- for (let o2 of e.split(",")) {
1123
- let i = o2.split("|");
1199
+ for (let o4 of e.split(",")) {
1200
+ let i = o4.split("|");
1124
1201
  if (i.length < 7) continue;
1125
- let r2 = { a1: i[1], cc: i[2], lon: +i[3], lat: +i[4], pop: +i[5], kinds: i[6] || "N" };
1126
- i.length > 8 && i[8] && (r2.tags = i[8].split(";").filter(Boolean));
1127
- let a2 = t3[r2.cc];
1128
- if (a2 && u(i[0]) === a2 && (r2.tags || (r2.tags = []), r2.tags.includes("capital") || r2.tags.push("capital")), t(u(i[0]), r2, true), i.length > 7 && i[7]) for (let s of i[7].split(";")) t(u(s), r2, false);
1202
+ let a3 = { a1: i[1], cc: i[2], lon: +i[3], lat: +i[4], pop: +i[5], kinds: i[6] || "N" };
1203
+ i.length > 8 && i[8] && (a3.tags = i[8].split(";").filter(Boolean));
1204
+ let r2 = g3[a3.cc];
1205
+ if (r2 && l(i[0]) === l(r2) && (a3.tags || (a3.tags = []), a3.tags.includes("capital") || a3.tags.push("capital")), t(u2(i[0]), a3, true), i.length > 7 && i[7]) for (let s2 of i[7].split(";")) t(u2(s2), a3, false);
1129
1206
  }
1130
- for (let o2 of n.values()) o2.sort((i, r2) => r2.row.pop - i.row.pop);
1131
- return U = n, n;
1207
+ for (let o4 of n.values()) o4.sort((i, a3) => a3.row.pop - i.row.pop);
1208
+ return P = n, n;
1132
1209
  }
1133
- var e3 = 200;
1134
- var L = null;
1210
+ var m3 = 200;
1211
+ var h = null;
1135
1212
  function i3() {
1136
- if (L) return L;
1213
+ if (h) return h;
1137
1214
  let n = /* @__PURE__ */ new Map();
1138
- for (let [e, t] of y()) {
1215
+ for (let [e, t] of U()) {
1139
1216
  if (!e.endsWith(" city")) continue;
1140
- let o2 = e.slice(0, -5);
1141
- !o2 || y().get(o2)?.some((i) => i.primary) || t[0].row.pop < e3 || n.set(o2, t);
1217
+ let o4 = e.slice(0, -5);
1218
+ !o4 || U().get(o4)?.some((i) => i.primary) || t[0].row.pop < m3 || n.set(o4, t);
1142
1219
  }
1143
- return L = n, n;
1220
+ return h = n, n;
1144
1221
  }
1145
- function O(n) {
1222
+ function D(n, e) {
1146
1223
  if (!n) return;
1147
- let e = y().get(n);
1148
- if (e?.some((i) => i.primary)) return e;
1149
- let t = i3().get(n);
1150
- if (!t) return e;
1151
- let o2 = t.map((i) => ({ row: i.row, primary: true }));
1152
- return e ? [...o2, ...e] : o2;
1153
- }
1154
- var I = null;
1155
- function o3() {
1156
- if (I) return I;
1224
+ let t = n3(U(), i3(), n);
1225
+ if (t) return t;
1226
+ if (m(n)) return;
1227
+ let o4 = e ?? l(n);
1228
+ if (o(o4)) return n3(R3(), N3(), o4);
1229
+ }
1230
+ function n3(n, e, t) {
1231
+ let o4 = n.get(t);
1232
+ if (o4?.some((r2) => r2.primary)) return o4;
1233
+ let i = e.get(t);
1234
+ if (!i) return o4;
1235
+ let a3 = i.map((r2) => ({ row: r2.row, primary: true }));
1236
+ return o4 ? [...a3, ...o4] : a3;
1237
+ }
1238
+ var B = null;
1239
+ function R3() {
1240
+ return B || (B = o3(U())), B;
1241
+ }
1242
+ var E = null;
1243
+ function N3() {
1244
+ return E || (E = o3(i3())), E;
1245
+ }
1246
+ function o3(n) {
1247
+ let e = /* @__PURE__ */ new Map();
1248
+ for (let [t, o4] of n) {
1249
+ let i = l(t);
1250
+ if (!o(i)) continue;
1251
+ let a3 = e.get(i);
1252
+ if (!a3) {
1253
+ e.set(i, o4.slice());
1254
+ continue;
1255
+ }
1256
+ for (let r2 of o4) {
1257
+ let s2 = a3.findIndex((c2) => c2.row === r2.row);
1258
+ s2 < 0 ? a3.push(r2) : r2.primary && !a3[s2].primary && (a3[s2] = r2);
1259
+ }
1260
+ }
1261
+ for (let t of e.values()) t.sort((o4, i) => i.row.pop - o4.row.pop);
1262
+ return e;
1263
+ }
1264
+ var K = null;
1265
+ function T3() {
1266
+ if (K) return K;
1157
1267
  let n = /* @__PURE__ */ new Map();
1158
- for (let t of k.split(",")) {
1159
- let o2 = t.split("|");
1160
- o2.length < 3 || n.set(o2[0], { lon: +o2[1], lat: +o2[2] });
1268
+ for (let t of j.split(",")) {
1269
+ let o4 = t.split("|");
1270
+ o4.length < 3 || n.set(o4[0], { lon: +o4[1], lat: +o4[2] });
1161
1271
  }
1162
1272
  let e = /* @__PURE__ */ new Map();
1163
- for (let t of y().values()) for (let o2 of t) {
1164
- let i = T(o2.row.cc);
1273
+ for (let t of U().values()) for (let o4 of t) {
1274
+ let i = G(o4.row.cc);
1165
1275
  if (!i) continue;
1166
- let r2 = e.get(i);
1167
- (r2 === void 0 || o2.row.pop > r2) && (e.set(i, o2.row.pop), n.set(i, { lon: o2.row.lon, lat: o2.row.lat }));
1276
+ let a3 = e.get(i);
1277
+ (a3 === void 0 || o4.row.pop > a3) && (e.set(i, o4.row.pop), n.set(i, { lon: o4.row.lon, lat: o4.row.lat }));
1168
1278
  }
1169
- return I = n, n;
1279
+ return K = n, n;
1170
1280
  }
1171
- var h = null;
1172
- function D() {
1173
- if (h) return h;
1281
+ var V = null;
1282
+ function w() {
1283
+ if (V) return V;
1174
1284
  let n = /* @__PURE__ */ new Map();
1175
- for (let e of H.split(",")) {
1285
+ for (let e of J.split(",")) {
1176
1286
  let t = e.split("|");
1177
1287
  if (t.length < 5) continue;
1178
- let o2 = { key: t[0], cc: t[1], name: t[2], lon: +t[3], lat: +t[4] };
1179
- n.set(u(o2.key), o2);
1180
- let i = u(o2.name);
1181
- i === "mexico" && o2.cc === "MX" ? (n.set("estado de mexico", o2), n.set("edomex", o2)) : n.set(i, o2);
1288
+ let o4 = { key: t[0], cc: t[1], name: t[2], lon: +t[3], lat: +t[4] };
1289
+ n.set(u2(o4.key), o4);
1290
+ let i = u2(o4.name);
1291
+ i === "mexico" && o4.cc === "MX" ? (n.set("estado de mexico", o4), n.set("edomex", o4)) : n.set(i, o4);
1182
1292
  }
1183
- return h = n, n;
1184
- }
1185
- var B = null;
1186
- function a3() {
1187
- if (B) return B;
1293
+ return V = n, n;
1294
+ }
1295
+ var F = null;
1296
+ function y3() {
1297
+ if (F) return F;
1298
+ let n = new a2();
1299
+ for (let [e, t] of w()) n.add(e, t);
1300
+ return F = n, n;
1301
+ }
1302
+ var Y = null;
1303
+ function I3() {
1304
+ if (Y) return Y;
1188
1305
  let n = /* @__PURE__ */ new Map();
1189
- for (let e of X.split(",")) {
1306
+ for (let e of Q.split(",")) {
1190
1307
  let t = e.split("|");
1191
1308
  t.length < 3 || n.set(t[0], { lon: +t[1], lat: +t[2] });
1192
1309
  }
1193
- return B = n, n;
1310
+ return Y = n, n;
1194
1311
  }
1195
- var r3 = /* @__PURE__ */ new Set(["USA", "PRI", "VIR", "GUM", "ASM", "MNP"]);
1196
- var s3 = /* @__PURE__ */ new Set(["USA", "CAN", "MEX"]);
1197
- function Y(n) {
1312
+ var L3 = /* @__PURE__ */ new Set(["USA", "PRI", "VIR", "GUM", "ASM", "MNP"]);
1313
+ var G3 = /* @__PURE__ */ new Set(["USA", "CAN", "MEX"]);
1314
+ function t3(n) {
1198
1315
  if (n == null) return null;
1199
- let e = u(String(n));
1200
- return e ? D().get(e)?.key ?? null : null;
1316
+ let e = u2(String(n));
1317
+ if (!e) return null;
1318
+ let t = w().get(e);
1319
+ return t ? t.key : m(e) ? null : y3().get(R(String(n)))?.key ?? null;
1201
1320
  }
1202
- function u3(n) {
1203
- return D().get(u(n))?.cc ?? null;
1321
+ function b3(n) {
1322
+ return w().get(u2(n))?.cc ?? null;
1204
1323
  }
1205
- function c3(n) {
1206
- let e = u3(n);
1207
- return e ? T(e) : null;
1324
+ function P3(n) {
1325
+ let e = b3(n);
1326
+ return e ? G(e) : null;
1208
1327
  }
1209
- function M3(n) {
1328
+ function h3(n) {
1210
1329
  if (n == null) return null;
1211
1330
  let e = String(n).trim().replace(/\.0+$/, "");
1212
1331
  if (!e) return null;
1213
1332
  let t = /^(\d{5})(-\d{4})?$/.exec(e);
1214
1333
  return t ? t[1] : /^\d{3,4}$/.test(e) ? e.padStart(5, "0") : null;
1215
1334
  }
1216
- function Z(n) {
1335
+ function r3(n) {
1217
1336
  if (n == null) return [];
1218
1337
  let e = String(n).trim().replace(/\.0+$/, "");
1219
1338
  if (!e) return [];
1220
1339
  if (/^\d{3}$/.test(e)) {
1221
- let o2 = e.padStart(5, "0").slice(0, 3);
1222
- return o2 === e ? [e] : [e, o2];
1340
+ let o4 = e.padStart(5, "0").slice(0, 3);
1341
+ return o4 === e ? [e] : [e, o4];
1223
1342
  }
1224
- let t = M3(e);
1343
+ let t = h3(e);
1225
1344
  return t ? [t.slice(0, 3)] : [];
1226
1345
  }
1227
- function S3(n) {
1346
+ function B3(n) {
1228
1347
  return !!n && n.ambiguous === true && !("precision" in n);
1229
1348
  }
1230
- function A3(n) {
1231
- let e = null, t = typeof n.lat == "string" ? n.lat.trim() : n.lat, o2 = typeof n.lon == "string" ? n.lon.trim() : n.lon;
1232
- if (t != null && t !== "" && o2 !== void 0 && o2 !== null && o2 !== "") {
1233
- let a2 = +t, s = +o2;
1234
- if (isFinite(a2) && isFinite(s) && a2 >= -90 && a2 <= 90 && s >= -180 && s <= 180) if (a2 === 0 && s === 0) e = { lat: 0, lon: 0, precision: "latlon" };
1235
- else return { lat: a2, lon: s, precision: "latlon" };
1349
+ function E3(n) {
1350
+ let e = null, t = typeof n.lat == "string" ? n.lat.trim() : n.lat, o4 = typeof n.lon == "string" ? n.lon.trim() : n.lon;
1351
+ if (t != null && t !== "" && o4 !== void 0 && o4 !== null && o4 !== "") {
1352
+ let r2 = +t, s2 = +o4;
1353
+ if (isFinite(r2) && isFinite(s2) && r2 >= -90 && r2 <= 90 && s2 >= -180 && s2 <= 180) if (r2 === 0 && s2 === 0) e = { lat: 0, lon: 0, precision: "latlon" };
1354
+ else return { lat: r2, lon: s2, precision: "latlon" };
1236
1355
  }
1237
- let i = E(n.country), r2 = Y(n.state);
1238
- if (r2 && i && c3(r2) !== i && (r2 = null), n.city !== void 0 && n.city !== null) {
1239
- let a2 = u(String(n.city)), s = O(a2), f4 = s ? F(s, n.mapKind) : null;
1240
- if (f4 && f4.length) {
1241
- let d2 = n.state === void 0 || n.state === null ? "" : String(n.state).trim(), R2 = d2 ? u(d2) : "", g3 = d2 ? Y(d2) : null, S2 = [], m2 = -1;
1242
- for (let c2 of f4) {
1243
- let l = c2.row, A4 = 0;
1244
- if (d2 && l.a1 !== "") if (g3 && l.a1 === g3 || u(l.a1) === R2) A4++;
1356
+ let i = k(n.country), a3 = t3(n.state);
1357
+ if (a3 && i && P3(a3) !== i && (a3 = null), n.city !== void 0 && n.city !== null) {
1358
+ let r2 = u2(String(n.city)), s2 = D(r2, R(String(n.city))), c2 = s2 ? _(s2, n.mapKind) : null;
1359
+ if (c2 && c2.length) {
1360
+ let d2 = n.state === void 0 || n.state === null ? "" : String(n.state).trim(), T = d2 ? u2(d2) : "", y2 = d2 ? t3(d2) : null, f4 = [], N = -1;
1361
+ for (let M2 of c2) {
1362
+ let l2 = M2.row, p4 = 0;
1363
+ if (d2 && l2.a1 !== "") if (y2 && l2.a1 === y2 || u2(l2.a1) === T) p4++;
1245
1364
  else continue;
1246
- if (i) if (T(l.cc) === i) A4++;
1365
+ if (i) if (G(l2.cc) === i) p4++;
1247
1366
  else continue;
1248
- A4 > m2 ? (m2 = A4, S2 = [c2]) : A4 === m2 && S2.push(c2);
1367
+ p4 > N ? (N = p4, f4 = [M2]) : p4 === N && f4.push(M2);
1249
1368
  }
1250
- S2.some((c2) => c2.primary) && (S2 = S2.filter((c2) => c2.primary));
1251
- let p2 = /* @__PURE__ */ new Map();
1252
- for (let c2 of S2) p2.set(c2.row.lon.toFixed(2) + "," + c2.row.lat.toFixed(2), c2.row);
1253
- if (p2.size === 1) {
1254
- let c2 = S2[0].row;
1255
- return { lat: c2.lat, lon: c2.lon, precision: "city" };
1369
+ f4.some((M2) => M2.primary) && (f4 = f4.filter((M2) => M2.primary));
1370
+ let A4 = /* @__PURE__ */ new Map();
1371
+ for (let M2 of f4) A4.set(M2.row.lon.toFixed(2) + "," + M2.row.lat.toFixed(2), M2.row);
1372
+ if (A4.size === 1) {
1373
+ let M2 = f4[0].row;
1374
+ return { lat: M2.lat, lon: M2.lon, precision: "city" };
1256
1375
  }
1257
- if (p2.size > 1) return { ambiguous: true, matches: p2.size };
1376
+ if (A4.size > 1) return { ambiguous: true, matches: A4.size };
1258
1377
  }
1259
1378
  }
1260
- if (!i || r3.has(i)) for (let a2 of Z(n.zip)) {
1261
- let s = a3().get(a2);
1262
- if (s) return { lat: s.lat, lon: s.lon, precision: "zip3" };
1379
+ if (!i || L3.has(i)) for (let r2 of r3(n.zip)) {
1380
+ let s2 = I3().get(r2);
1381
+ if (s2) return { lat: s2.lat, lon: s2.lon, precision: "zip3" };
1263
1382
  }
1264
- if (r2) {
1265
- let a2 = D().get(u(r2));
1266
- if (a2) return { lat: a2.lat, lon: a2.lon, precision: "state" };
1383
+ if (a3) {
1384
+ let r2 = w().get(u2(a3));
1385
+ if (r2) return { lat: r2.lat, lon: r2.lon, precision: "state" };
1267
1386
  }
1268
- if (i && (n.mapKind !== "north-america" || s3.has(i))) {
1269
- let a2 = o3().get(i);
1270
- if (a2) return { lat: a2.lat, lon: a2.lon, precision: "country" };
1387
+ if (i && (n.mapKind !== "north-america" || G3.has(i))) {
1388
+ let r2 = T3().get(i);
1389
+ if (r2) return { lat: r2.lat, lon: r2.lon, precision: "country" };
1271
1390
  }
1272
1391
  return e;
1273
1392
  }
1274
- var G = { latlon: 0, city: 1, zip3: 2, state: 3, country: 4 };
1275
- var x = 8;
1276
- function y3(n, e) {
1277
- let t = new Array(n.length), o2 = new Array(n.length), i = new Array(n.length), r2 = /* @__PURE__ */ new Set(), a2 = [], s = /* @__PURE__ */ new Set(), f4 = [], d2 = /* @__PURE__ */ new Set(), R2 = [], g3 = { latlon: 0, city: 0, zip3: 0, state: 0, country: 0 }, S2 = 0, m2 = 0, p2 = null;
1278
- for (let l = 0; l < n.length; ++l) {
1279
- let A4 = n[l], C2 = A3({ ...A4, mapKind: e });
1280
- if (S3(C2)) {
1281
- t[l] = null, o2[l] = null, i[l] = null, m2++;
1282
- let M2 = K(A4);
1283
- M2 && !d2.has(M2.toLowerCase()) && (d2.add(M2.toLowerCase()), R2.length < x && R2.push(M2));
1393
+ var b = { latlon: 0, city: 1, zip3: 2, state: 3, country: 4 };
1394
+ var e3 = 8;
1395
+ function J3(n, e) {
1396
+ let t = new Array(n.length), o4 = new Array(n.length), i = new Array(n.length), a3 = /* @__PURE__ */ new Set(), r2 = [], s2 = /* @__PURE__ */ new Set(), c2 = [], d2 = /* @__PURE__ */ new Set(), T = [], y2 = { latlon: 0, city: 0, zip3: 0, state: 0, country: 0 }, f4 = 0, N = 0, A4 = null;
1397
+ for (let l2 = 0; l2 < n.length; ++l2) {
1398
+ let p4 = n[l2], C2 = E3({ ...p4, mapKind: e });
1399
+ if (B3(C2)) {
1400
+ t[l2] = null, o4[l2] = null, i[l2] = null, N++;
1401
+ let S2 = W(p4);
1402
+ S2 && !d2.has(S2.toLowerCase()) && (d2.add(S2.toLowerCase()), T.length < e3 && T.push(S2));
1284
1403
  } else if (C2) {
1285
- if (t[l] = C2.lat, o2[l] = C2.lon, i[l] = C2.precision, S2++, g3[C2.precision]++, (p2 === null || G[C2.precision] > G[p2]) && (p2 = C2.precision), G[C2.precision] > G.city) {
1286
- let M2 = K(A4);
1287
- M2 && !s.has(M2.toLowerCase()) && (s.add(M2.toLowerCase()), f4.length < x && f4.push(M2));
1404
+ if (t[l2] = C2.lat, o4[l2] = C2.lon, i[l2] = C2.precision, f4++, y2[C2.precision]++, (A4 === null || b[C2.precision] > b[A4]) && (A4 = C2.precision), b[C2.precision] > b.city) {
1405
+ let S2 = W(p4);
1406
+ S2 && !s2.has(S2.toLowerCase()) && (s2.add(S2.toLowerCase()), c2.length < e3 && c2.push(S2));
1288
1407
  }
1289
1408
  } else {
1290
- t[l] = null, o2[l] = null, i[l] = null;
1291
- let M2 = K(A4);
1292
- M2 && !r2.has(M2.toLowerCase()) && (r2.add(M2.toLowerCase()), a2.push(M2));
1409
+ t[l2] = null, o4[l2] = null, i[l2] = null;
1410
+ let S2 = W(p4);
1411
+ S2 && !a3.has(S2.toLowerCase()) && (a3.add(S2.toLowerCase()), r2.push(S2));
1293
1412
  }
1294
1413
  }
1295
- let c2 = !n3() && n.some((l) => l.city !== null && l.city !== void 0 && String(l.city).trim() !== "");
1296
- return { lat: t, lon: o2, precisions: i, precision: p2, precisionCounts: g3, coarseExamples: f4, unmatched: a2, ambiguousRows: m2, ambiguousExamples: R2, matchedRows: S2, totalRows: n.length, ...c2 ? { cityTableMissing: true } : {} };
1414
+ let M2 = !C3() && n.some((l2) => l2.city !== null && l2.city !== void 0 && String(l2.city).trim() !== "");
1415
+ return { lat: t, lon: o4, precisions: i, precision: A4, precisionCounts: y2, coarseExamples: c2, unmatched: r2, ambiguousRows: N, ambiguousExamples: T, matchedRows: f4, totalRows: n.length, ...M2 ? { cityTableMissing: true } : {} };
1297
1416
  }
1298
- function K(n) {
1417
+ function W(n) {
1299
1418
  let e = [n.city, n.state, n.zip, n.country].filter((t) => t != null && String(t).trim() !== "").map((t) => String(t).trim()).join(", ");
1300
1419
  return e || (n.label === null || n.label === void 0 ? "" : String(n.label).trim());
1301
1420
  }
1302
- function p3(n, e) {
1421
+ function j3(n, e) {
1303
1422
  if (!n) return false;
1304
- let t = O(n);
1305
- return t ? F(t, e).length > 0 : false;
1423
+ let t = D(n);
1424
+ return t ? _(t, e).length > 0 : false;
1306
1425
  }
1307
1426
 
1308
1427
  // ../shape-core/dist/chunk-4VN252CK.mjs
1309
1428
  /*! @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. */
1310
- var o = (e, n, t, r2 = {}) => ({ code: e, name: n, script: t, dir: "ltr", intl: e, aliases: [], wordBreaks: true, compounds: false, gluedPrefixes: [], foldSensitive: false, ...r2 });
1311
- var g = Object.freeze([o("en", "English", "Latn"), o("nl", "Dutch", "Latn", { compounds: true }), o("de", "German", "Latn", { compounds: true }), o("fr", "French", "Latn"), o("es", "Spanish", "Latn"), o("pt", "Portuguese", "Latn"), o("it", "Italian", "Latn"), o("pl", "Polish", "Latn"), o("cs", "Czech", "Latn"), o("sk", "Slovak", "Latn"), o("sv", "Swedish", "Latn", { compounds: true }), o("da", "Danish", "Latn", { compounds: true }), o("nb", "Norwegian Bokmal", "Latn", { compounds: true, aliases: ["no"] }), o("fi", "Finnish", "Latn", { compounds: true }), o("hu", "Hungarian", "Latn", { compounds: true }), o("tr", "Turkish", "Latn"), o("ro", "Romanian", "Latn"), o("hr", "Croatian", "Latn"), o("id", "Indonesian", "Latn", { aliases: ["in"] }), o("vi", "Vietnamese", "Latn", { foldSensitive: true }), o("ru", "Russian", "Cyrl"), o("uk", "Ukrainian", "Cyrl"), o("el", "Greek", "Grek"), o("zh", "Chinese (Simplified)", "Hani", { intl: "zh-Hans", wordBreaks: false }), o("ja", "Japanese", "Jpan", { wordBreaks: false }), o("ko", "Korean", "Hang"), o("ar", "Arabic", "Arab", { dir: "rtl", gluedPrefixes: ["\u0627\u0644", "\u0648\u0627\u0644", "\u0628\u0627\u0644", "\u0641\u0627\u0644", "\u0643\u0627\u0644", "\u0644\u0644", "\u0648", "\u0641", "\u0628", "\u0643", "\u0644"] }), o("he", "Hebrew", "Hebr", { dir: "rtl", aliases: ["iw"], gluedPrefixes: ["\u05D4", "\u05D5", "\u05D1", "\u05DC", "\u05DE", "\u05E9", "\u05DB", "\u05D5\u05D4", "\u05E9\u05D4", "\u05DE\u05D4", "\u05D5\u05D1", "\u05D5\u05DC", "\u05D5\u05DE", "\u05D1\u05D4", "\u05DC\u05D4"] }), o("hi", "Hindi", "Deva"), o("th", "Thai", "Thai", { wordBreaks: false })]);
1312
- var S = Object.freeze(g.map((e) => e.code));
1313
- var c = new Map(g.map((e) => [e.code, e]));
1314
- var F2 = new Map(g.flatMap((e) => e.aliases.map((n) => [n, e])));
1315
- var h2 = Object.freeze([o("fa", "Persian", "Arab", { dir: "rtl" })]);
1316
- var Z2 = Object.freeze([...S, ...h2.map((e) => e.code)]);
1429
+ var o2 = (e, n, t, r2 = {}) => ({ code: e, name: n, script: t, dir: "ltr", intl: e, aliases: [], wordBreaks: true, compounds: false, gluedPrefixes: [], foldSensitive: false, ...r2 });
1430
+ var g2 = Object.freeze([o2("en", "English", "Latn"), o2("nl", "Dutch", "Latn", { compounds: true }), o2("de", "German", "Latn", { compounds: true }), o2("fr", "French", "Latn"), o2("es", "Spanish", "Latn"), o2("pt", "Portuguese", "Latn"), o2("it", "Italian", "Latn"), o2("pl", "Polish", "Latn"), o2("cs", "Czech", "Latn"), o2("sk", "Slovak", "Latn"), o2("sv", "Swedish", "Latn", { compounds: true }), o2("da", "Danish", "Latn", { compounds: true }), o2("nb", "Norwegian Bokmal", "Latn", { compounds: true, aliases: ["no"] }), o2("fi", "Finnish", "Latn", { compounds: true }), o2("hu", "Hungarian", "Latn", { compounds: true }), o2("tr", "Turkish", "Latn"), o2("ro", "Romanian", "Latn"), o2("hr", "Croatian", "Latn"), o2("id", "Indonesian", "Latn", { aliases: ["in"] }), o2("vi", "Vietnamese", "Latn", { foldSensitive: true }), o2("ru", "Russian", "Cyrl"), o2("uk", "Ukrainian", "Cyrl"), o2("el", "Greek", "Grek"), o2("zh", "Chinese (Simplified)", "Hani", { intl: "zh-Hans", wordBreaks: false }), o2("ja", "Japanese", "Jpan", { wordBreaks: false }), o2("ko", "Korean", "Hang"), o2("ar", "Arabic", "Arab", { dir: "rtl", gluedPrefixes: ["\u0627\u0644", "\u0648\u0627\u0644", "\u0628\u0627\u0644", "\u0641\u0627\u0644", "\u0643\u0627\u0644", "\u0644\u0644", "\u0648", "\u0641", "\u0628", "\u0643", "\u0644"] }), o2("he", "Hebrew", "Hebr", { dir: "rtl", aliases: ["iw"], gluedPrefixes: ["\u05D4", "\u05D5", "\u05D1", "\u05DC", "\u05DE", "\u05E9", "\u05DB", "\u05D5\u05D4", "\u05E9\u05D4", "\u05DE\u05D4", "\u05D5\u05D1", "\u05D5\u05DC", "\u05D5\u05DE", "\u05D1\u05D4", "\u05DC\u05D4"] }), o2("hi", "Hindi", "Deva"), o2("th", "Thai", "Thai", { wordBreaks: false })]);
1431
+ var S = Object.freeze(g2.map((e) => e.code));
1432
+ var c = new Map(g2.map((e) => [e.code, e]));
1433
+ var F2 = new Map(g2.flatMap((e) => e.aliases.map((n) => [n, e])));
1434
+ var h2 = Object.freeze([o2("fa", "Persian", "Arab", { dir: "rtl" })]);
1435
+ var Z = Object.freeze([...S, ...h2.map((e) => e.code)]);
1317
1436
  var b2 = new Map(h2.map((e) => [e.code, e]));
1318
1437
  var E2 = { \u0142: "l", \u0141: "L", \u0131: "i", \u00F8: "o", \u00D8: "O", \u0111: "d", \u0110: "D", \u00F0: "d", \u00D0: "D" };
1319
- var R = [1632, 1776, 2406, 3664, 65296];
1438
+ var R2 = [1632, 1776, 2406, 3664, 65296];
1320
1439
  var A = /[\u0300-\u036F]/g;
1321
1440
  function _2(e) {
1322
1441
  let n = E2[e];
1323
1442
  if (n) return n;
1324
1443
  let t = e.codePointAt(0);
1325
- for (let a2 of R) if (t >= a2 && t <= a2 + 9) return String.fromCharCode(48 + t - a2);
1444
+ for (let a3 of R2) if (t >= a3 && t <= a3 + 9) return String.fromCharCode(48 + t - a3);
1326
1445
  if (t >= 65313 && t <= 65338 || t >= 65345 && t <= 65370) return String.fromCharCode(t - 65248);
1327
1446
  let r2 = e.normalize("NFD").replace(A, "");
1328
1447
  return r2.length === 1 ? r2 : e;
1329
1448
  }
1330
- function p(e) {
1449
+ function p2(e) {
1331
1450
  if (!e) return e ?? "";
1332
1451
  let n = "";
1333
1452
  for (let t of e) n += _2(t);
1334
1453
  return n;
1335
1454
  }
1336
- var m = /([\p{Ll}\p{Nd}])(\p{Lu})/gu;
1455
+ var m2 = /([\p{Ll}\p{Nd}])(\p{Lu})/gu;
1337
1456
  var M = /[_\-./]+/g;
1338
1457
  var O2 = /[^\p{L}\p{M}\p{N}\x00-\x7F]/gu;
1339
1458
  function d(e) {
1340
- return e ? String(e).normalize("NFC").replace(m, "$1 $2").replace(M, " ").replace(O2, " ").toLowerCase().split(/\s+/).filter((n) => n.length > 0) : [];
1459
+ return e ? String(e).normalize("NFC").replace(m2, "$1 $2").replace(M, " ").replace(O2, " ").toLowerCase().split(/\s+/).filter((n) => n.length > 0) : [];
1341
1460
  }
1342
1461
  function le(e) {
1343
1462
  let n = Date.parse(e);
1344
1463
  if (isNaN(n)) return null;
1345
1464
  let t = new Date(n);
1346
1465
  if (j2.test(e) || K2.test(e.trim()) || J2.test(e)) return t;
1347
- let r2 = new Date(Date.UTC(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds())), a2 = t.getFullYear();
1348
- return a2 >= 0 && a2 < 100 && r2.setUTCFullYear(a2), r2;
1466
+ let r2 = new Date(Date.UTC(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds())), a3 = t.getFullYear();
1467
+ return a3 >= 0 && a3 < 100 && r2.setUTCFullYear(a3), r2;
1349
1468
  }
1350
1469
  function L2(e) {
1351
1470
  return !(e instanceof Date) || isNaN(e.getTime()) ? null : e.getUTCHours() === 0 && e.getUTCMinutes() === 0 && e.getUTCSeconds() === 0 && e.getUTCMilliseconds() === 0 ? "utc" : e.getHours() === 0 && e.getMinutes() === 0 && e.getSeconds() === 0 && e.getMilliseconds() === 0 ? "local" : null;
@@ -1358,33 +1477,33 @@ function $2(e, n) {
1358
1477
  let t = [];
1359
1478
  for (let r2 of e) {
1360
1479
  if (!r2 || !/date|time/i.test(String(r2.dataType ?? ""))) continue;
1361
- let a2 = 0, i = true;
1362
- for (let u2 of n) {
1363
- let s = u2 ? u2[r2.name] : void 0;
1364
- if (s == null || s === "") continue;
1365
- if (!(s instanceof Date)) {
1480
+ let a3 = 0, i = true;
1481
+ for (let u4 of n) {
1482
+ let s2 = u4 ? u4[r2.name] : void 0;
1483
+ if (s2 == null || s2 === "") continue;
1484
+ if (!(s2 instanceof Date)) {
1366
1485
  i = false;
1367
1486
  break;
1368
1487
  }
1369
- let l = L2(s);
1370
- if (l === null) {
1488
+ let l2 = L2(s2);
1489
+ if (l2 === null) {
1371
1490
  i = false;
1372
1491
  break;
1373
1492
  }
1374
- l === "local" && a2++;
1493
+ l2 === "local" && a3++;
1375
1494
  }
1376
- i && a2 > 0 && t.push(r2.name);
1495
+ i && a3 > 0 && t.push(r2.name);
1377
1496
  }
1378
1497
  return t;
1379
1498
  }
1380
1499
  function ge(e, n) {
1381
1500
  let t = $2(e, n);
1382
- return t.length === 0 ? { rows: n, columns: t } : { rows: n.map((a2) => {
1383
- if (!a2) return a2;
1384
- let i = { ...a2 };
1385
- for (let u2 of t) {
1386
- let s = i[u2];
1387
- s instanceof Date && L2(s) === "local" && (i[u2] = W2(s));
1501
+ return t.length === 0 ? { rows: n, columns: t } : { rows: n.map((a3) => {
1502
+ if (!a3) return a3;
1503
+ let i = { ...a3 };
1504
+ for (let u4 of t) {
1505
+ let s2 = i[u4];
1506
+ s2 instanceof Date && L2(s2) === "local" && (i[u4] = W2(s2));
1388
1507
  }
1389
1508
  return i;
1390
1509
  }), columns: t };
@@ -1393,59 +1512,68 @@ var j2 = /^\s*\d{4}(-\d{2}(-\d{2})?)?\s*$/;
1393
1512
  var K2 = /(?:Z|[+-]\d{2}:?\d{2})$/i;
1394
1513
  var J2 = /\b(?:GMT|UTC)\b/i;
1395
1514
 
1396
- // ../shape-core/dist/chunk-VIWJJUDA.mjs
1515
+ // ../shape-core/dist/chunk-KQOVPOVU.mjs
1397
1516
  /*! @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. */
1398
- var St = "006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999";
1399
- var w = new Set(St.match(/.{3}/g) ?? []);
1400
- var at = [["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"]];
1401
- var ct = new Set(at.map((n) => n[0]));
1402
- var yt = { "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" };
1403
- var ut = (() => {
1517
+ var An = "006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999";
1518
+ var w2 = new Set(An.match(/.{3}/g) ?? []);
1519
+ var dn = [["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"]];
1520
+ var pn = new Set(dn.map((n) => n[0]));
1521
+ var Cn = { "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" };
1522
+ var Y2 = (() => {
1404
1523
  let n = /* @__PURE__ */ new Map();
1405
- for (let [s, i] of at) n.set(g2(i), s);
1406
- n.set(g2("Washington DC"), "DC"), n.set(g2("Washington D.C."), "DC"), n.set(g2("US Virgin Islands"), "VI");
1407
- for (let [s, i] of Object.entries(yt)) {
1408
- let r2 = g2(s);
1409
- r2 && !n.has(r2) && n.set(r2, i);
1524
+ for (let [s2, o4] of dn) n.set(g4(o4), s2);
1525
+ n.set(g4("Washington DC"), "DC"), n.set(g4("Washington D.C."), "DC"), n.set(g4("US Virgin Islands"), "VI");
1526
+ for (let [s2, o4] of Object.entries(Cn)) {
1527
+ let r2 = g4(s2);
1528
+ r2 && !n.has(r2) && n.set(r2, o4);
1410
1529
  }
1411
1530
  return n;
1412
1531
  })();
1413
- var lt = /* @__PURE__ */ 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"]);
1414
- function ft(n) {
1532
+ var In = (() => {
1533
+ let n = new a2();
1534
+ for (let [s2, o4] of Y2) n.add(s2, o4);
1535
+ return n;
1536
+ })();
1537
+ function mn(n) {
1538
+ let s2 = g4(n), o4 = Y2.get(s2);
1539
+ return o4 || (m(s2) ? null : In.get(R(n)) ?? null);
1540
+ }
1541
+ var Sn = /* @__PURE__ */ 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"]);
1542
+ function yn(n) {
1415
1543
  return n.trim().toUpperCase();
1416
1544
  }
1417
- function g2(n) {
1418
- return u(n);
1545
+ function g4(n) {
1546
+ return u2(n);
1419
1547
  }
1420
- var rt = /* @__PURE__ */ new Set(["zip", "zipcode", "postal", "postcode", "plz"]);
1421
- function y2(n, s) {
1548
+ var fn = /* @__PURE__ */ new Set(["zip", "zipcode", "postal", "postcode", "plz"]);
1549
+ function y(n, s2) {
1422
1550
  if (!n) return false;
1423
- for (let i of d(n)) if (s.has(i)) return true;
1551
+ for (let o4 of d(n)) if (s2.has(o4)) return true;
1424
1552
  return false;
1425
1553
  }
1426
- function Mt(n, s) {
1554
+ function En(n, s2) {
1427
1555
  if (n == null) return null;
1428
- let i = String(n).trim();
1429
- if (i.length === 0) return null;
1430
- switch (s) {
1556
+ let o4 = String(n).trim();
1557
+ if (o4.length === 0) return null;
1558
+ switch (s2) {
1431
1559
  case "country-iso3":
1432
1560
  case "country-iso2":
1433
1561
  case "country-name":
1434
- return E(i);
1562
+ return k(o4);
1435
1563
  case "us-state-code":
1436
1564
  case "us-state-name": {
1437
- let r2 = ft(i);
1438
- return ct.has(r2) ? r2 : ut.get(g2(i)) ?? null;
1565
+ let r2 = yn(o4);
1566
+ return pn.has(r2) ? r2 : mn(o4);
1439
1567
  }
1440
1568
  case "us-zip5":
1441
- return M3(i);
1569
+ return h3(o4);
1442
1570
  case "us-county-fips":
1443
- return /^\d{5}$/.test(i) && lt.has(i.slice(0, 2)) ? i : null;
1571
+ return /^\d{5}$/.test(o4) && Sn.has(o4.slice(0, 2)) ? o4 : null;
1444
1572
  default:
1445
1573
  return null;
1446
1574
  }
1447
1575
  }
1448
- function Gt(n) {
1576
+ function Yn2(n) {
1449
1577
  switch (n) {
1450
1578
  case "country-iso3":
1451
1579
  case "country-iso2":
@@ -1459,71 +1587,71 @@ function Gt(n) {
1459
1587
  return false;
1460
1588
  }
1461
1589
  }
1462
- function It(n, s) {
1463
- return s === "us-zip5" ? w.has(n.slice(0, 3)) : true;
1590
+ function Rn(n, s2) {
1591
+ return s2 === "us-zip5" ? w2.has(n.slice(0, 3)) : true;
1464
1592
  }
1465
- function Wt(n, s) {
1466
- let i = new Array(n.length), r2 = /* @__PURE__ */ new Set(), M2 = [], h3 = 0;
1467
- for (let N2 = 0; N2 < n.length; ++N2) {
1468
- let I4 = Mt(n[N2], s), O3 = I4 !== null && It(I4, s) ? I4 : null;
1469
- if (i[N2] = O3, O3 !== null) h3++;
1593
+ function Fn(n, s2) {
1594
+ let o4 = new Array(n.length), r2 = /* @__PURE__ */ new Set(), I2 = [], N = 0;
1595
+ for (let h4 = 0; h4 < n.length; ++h4) {
1596
+ let M2 = En(n[h4], s2), O4 = M2 !== null && Rn(M2, s2) ? M2 : null;
1597
+ if (o4[h4] = O4, O4 !== null) N++;
1470
1598
  else {
1471
- let d2 = n[N2];
1599
+ let d2 = n[h4];
1472
1600
  if (d2 != null) {
1473
- let p2 = String(d2).trim();
1474
- if (p2.length > 0) {
1475
- let m2 = p2.toLowerCase();
1476
- r2.has(m2) || (r2.add(m2), M2.push(p2));
1601
+ let p4 = String(d2).trim();
1602
+ if (p4.length > 0) {
1603
+ let m4 = p4.toLowerCase();
1604
+ r2.has(m4) || (r2.add(m4), I2.push(p4));
1477
1605
  }
1478
1606
  }
1479
1607
  }
1480
1608
  }
1481
- return { iso: i, unmatched: M2, matchedRows: h3, totalRows: n.length };
1609
+ return { iso: o4, unmatched: I2, matchedRows: N, totalRows: n.length };
1482
1610
  }
1483
1611
 
1484
- // ../shape-core/dist/chunk-FUHYYIXD.mjs
1612
+ // ../shape-core/dist/chunk-QVV3ACEI.mjs
1485
1613
  var import_papaparse = __toESM(require_papaparse_min(), 1);
1486
1614
  /*! @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. */
1487
1615
  var ze = { "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" };
1488
- var J3 = (() => {
1616
+ var J4 = (() => {
1489
1617
  let t = /* @__PURE__ */ new Map();
1490
1618
  for (let e of Object.keys(ze)) for (let n of ze[e].split(/\s+/)) n && t.set(n, e);
1491
1619
  return t;
1492
1620
  })();
1493
- function yt2(t) {
1621
+ function yt(t) {
1494
1622
  for (let [e, n] of t) {
1495
- let i = J3.get(e);
1496
- i && !J3.has(n) && J3.set(n, i);
1623
+ let i = J4.get(e);
1624
+ i && !J4.has(n) && J4.set(n, i);
1497
1625
  }
1498
1626
  }
1499
- yt2(N);
1500
- var St2 = ["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", "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"];
1627
+ yt(L);
1628
+ var St = ["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", "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"];
1501
1629
  var _t = ["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"];
1502
1630
  var At = ["latitude", "longitude"];
1503
1631
  var Ct = ["latitude", "longitude"];
1504
- function Z3(t) {
1505
- return p(t);
1632
+ function Z2(t) {
1633
+ return p2(t);
1506
1634
  }
1507
1635
  var be = ["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"];
1508
- function Mt2(t) {
1636
+ function Mt(t) {
1509
1637
  return [...t].sort((e, n) => n.length - e.length).map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\s+/g, "\\s+")).join("|");
1510
1638
  }
1511
- var $e = new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:" + Mt2(be) + ")\\s+)", "i");
1639
+ var $e = new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:" + Mt(be) + ")\\s+)", "i");
1512
1640
  var xt = /(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])/g;
1513
- var Rt = new RegExp("\\b(" + St2.join("|") + ")\\b|(" + _t.join("|") + ")$", "i");
1641
+ var Rt = new RegExp("\\b(" + St.join("|") + ")\\b|(" + _t.join("|") + ")$", "i");
1514
1642
  var Tt = new RegExp("\\b(" + At.join("|") + ")\\b|(" + Ct.join("|") + ")$", "i");
1515
1643
  function me(t) {
1516
1644
  if (!t) return "";
1517
- let e = String(t), n = $e.exec(Z3(e));
1645
+ let e = String(t), n = $e.exec(Z2(e));
1518
1646
  return (n ? e.slice(n[0].length) : e).trim();
1519
1647
  }
1520
1648
  function Nt(t) {
1521
- return !!t && $e.test(Z3(String(t)));
1649
+ return !!t && $e.test(Z2(String(t)));
1522
1650
  }
1523
1651
  var Et = ["count (distinct)", "count distinct", "distinct count", "standard deviation", "average", "variance", "median", "product", "stddev", "std dev", "count", "sum", "avg", "min", "minimum", "max", "maximum", "var"];
1524
1652
  var Ve = new RegExp("^\\s*(" + [...Et].sort((t, e) => e.length - t.length).map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\s+/g, "\\s+")).join("|") + ")\\s+of\\s+", "i");
1525
1653
  var He = { 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 "] };
1526
- var It2 = new RegExp("^(" + Object.keys(He).join("|") + ")\\((.+)\\)$");
1654
+ var It = new RegExp("^(" + Object.keys(He).join("|") + ")\\((.+)\\)$");
1527
1655
  function vt(t) {
1528
1656
  let e = me(t);
1529
1657
  return e.length === 0 ? "" : e.replace(xt, " ");
@@ -1531,7 +1659,7 @@ function vt(t) {
1531
1659
  function je(t, e) {
1532
1660
  if (!e) return false;
1533
1661
  let n = me(e);
1534
- return t.test(Z3(vt(e))) || t.test(Z3(n)) || t.test(Z3(d(n).join(" ")));
1662
+ return t.test(Z2(vt(e))) || t.test(Z2(n)) || t.test(Z2(d(n).join(" ")));
1535
1663
  }
1536
1664
  function Xe(t) {
1537
1665
  return je(Tt, t);
@@ -1585,51 +1713,51 @@ var Yt = new RegExp([String.raw`\bisMeasure\b`, String.raw`\bdataType\b`, String
1585
1713
 
1586
1714
  // ../shape-core/dist/index.mjs
1587
1715
  /*! @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. */
1588
- var Z4 = 2;
1716
+ var Z3 = 2;
1589
1717
  var me2 = 400;
1590
1718
  function ee3(t) {
1591
- return !!E(t);
1719
+ return !!k(t);
1592
1720
  }
1593
1721
  function F3(t) {
1594
1722
  let e = /* @__PURE__ */ new Set();
1595
1723
  for (let n of t) {
1596
1724
  if (n == null) continue;
1597
- let o2 = u(String(n));
1598
- if (!V(o2) && !e.has(o2) && (e.add(o2), e.size >= me2)) break;
1725
+ let o4 = u2(String(n));
1726
+ if (!m(o4) && !e.has(o4) && (e.add(o4), e.size >= me2)) break;
1599
1727
  }
1600
1728
  return Array.from(e);
1601
1729
  }
1602
1730
  function A2(t) {
1603
1731
  let e = F3(t);
1604
1732
  if (e.length === 0 || te(t) < 95) return false;
1605
- let n = e.filter((u2) => ee3(u2) && !Y(u2)).length, o2 = e.filter((u2) => !ee3(u2) && !!Y(u2)).length;
1606
- return n >= 1 && n >= o2;
1733
+ let n = e.filter((u4) => ee3(u4) && !t3(u4)).length, o4 = e.filter((u4) => !ee3(u4) && !!t3(u4)).length;
1734
+ return n >= 1 && n >= o4;
1607
1735
  }
1608
1736
  function ce3(t, e) {
1609
- if (!Y(t)) return false;
1610
- let n = E(t);
1611
- return n ? e === "world" ? true : s3.has(n) : false;
1737
+ if (!t3(t)) return false;
1738
+ let n = k(t);
1739
+ return n ? e === "world" ? true : G3.has(n) : false;
1612
1740
  }
1613
1741
  function te(t) {
1614
1742
  let e = F3(t);
1615
1743
  if (e.length === 0) return 0;
1616
1744
  let n = 0;
1617
- for (let o2 of e) ee3(o2) && n++;
1745
+ for (let o4 of e) ee3(o4) && n++;
1618
1746
  return Math.round(n / e.length * 1e3) / 10;
1619
1747
  }
1620
- function z3(t) {
1748
+ function z2(t) {
1621
1749
  let e = F3(t);
1622
1750
  if (e.length === 0) return 0;
1623
1751
  let n = 0;
1624
- for (let o2 of e) Y(o2) && n++;
1752
+ for (let o4 of e) t3(o4) && n++;
1625
1753
  return Math.round(n / e.length * 1e3) / 10;
1626
1754
  }
1627
1755
  function re2(t) {
1628
1756
  let e = /* @__PURE__ */ new Set();
1629
1757
  for (let n of t) {
1630
1758
  if (n == null) continue;
1631
- let o2 = String(n).trim();
1632
- if (!V(u(o2)) && !e.has(o2) && (e.add(o2), e.size >= me2)) break;
1759
+ let o4 = String(n).trim();
1760
+ if (!m(u2(o4)) && !e.has(o4) && (e.add(o4), e.size >= me2)) break;
1633
1761
  }
1634
1762
  return Array.from(e);
1635
1763
  }
@@ -1637,103 +1765,103 @@ function ne2(t) {
1637
1765
  let e = re2(t);
1638
1766
  if (e.length === 0) return 0;
1639
1767
  let n = 0;
1640
- for (let o2 of e) Z(o2).length > 0 && n++;
1768
+ for (let o4 of e) r3(o4).length > 0 && n++;
1641
1769
  return Math.round(n / e.length * 1e3) / 10;
1642
1770
  }
1643
1771
  function de(t, e) {
1644
- return y2(e, rt) ? true : re2(t).some((n) => /^\d{5}(-\d{4})?$/.test(n.replace(/\.0+$/, "")));
1772
+ return y(e, fn) ? true : re2(t).some((n) => /^\d{5}(-\d{4})?$/.test(n.replace(/\.0+$/, "")));
1645
1773
  }
1646
- function qn2(t, e) {
1774
+ function Bn2(t, e) {
1647
1775
  let n = F3(t);
1648
1776
  if (n.length === 0) return 0;
1649
- let o2 = 0;
1650
- for (let u2 of n) p3(u2, e) && o2++;
1651
- return Math.round(o2 / n.length * 1e3) / 10;
1777
+ let o4 = 0;
1778
+ for (let u4 of n) j3(u4, e) && o4++;
1779
+ return Math.round(o4 / n.length * 1e3) / 10;
1652
1780
  }
1653
- function J4(t, e) {
1781
+ function J5(t, e) {
1654
1782
  let n = 0;
1655
- for (let o2 of F3(t)) e(o2) && n++;
1783
+ for (let o4 of F3(t)) e(o4) && n++;
1656
1784
  return n;
1657
1785
  }
1658
- function zn2(t, e) {
1786
+ function jn(t, e) {
1659
1787
  let n = 0;
1660
- for (let o2 of re2(t)) e(o2) && n++;
1788
+ for (let o4 of re2(t)) e(o4) && n++;
1661
1789
  return n;
1662
1790
  }
1663
- function $n(t, e, n, o2, u2) {
1664
- let l = [], a2 = [], i = {}, b4 = {}, E4 = new Set(t), C2 = (s) => e.map((c2) => c2[s]);
1665
- for (let s of ["city", "country"]) {
1666
- let c2 = n?.[s];
1667
- c2 && E4.has(c2) && (i[s] = c2);
1791
+ function Yn3(t, e, n, o4, u4) {
1792
+ let l2 = [], a3 = [], i = {}, b4 = {}, E4 = new Set(t), y2 = (s2) => e.map((c2) => c2[s2]);
1793
+ for (let s2 of ["city", "country"]) {
1794
+ let c2 = n?.[s2];
1795
+ c2 && E4.has(c2) && (i[s2] = c2);
1668
1796
  }
1669
- let g3 = new Set(u2 ?? t);
1670
- for (let s of ["lat", "lon"]) {
1671
- let c2 = n?.[s];
1672
- c2 && g3.has(c2) && (i[s] = c2);
1797
+ let g5 = new Set(u4 ?? t);
1798
+ for (let s2 of ["lat", "lon"]) {
1799
+ let c2 = n?.[s2];
1800
+ c2 && g5.has(c2) && (i[s2] = c2);
1673
1801
  }
1674
1802
  let f4 = n?.zip;
1675
1803
  if (f4 && E4.has(f4)) {
1676
- let s = C2(f4), c2 = ne2(s);
1677
- c2 < 95 ? a2.push(`zip=${f4} (only ${c2}% of values read as ZIPs)`) : de(s, f4) ? i.zip = f4 : a2.push(`zip=${f4} (all values are 3-4 digits with nothing to say they are postal)`);
1804
+ let s2 = y2(f4), c2 = ne2(s2);
1805
+ c2 < 95 ? a3.push(`zip=${f4} (only ${c2}% of values read as ZIPs)`) : de(s2, f4) ? i.zip = f4 : a3.push(`zip=${f4} (all values are 3-4 digits with nothing to say they are postal)`);
1678
1806
  }
1679
1807
  let d2 = n?.state;
1680
1808
  if (d2 && E4.has(d2)) {
1681
- let s = C2(d2), c2 = F3(s);
1682
- c2.length > 0 && c2.every((S2) => ce3(S2, o2)) ? a2.push(`state=${d2} (every value is "CA", which is both Canada and California)`) : A2(s) ? (a2.push(`state=${d2} (every value is a country, not a state)`), i.country || (i.country = d2)) : z3(s) < 95 ? a2.push(`state=${d2} (only ${z3(s)}% of values are states/provinces)`) : i.state = d2;
1809
+ let s2 = y2(d2), c2 = F3(s2);
1810
+ c2.length > 0 && c2.every((S2) => ce3(S2, o4)) ? a3.push(`state=${d2} (every value is "CA", which is both Canada and California)`) : A2(s2) ? (a3.push(`state=${d2} (every value is a country, not a state)`), i.country || (i.country = d2)) : z2(s2) < 95 ? a3.push(`state=${d2} (only ${z2(s2)}% of values are states/provinces)`) : i.state = d2;
1683
1811
  }
1684
- let p2 = new Set(Object.values(i).filter(Boolean)), y4 = t.filter((s) => !p2.has(s) && !s.startsWith("__"));
1812
+ let p4 = new Set(Object.values(i).filter(Boolean)), h4 = t.filter((s2) => !p4.has(s2) && !s2.startsWith("__"));
1685
1813
  if (!i.state) {
1686
- let s = null;
1687
- for (let c2 of y4) {
1688
- let S2 = C2(c2);
1814
+ let s2 = null;
1815
+ for (let c2 of h4) {
1816
+ let S2 = y2(c2);
1689
1817
  if (A2(S2)) continue;
1690
- let P4 = z3(S2);
1818
+ let P4 = z2(S2);
1691
1819
  if (P4 < 95) continue;
1692
- let H3 = J4(S2, (D2) => !!Y(D2)), Ie = J4(S2, (D2) => !!Y(D2) && !ce3(D2, o2));
1693
- H3 < Z4 && Ie < 1 || (!s || P4 > s.pct) && (s = { name: c2, pct: P4 });
1820
+ let K3 = J5(S2, (D2) => !!t3(D2)), Ne = J5(S2, (D2) => !!t3(D2) && !ce3(D2, o4));
1821
+ K3 < Z3 && Ne < 1 || (!s2 || P4 > s2.pct) && (s2 = { name: c2, pct: P4 });
1694
1822
  }
1695
- s && (i.state = s.name, p2.add(s.name), l.push(`state=${s.name} (${s.pct}% states/provinces)`));
1823
+ s2 && (i.state = s2.name, p4.add(s2.name), l2.push(`state=${s2.name} (${s2.pct}% states/provinces)`));
1696
1824
  }
1697
- if (!i.zip) for (let s of y4) {
1698
- if (p2.has(s)) continue;
1699
- let c2 = C2(s), S2 = ne2(c2);
1700
- if (!(S2 < 95) && de(c2, s) && !(zn2(c2, (P4) => Z(P4).length > 0) < Z4)) {
1701
- i.zip = s, p2.add(s), l.push(`zip=${s} (${S2}% ZIP codes)`);
1825
+ if (!i.zip) for (let s2 of h4) {
1826
+ if (p4.has(s2)) continue;
1827
+ let c2 = y2(s2), S2 = ne2(c2);
1828
+ if (!(S2 < 95) && de(c2, s2) && !(jn(c2, (P4) => r3(P4).length > 0) < Z3)) {
1829
+ i.zip = s2, p4.add(s2), l2.push(`zip=${s2} (${S2}% ZIP codes)`);
1702
1830
  break;
1703
1831
  }
1704
1832
  }
1705
- let T2 = i.country;
1706
- if (!T2 || !A2(C2(T2))) {
1707
- let s = null;
1708
- for (let c2 of y4) {
1709
- if (p2.has(c2) || !A2(C2(c2))) continue;
1710
- let S2 = te(C2(c2));
1711
- (!s || S2 > s.pct) && (s = { name: c2, pct: S2 });
1833
+ let T = i.country;
1834
+ if (!T || !A2(y2(T))) {
1835
+ let s2 = null;
1836
+ for (let c2 of h4) {
1837
+ if (p4.has(c2) || !A2(y2(c2))) continue;
1838
+ let S2 = te(y2(c2));
1839
+ (!s2 || S2 > s2.pct) && (s2 = { name: c2, pct: S2 });
1712
1840
  }
1713
- s && (T2 && (a2.push(`country=${T2} (only ${te(C2(T2))}% of values are country identifiers; using ${s.name} instead)`), b4.country = T2), i.country = s.name, p2.add(s.name), l.push(`country=${s.name}`));
1841
+ s2 && (T && (a3.push(`country=${T} (only ${te(y2(T))}% of values are country identifiers; using ${s2.name} instead)`), b4.country = T), i.country = s2.name, p4.add(s2.name), l2.push(`country=${s2.name}`));
1714
1842
  }
1715
1843
  if (!i.city) {
1716
- let s = null;
1717
- for (let c2 of y4) {
1718
- if (p2.has(c2)) continue;
1719
- let S2 = C2(c2), P4 = qn2(S2, o2);
1720
- P4 < m3 || J4(S2, (H3) => p3(H3, o2)) < Z4 || (!s || P4 > s.pct) && (s = { name: c2, pct: P4 });
1844
+ let s2 = null;
1845
+ for (let c2 of h4) {
1846
+ if (p4.has(c2)) continue;
1847
+ let S2 = y2(c2), P4 = Bn2(S2, o4);
1848
+ P4 < D3 || J5(S2, (K3) => j3(K3, o4)) < Z3 || (!s2 || P4 > s2.pct) && (s2 = { name: c2, pct: P4 });
1721
1849
  }
1722
- s && (i.city = s.name, l.push(`city=${s.name} (${s.pct}% known cities)`));
1850
+ s2 && (i.city = s2.name, l2.push(`city=${s2.name} (${s2.pct}% known cities)`));
1723
1851
  }
1724
- let L4 = i.country ? C2(i.country) : [], R2 = !!i.country && A2(L4), M2 = R2 ? new Set(L4.map((s) => E(s == null ? null : String(s))).filter(Boolean)).size : 0, x3 = R2 && M2 >= 2, w2 = !!(i.lat && i.lon) && e.some((s) => {
1725
- let c2 = +String(s[i.lat] ?? "").trim(), S2 = +String(s[i.lon] ?? "").trim();
1726
- return isFinite(c2) && isFinite(S2) && c2 >= -90 && c2 <= 90 && S2 >= -180 && S2 <= 180 && String(s[i.lat] ?? "").trim() !== "" && String(s[i.lon] ?? "").trim() !== "";
1852
+ let L4 = i.country ? y2(i.country) : [], R4 = !!i.country && A2(L4), M2 = R4 ? new Set(L4.map((s2) => k(s2 == null ? null : String(s2))).filter(Boolean)).size : 0, x3 = R4 && M2 >= 2, w3 = !!(i.lat && i.lon) && e.some((s2) => {
1853
+ let c2 = +String(s2[i.lat] ?? "").trim(), S2 = +String(s2[i.lon] ?? "").trim();
1854
+ return isFinite(c2) && isFinite(S2) && c2 >= -90 && c2 <= 90 && S2 >= -180 && S2 <= 180 && String(s2[i.lat] ?? "").trim() !== "" && String(s2[i.lon] ?? "").trim() !== "";
1727
1855
  });
1728
- return i.lat && i.lon && !w2 && a2.push(`lat/lon=${i.lat}/${i.lon} (no row holds a usable coordinate pair)`), i.country && !x3 && !(i.city || i.state || i.zip || w2) && a2.push(R2 ? `country=${i.country} (every row resolves to the same country - nothing to place apart)` : `country=${i.country} (values are not country identifiers)`), { bind: !!(i.city || i.state || i.zip || x3 || w2) ? i : null, backfilled: l, refused: a2, ...Object.keys(b4).length ? { labelFallback: b4 } : {} };
1856
+ return i.lat && i.lon && !w3 && a3.push(`lat/lon=${i.lat}/${i.lon} (no row holds a usable coordinate pair)`), i.country && !x3 && !(i.city || i.state || i.zip || w3) && a3.push(R4 ? `country=${i.country} (every row resolves to the same country - nothing to place apart)` : `country=${i.country} (values are not country identifiers)`), { bind: !!(i.city || i.state || i.zip || x3 || w3) ? i : null, backfilled: l2, refused: a3, ...Object.keys(b4).length ? { labelFallback: b4 } : {} };
1729
1857
  }
1730
1858
  var r = (t, ...e) => ({ part: t, langs: Object.freeze(e) });
1731
1859
  var oe2 = Object.freeze({ jaar: r("year", "nl"), kwartaal: r("quarter", "nl"), maand: r("month", "nl"), dag: r("day", "nl", "sv", "da", "nb"), jahr: r("year", "de"), quartal: r("quarter", "de"), monat: r("month", "de"), tag: r("day", "de"), ann\u00E9e: r("year", "fr"), mois: r("month", "fr"), jour: r("day", "fr"), trimestre: r("quarter", "fr", "es", "pt", "it"), a\u00F1o: r("year", "es"), mes: r("month", "es"), d\u00EDa: r("day", "es"), ano: r("year", "pt"), m\u00EAs: r("month", "pt"), dia: r("day", "pt"), anno: r("year", "it"), mese: r("month", "it"), giorno: r("day", "it"), \u0433\u043E\u0434: r("year", "ru"), \u043C\u0435\u0441\u044F\u0446: r("month", "ru"), \u0440\u0456\u043A: r("year", "uk"), \u043C\u0456\u0441\u044F\u0446\u044C: r("month", "uk"), \u043A\u0432\u0430\u0440\u0442\u0430\u043B: r("quarter", "ru", "uk"), \u0434\u0435\u043D\u044C: r("day", "ru", "uk"), rok: r("year", "pl", "cs", "sk"), kwarta\u0142: r("quarter", "pl"), miesi\u0105c: r("month", "pl"), dzie\u0144: r("day", "pl"), \u010Dtvrtlet\u00ED: r("quarter", "cs"), m\u011Bs\u00EDc: r("month", "cs"), den: r("day", "cs"), \u0161tvr\u0165rok: r("quarter", "sk"), mesiac: r("month", "sk"), de\u0148: r("day", "sk"), \u00E5r: r("year", "sv", "da", "nb"), kvartal: r("quarter", "sv", "da", "nb"), m\u00E5nad: r("month", "sv"), m\u00E5ned: r("month", "da", "nb"), vuosi: r("year", "fi"), vuosinelj\u00E4nnes: r("quarter", "fi"), kuukausi: r("month", "fi"), p\u00E4iv\u00E4: r("day", "fi"), \u00E9v: r("year", "hu"), negyed\u00E9v: r("quarter", "hu"), h\u00F3nap: r("month", "hu"), nap: r("day", "hu"), y\u0131l: r("year", "tr"), \u00E7eyrek: r("quarter", "tr"), ay: r("month", "tr"), g\u00FCn: r("day", "tr"), \u03AD\u03C4\u03BF\u03C2: r("year", "el"), \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF: r("quarter", "el"), \u03BC\u03AE\u03BD\u03B1\u03C2: r("month", "el"), \u03B7\u03BC\u03AD\u03C1\u03B1: r("day", "el"), an: r("year", "ro"), trimestru: r("quarter", "ro"), lun\u0103: r("month", "ro"), zi: r("day", "ro"), godina: r("year", "hr"), tromjese\u010Dje: r("quarter", "hr"), mjesec: r("month", "hr"), dan: r("day", "hr"), \u5E74: r("year", "ja", "zh"), \u56DB\u534A\u671F: r("quarter", "ja"), \u5B63\u5EA6: r("quarter", "zh"), \u6708: r("month", "ja", "zh"), \u65E5: r("day", "ja", "zh"), \uC5F0\uB3C4: r("year", "ko"), \uBD84\uAE30: r("quarter", "ko"), \uC6D4: r("month", "ko"), \uC77C: r("day", "ko"), tahun: r("year", "id"), kuartal: r("quarter", "id"), triwulan: r("quarter", "id"), bulan: r("month", "id"), hari: r("day", "id"), n\u0103m: r("year", "vi"), qu\u00FD: r("quarter", "vi"), th\u00E1ng: r("month", "vi"), ng\u00E0y: r("day", "vi"), \u0E1B\u0E35: r("year", "th"), \u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A: r("quarter", "th"), \u0E40\u0E14\u0E37\u0E2D\u0E19: r("month", "th"), \u0E27\u0E31\u0E19: r("day", "th"), \u0627\u0644\u0633\u0646\u0629: r("year", "ar"), \u0633\u0646\u0629: r("year", "ar"), \u0627\u0644\u0639\u0627\u0645: r("year", "ar"), \u0639\u0627\u0645: r("year", "ar"), \u0627\u0644\u0631\u0628\u0639: r("quarter", "ar"), \u0631\u0628\u0639: r("quarter", "ar"), "\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629": r("quarter", "ar"), \u0627\u0644\u0634\u0647\u0631: r("month", "ar"), \u0634\u0647\u0631: r("month", "ar"), \u0627\u0644\u064A\u0648\u0645: r("day", "ar"), \u064A\u0648\u0645: r("day", "ar"), \u05E9\u05E0\u05D4: r("year", "he"), \u05E8\u05D1\u05E2\u05D5\u05DF: r("quarter", "he"), \u05D7\u05D5\u05D3\u05E9: r("month", "he"), \u05D9\u05D5\u05DD: r("day", "he"), \u0935\u0930\u094D\u0937: r("year", "hi"), \u0938\u093E\u0932: r("year", "hi"), \u0924\u093F\u092E\u093E\u0939\u0940: r("quarter", "hi"), \u092E\u0939\u0940\u0928\u093E: r("month", "hi"), \u092E\u093E\u0939: r("month", "hi"), \u0926\u093F\u0928: r("day", "hi"), \u0633\u0627\u0644: r("year", "fa"), \u0645\u0627\u0647: r("month", "fa"), \u0631\u0648\u0632: r("day", "fa") });
1732
- var Hn2 = Object.freeze(Array.from(new Set(Object.values(oe2).flatMap((t) => t.langs))));
1860
+ var Qn2 = Object.freeze(Array.from(new Set(Object.values(oe2).flatMap((t) => t.langs))));
1733
1861
  var fe = Object.freeze(["fa", "ar", "he", "th"]);
1734
- var hr = Object.freeze({ integer: "number", decimal: "number", double: "number", datetime: "date", date: "date", boolean: "boolean", string: "text" });
1735
- var wr = Object.freeze({ RENDER_START: "render-start", RENDER_OK: "render-ok", RENDER_ERROR: "render-error", VIEW: "view", VIEW_VERDICT: "view-verdict" });
1736
- var Le = 2 ** 31 - 1;
1862
+ var Rr = Object.freeze({ integer: "number", decimal: "number", double: "number", datetime: "date", date: "date", boolean: "boolean", string: "text" });
1863
+ var Or = Object.freeze({ RENDER_START: "render-start", RENDER_OK: "render-ok", RENDER_ERROR: "render-error", VIEW: "view", VIEW_VERDICT: "view-verdict" });
1864
+ var Me = 2 ** 31 - 1;
1737
1865
 
1738
1866
  // src/payload.ts
1739
1867
  var ROW_IDX_COLUMN = "__rowIdx__";
@@ -1748,7 +1876,7 @@ function resolvePointChannel(cols, rowObjs, point) {
1748
1876
  let labelCol;
1749
1877
  if (bind) {
1750
1878
  const dims = cols.filter((c2) => !c2.isMeasure).map((c2) => c2.name);
1751
- const res = $n(dims, rowObjs, bind, point?.mapKind, cols.map((c2) => c2.name));
1879
+ const res = Yn3(dims, rowObjs, bind, point?.mapKind, cols.map((c2) => c2.name));
1752
1880
  bind = res.bind;
1753
1881
  rolesBackfilled = res.backfilled;
1754
1882
  rolesRefused = res.refused;
@@ -1757,14 +1885,14 @@ function resolvePointChannel(cols, rowObjs, point) {
1757
1885
  }
1758
1886
  const hasPointBind = !!bind && !!(bind.city || bind.state || bind.zip || bind.country || bind.lat && bind.lon);
1759
1887
  if (hasPointBind) {
1760
- const p2 = bind;
1761
- const built = y3(rowObjs.map((r2) => ({
1762
- lat: p2.lat ? r2[p2.lat] : null,
1763
- lon: p2.lon ? r2[p2.lon] : null,
1764
- city: p2.city ? r2[p2.city] : null,
1765
- state: p2.state ? r2[p2.state] : null,
1766
- zip: p2.zip ? r2[p2.zip] : null,
1767
- country: p2.country ? r2[p2.country] : null,
1888
+ const p4 = bind;
1889
+ const built = J3(rowObjs.map((r2) => ({
1890
+ lat: p4.lat ? r2[p4.lat] : null,
1891
+ lon: p4.lon ? r2[p4.lon] : null,
1892
+ city: p4.city ? r2[p4.city] : null,
1893
+ state: p4.state ? r2[p4.state] : null,
1894
+ zip: p4.zip ? r2[p4.zip] : null,
1895
+ country: p4.country ? r2[p4.country] : null,
1768
1896
  label: labelCol ? r2[labelCol] : null
1769
1897
  })), point?.mapKind);
1770
1898
  pLat = built.lat;
@@ -1800,18 +1928,18 @@ function buildRenderPayload(cols, rowObjs, geo, point, destination, opts) {
1800
1928
  rowObjs = norm.rows;
1801
1929
  utcDayColumns = norm.columns;
1802
1930
  }
1803
- const o2 = resolvePointChannel(cols, rowObjs, point);
1931
+ const o4 = resolvePointChannel(cols, rowObjs, point);
1804
1932
  const d2 = resolvePointChannel(cols, rowObjs, destination);
1805
- const pLat = o2.lat, pLon = o2.lon, pPrec = o2.prec;
1933
+ const pLat = o4.lat, pLon = o4.lon, pPrec = o4.prec;
1806
1934
  const dLat = d2.lat, dLon = d2.lon, dPrec = d2.prec;
1807
- const geoPoint = o2.geoPoint;
1935
+ const geoPoint = o4.geoPoint;
1808
1936
  const geoPointDest = d2.geoPoint;
1809
- const rolesRefused = [...o2.rolesRefused, ...d2.rolesRefused.map((s) => `destination: ${s}`)];
1937
+ const rolesRefused = [...o4.rolesRefused, ...d2.rolesRefused.map((s2) => `destination: ${s2}`)];
1810
1938
  let geoIso = null;
1811
1939
  let geoUnmatched;
1812
1940
  let geoUnmatchedDistinct;
1813
- if (geo && geo.column && geo.kind && Gt(geo.kind)) {
1814
- const built = Wt(rowObjs.map((r2) => r2[geo.column]), geo.kind);
1941
+ if (geo && geo.column && geo.kind && Yn2(geo.kind)) {
1942
+ const built = Fn(rowObjs.map((r2) => r2[geo.column]), geo.kind);
1815
1943
  geoIso = built.iso;
1816
1944
  geoUnmatched = { count: built.totalRows - built.matchedRows, examples: built.unmatched.slice(0, 8) };
1817
1945
  geoUnmatchedDistinct = built.unmatched.length;
@@ -1826,41 +1954,41 @@ function buildRenderPayload(cols, rowObjs, geo, point, destination, opts) {
1826
1954
  const aliasCols = [];
1827
1955
  if (opts?.aliases && opts.aliases.length > 0) {
1828
1956
  const claimed = /* @__PURE__ */ new Set([...colNames, ...hostNames]);
1829
- for (const a2 of opts.aliases) {
1830
- const from = a2 ? colNames.indexOf(a2.name) : -1;
1831
- if (from < 0 || !a2.alias || claimed.has(a2.alias)) continue;
1832
- claimed.add(a2.alias);
1833
- aliasCols.push({ from, name: a2.alias });
1957
+ for (const a3 of opts.aliases) {
1958
+ const from = a3 ? colNames.indexOf(a3.name) : -1;
1959
+ if (from < 0 || !a3.alias || claimed.has(a3.alias)) continue;
1960
+ claimed.add(a3.alias);
1961
+ aliasCols.push({ from, name: a3.alias });
1834
1962
  }
1835
1963
  }
1836
1964
  const extra = hostNames.length + aliasCols.length;
1837
1965
  const out = new Array(rowObjs.length);
1838
1966
  for (let r2 = 0; r2 < rowObjs.length; r2++) {
1839
1967
  const row = rowObjs[r2];
1840
- const a2 = new Array(cols.length + extra);
1968
+ const a3 = new Array(cols.length + extra);
1841
1969
  for (let c2 = 0; c2 < cols.length; c2++) {
1842
- const v2 = row[colNames[c2]];
1843
- if (v2 instanceof Date) {
1844
- a2[c2] = v2.toISOString();
1970
+ const v = row[colNames[c2]];
1971
+ if (v instanceof Date) {
1972
+ a3[c2] = v.toISOString();
1845
1973
  } else {
1846
- a2[c2] = v2 ?? null;
1974
+ a3[c2] = v ?? null;
1847
1975
  }
1848
1976
  }
1849
1977
  let k3 = cols.length;
1850
- a2[k3++] = r2;
1851
- if (geoIso) a2[k3++] = geoIso[r2];
1978
+ a3[k3++] = r2;
1979
+ if (geoIso) a3[k3++] = geoIso[r2];
1852
1980
  if (pLat && pLon) {
1853
- a2[k3++] = pLat[r2];
1854
- a2[k3++] = pLon[r2];
1855
- a2[k3++] = pPrec ? pPrec[r2] : null;
1981
+ a3[k3++] = pLat[r2];
1982
+ a3[k3++] = pLon[r2];
1983
+ a3[k3++] = pPrec ? pPrec[r2] : null;
1856
1984
  }
1857
1985
  if (dLat && dLon) {
1858
- a2[k3++] = dLat[r2];
1859
- a2[k3++] = dLon[r2];
1860
- a2[k3++] = dPrec ? dPrec[r2] : null;
1986
+ a3[k3++] = dLat[r2];
1987
+ a3[k3++] = dLon[r2];
1988
+ a3[k3++] = dPrec ? dPrec[r2] : null;
1861
1989
  }
1862
- for (const ac of aliasCols) a2[k3++] = a2[ac.from];
1863
- out[r2] = a2;
1990
+ for (const ac of aliasCols) a3[k3++] = a3[ac.from];
1991
+ out[r2] = a3;
1864
1992
  }
1865
1993
  const colsOut = [...cols, { name: ROW_IDX_COLUMN, dataType: "Integer", isMeasure: false, modelDesc: "" }];
1866
1994
  if (geoIso) colsOut.push({ name: "__geoIso__", dataType: "String", isMeasure: false, modelDesc: "" });
@@ -1942,10 +2070,10 @@ function stripJsComments(code) {
1942
2070
  continue;
1943
2071
  }
1944
2072
  if (ch === "/" && next === "/") {
1945
- let j3 = i + 2;
1946
- while (j3 < n && src[j3] !== "\n" && src[j3] !== "\r") j3++;
2073
+ let j4 = i + 2;
2074
+ while (j4 < n && src[j4] !== "\n" && src[j4] !== "\r") j4++;
1947
2075
  out += " ";
1948
- i = j3;
2076
+ i = j4;
1949
2077
  wordOpen = false;
1950
2078
  continue;
1951
2079
  }
@@ -1959,10 +2087,10 @@ function stripJsComments(code) {
1959
2087
  continue;
1960
2088
  }
1961
2089
  if (ch === "'" || ch === '"') {
1962
- let j3 = i + 1;
1963
- while (j3 < n && src[j3] !== ch && src[j3] !== "\n") j3 += src[j3] === "\\" ? 2 : 1;
1964
- out += src.slice(i, Math.min(j3 + 1, n));
1965
- i = j3 + 1;
2090
+ let j4 = i + 1;
2091
+ while (j4 < n && src[j4] !== ch && src[j4] !== "\n") j4 += src[j4] === "\\" ? 2 : 1;
2092
+ out += src.slice(i, Math.min(j4 + 1, n));
2093
+ i = j4 + 1;
1966
2094
  prevSig = ch;
1967
2095
  prevWord = "";
1968
2096
  wordOpen = false;
@@ -1976,23 +2104,23 @@ function stripJsComments(code) {
1976
2104
  continue;
1977
2105
  }
1978
2106
  if (ch === "/" && regexMayFollow()) {
1979
- let j3 = i + 1, inClass = false;
1980
- while (j3 < n && src[j3] !== "\n") {
1981
- const c2 = src[j3];
2107
+ let j4 = i + 1, inClass = false;
2108
+ while (j4 < n && src[j4] !== "\n") {
2109
+ const c2 = src[j4];
1982
2110
  if (c2 === "\\") {
1983
- j3 += 2;
2111
+ j4 += 2;
1984
2112
  continue;
1985
2113
  }
1986
2114
  if (c2 === "[") inClass = true;
1987
2115
  else if (c2 === "]") inClass = false;
1988
2116
  else if (c2 === "/" && !inClass) break;
1989
- j3++;
2117
+ j4++;
1990
2118
  }
1991
- if (j3 < n && src[j3] === "/") {
1992
- j3++;
1993
- while (j3 < n && /[A-Za-z]/.test(src[j3])) j3++;
1994
- out += src.slice(i, j3);
1995
- i = j3;
2119
+ if (j4 < n && src[j4] === "/") {
2120
+ j4++;
2121
+ while (j4 < n && /[A-Za-z]/.test(src[j4])) j4++;
2122
+ out += src.slice(i, j4);
2123
+ i = j4;
1996
2124
  prevSig = "/";
1997
2125
  prevWord = "";
1998
2126
  wordOpen = false;
@@ -2082,30 +2210,30 @@ function createMarkResolver(env) {
2082
2210
  if (el.tagName.toLowerCase() !== "path") return false;
2083
2211
  const f4 = el.getAttribute("fill");
2084
2212
  if (f4 !== null && f4 !== "" && f4 !== "none" && f4 !== "transparent") return false;
2085
- const s = (el.getAttribute("stroke") || "").trim().toLowerCase();
2213
+ const s2 = (el.getAttribute("stroke") || "").trim().toLowerCase();
2086
2214
  const so = parseFloat(el.getAttribute("stroke-opacity") || "1");
2087
- return s === "transparent" || s === "none" || so <= 0.01;
2215
+ return s2 === "transparent" || s2 === "none" || so <= 0.01;
2088
2216
  };
2089
- const distToPathCenterline = (el, x3, y4) => {
2217
+ const distToPathCenterline = (el, x3, y2) => {
2090
2218
  const L4 = el.getTotalLength();
2091
2219
  if (!(L4 > 0)) return Number.MAX_VALUE;
2092
- const m2 = el.getScreenCTM();
2093
- if (!m2) return Number.MAX_VALUE;
2220
+ const m4 = el.getScreenCTM();
2221
+ if (!m4) return Number.MAX_VALUE;
2094
2222
  let best = Number.MAX_VALUE;
2095
- const N2 = 64;
2096
- for (let i = 0; i <= N2; i++) {
2097
- const pt2 = el.getPointAtLength(L4 * i / N2);
2098
- const dx = m2.a * pt2.x + m2.c * pt2.y + m2.e - x3;
2099
- const dy = m2.b * pt2.x + m2.d * pt2.y + m2.f - y4;
2223
+ const N = 64;
2224
+ for (let i = 0; i <= N; i++) {
2225
+ const pt2 = el.getPointAtLength(L4 * i / N);
2226
+ const dx = m4.a * pt2.x + m4.c * pt2.y + m4.e - x3;
2227
+ const dy = m4.b * pt2.x + m4.d * pt2.y + m4.f - y2;
2100
2228
  const d2 = dx * dx + dy * dy;
2101
2229
  if (d2 < best) best = d2;
2102
2230
  }
2103
2231
  return Math.sqrt(best);
2104
2232
  };
2105
- const refineHitCorridor = (mark, x3, y4, sel) => {
2233
+ const refineHitCorridor = (mark, x3, y2, sel) => {
2106
2234
  try {
2107
2235
  if (!mark || !isInvisibleStrokePath(mark) || !mark.getAttribute("data-row-idx")) return mark;
2108
- const stack = doc.elementsFromPoint(x3, y4);
2236
+ const stack = doc.elementsFromPoint(x3, y2);
2109
2237
  const candidates = [];
2110
2238
  for (const el of stack) {
2111
2239
  if (!root.contains(el)) continue;
@@ -2119,7 +2247,7 @@ function createMarkResolver(env) {
2119
2247
  let best = mark;
2120
2248
  let bestD = Number.MAX_VALUE;
2121
2249
  for (const el of candidates) {
2122
- const d2 = distToPathCenterline(el, x3, y4);
2250
+ const d2 = distToPathCenterline(el, x3, y2);
2123
2251
  if (d2 < bestD) {
2124
2252
  bestD = d2;
2125
2253
  best = el;
@@ -2141,13 +2269,13 @@ function createMarkResolver(env) {
2141
2269
  const findMark = (target, sel = ".d3-mark", ev) => {
2142
2270
  if (!isElement(target)) return null;
2143
2271
  const el = target;
2144
- const m2 = el.closest(sel);
2145
- if (m2 && ev) return refineHitCorridor(m2, ev.clientX, ev.clientY, sel);
2146
- return m2;
2272
+ const m4 = el.closest(sel);
2273
+ if (m4 && ev) return refineHitCorridor(m4, ev.clientX, ev.clientY, sel);
2274
+ return m4;
2147
2275
  };
2148
- const penetrateOverlayAt = (x3, y4, sel) => {
2276
+ const penetrateOverlayAt = (x3, y2, sel) => {
2149
2277
  try {
2150
- const stack = doc.elementsFromPoint(x3, y4);
2278
+ const stack = doc.elementsFromPoint(x3, y2);
2151
2279
  for (const el of stack) {
2152
2280
  if (!root.contains(el) || !isElement(el)) continue;
2153
2281
  const cand = el.matches(sel) ? el : el.closest(sel);
@@ -2159,7 +2287,7 @@ function createMarkResolver(env) {
2159
2287
  }
2160
2288
  return null;
2161
2289
  };
2162
- const resolveByGeometry = (x3, y4, sel) => {
2290
+ const resolveByGeometry = (x3, y2, sel) => {
2163
2291
  try {
2164
2292
  const cands = root.querySelectorAll(sel);
2165
2293
  let best = null, bestArea = Number.MAX_VALUE;
@@ -2168,7 +2296,7 @@ function createMarkResolver(env) {
2168
2296
  if (!el.getAttribute("data-row-idx")) continue;
2169
2297
  const r2 = el.getBoundingClientRect ? el.getBoundingClientRect() : null;
2170
2298
  if (!r2 || r2.width <= 0 || r2.height <= 0) continue;
2171
- if (x3 < r2.left || x3 > r2.right || y4 < r2.top || y4 > r2.bottom) continue;
2299
+ if (x3 < r2.left || x3 > r2.right || y2 < r2.top || y2 > r2.bottom) continue;
2172
2300
  const area = r2.width * r2.height;
2173
2301
  if (area < bestArea) {
2174
2302
  bestArea = area;
@@ -2216,10 +2344,10 @@ function collectD3GlyphCenters(container, baseRect, out) {
2216
2344
  if (cArea <= 0) return false;
2217
2345
  for (let mj = 0; mj < rects.length; mj++) {
2218
2346
  if (mj === ci) continue;
2219
- const m2 = rects[mj];
2220
- const mArea = m2.width * m2.height;
2347
+ const m4 = rects[mj];
2348
+ const mArea = m4.width * m4.height;
2221
2349
  if (mArea <= 0 || mArea >= cArea) continue;
2222
- if (m2.left >= c2.left - EPS2 && m2.right <= c2.right + EPS2 && m2.top >= c2.top - EPS2 && m2.bottom <= c2.bottom + EPS2) return true;
2350
+ if (m4.left >= c2.left - EPS2 && m4.right <= c2.right + EPS2 && m4.top >= c2.top - EPS2 && m4.bottom <= c2.bottom + EPS2) return true;
2223
2351
  }
2224
2352
  return false;
2225
2353
  };
@@ -2236,9 +2364,9 @@ function collectD3GlyphCenters(container, baseRect, out) {
2236
2364
  const ctm = el.getScreenCTM();
2237
2365
  const cxN = parseFloat(cxA), cyN = parseFloat(cyA);
2238
2366
  if (ctm && isFinite(cxN) && isFinite(cyN)) {
2239
- const p2 = new Point(cxN, cyN).matrixTransform(ctm);
2240
- sx = p2.x;
2241
- sy = p2.y;
2367
+ const p4 = new Point(cxN, cyN).matrixTransform(ctm);
2368
+ sx = p4.x;
2369
+ sy = p4.y;
2242
2370
  }
2243
2371
  }
2244
2372
  if (sx === void 0 && tag === "path" && typeof el.getPointAtLength === "function") {
@@ -2250,14 +2378,14 @@ function collectD3GlyphCenters(container, baseRect, out) {
2250
2378
  const isArcSector = /[Aa]/.test(dAttr) && !/[CcSsQqTt]/.test(dAttr);
2251
2379
  let local;
2252
2380
  if (isArcSector) {
2253
- const N2 = 24;
2381
+ const N = 24;
2254
2382
  let ax = 0, ay = 0;
2255
- for (let k3 = 0; k3 < N2; k3++) {
2256
- const sp = el.getPointAtLength(len * k3 / N2);
2383
+ for (let k3 = 0; k3 < N; k3++) {
2384
+ const sp = el.getPointAtLength(len * k3 / N);
2257
2385
  ax += sp.x;
2258
2386
  ay += sp.y;
2259
2387
  }
2260
- const cand = new Point(ax / N2, ay / N2);
2388
+ const cand = new Point(ax / N, ay / N);
2261
2389
  let inside = true;
2262
2390
  try {
2263
2391
  if (typeof el.isPointInFill === "function") {
@@ -2269,9 +2397,9 @@ function collectD3GlyphCenters(container, baseRect, out) {
2269
2397
  if (inside) local = cand;
2270
2398
  }
2271
2399
  if (!local) local = el.getPointAtLength(len / 2);
2272
- const p2 = local.matrixTransform(ctm);
2273
- sx = p2.x;
2274
- sy = p2.y;
2400
+ const p4 = local.matrixTransform(ctm);
2401
+ sx = p4.x;
2402
+ sy = p4.y;
2275
2403
  }
2276
2404
  } catch {
2277
2405
  }
@@ -2296,19 +2424,19 @@ function paintSelectionGlyphs(overlay, centers, style) {
2296
2424
  const count = Math.min(centers.length, style.max ?? 600);
2297
2425
  for (let i = 0; i < count; i++) {
2298
2426
  const c2 = centers[i];
2299
- const g3 = doc.createElement("span");
2300
- g3.className = SELECTION_GLYPH_CLASS;
2301
- g3.textContent = style.symbol;
2302
- g3.style.position = "absolute";
2303
- g3.style.left = c2.x + "px";
2304
- g3.style.top = c2.y + "px";
2305
- g3.style.transform = "translate(-50%, -50%)";
2306
- g3.style.font = "700 11px/1 system-ui, -apple-system, Segoe UI, sans-serif";
2307
- g3.style.color = style.color;
2427
+ const g5 = doc.createElement("span");
2428
+ g5.className = SELECTION_GLYPH_CLASS;
2429
+ g5.textContent = style.symbol;
2430
+ g5.style.position = "absolute";
2431
+ g5.style.left = c2.x + "px";
2432
+ g5.style.top = c2.y + "px";
2433
+ g5.style.transform = "translate(-50%, -50%)";
2434
+ g5.style.font = "700 11px/1 system-ui, -apple-system, Segoe UI, sans-serif";
2435
+ g5.style.color = style.color;
2308
2436
  const halo = style.halo;
2309
- g3.style.textShadow = `-1px -1px 1px ${halo}, 1px -1px 1px ${halo}, -1px 1px 1px ${halo}, 1px 1px 1px ${halo}, 0 0 2px ${halo}`;
2310
- g3.style.pointerEvents = "none";
2311
- frag.appendChild(g3);
2437
+ g5.style.textShadow = `-1px -1px 1px ${halo}, 1px -1px 1px ${halo}, -1px 1px 1px ${halo}, 1px 1px 1px ${halo}, 0 0 2px ${halo}`;
2438
+ g5.style.pointerEvents = "none";
2439
+ frag.appendChild(g5);
2312
2440
  }
2313
2441
  overlay.appendChild(frag);
2314
2442
  return count;
@@ -2418,7 +2546,7 @@ function ensureCrossfilterHitTargets(container, doc) {
2418
2546
  }
2419
2547
 
2420
2548
  // src/blankRender.ts
2421
- var EMPTY2 = { markCount: 0, legendMarkCount: 0, containerKind: "empty" };
2549
+ var EMPTY2 = { markCount: 0, legendMarkCount: 0, containerKind: "empty", declaresNoRowMarks: false };
2422
2550
  function censusMarks(container) {
2423
2551
  if (!container || typeof container.querySelectorAll !== "function") return EMPTY2;
2424
2552
  try {
@@ -2435,7 +2563,8 @@ function censusMarks(container) {
2435
2563
  return {
2436
2564
  markCount: marks.size,
2437
2565
  legendMarkCount: legend.size,
2438
- containerKind: hasSvg ? "svg" : hasAnything ? "html" : "empty"
2566
+ containerKind: hasSvg ? "svg" : hasAnything ? "html" : "empty",
2567
+ declaresNoRowMarks: !!container.querySelector(`[${NO_ROW_MARKS_ATTR}]`)
2439
2568
  };
2440
2569
  } catch {
2441
2570
  return EMPTY2;
@@ -2443,13 +2572,14 @@ function censusMarks(container) {
2443
2572
  }
2444
2573
  function isBlankRender(i) {
2445
2574
  if (i.contractUntagged) return false;
2575
+ if (i.declaresNoRowMarks) return false;
2446
2576
  if (i.animated) return false;
2447
2577
  if (i.authoredNoDataText) return false;
2448
2578
  if (!(i.rows > 0)) return false;
2449
2579
  return i.markCount === 0;
2450
2580
  }
2451
2581
  function blankRenderFlag(lang, cause) {
2452
- const clean = (s) => String(s || "unknown").toLowerCase().replace(/[^a-z0-9-]+/g, "-");
2582
+ const clean = (s2) => String(s2 || "unknown").toLowerCase().replace(/[^a-z0-9-]+/g, "-");
2453
2583
  return `blankrender:${clean(lang)}:${clean(cause)}`;
2454
2584
  }
2455
2585
 
@@ -2473,8 +2603,8 @@ function styleOf2(el, doc) {
2473
2603
  }
2474
2604
  }
2475
2605
  function attrOrComputed(el, name, cs) {
2476
- const a2 = el.getAttribute?.(name);
2477
- if (a2 !== null && a2 !== void 0 && String(a2).trim() !== "") return String(a2).trim();
2606
+ const a3 = el.getAttribute?.(name);
2607
+ if (a3 !== null && a3 !== void 0 && String(a3).trim() !== "") return String(a3).trim();
2478
2608
  const c2 = cs?.[name === "stroke-width" ? "strokeWidth" : name];
2479
2609
  return c2 === null || c2 === void 0 ? "" : String(c2).trim();
2480
2610
  }
@@ -2483,9 +2613,9 @@ function isUnfilled(fill) {
2483
2613
  return f4 === "none" || f4 === "transparent" || f4 === "rgba(0, 0, 0, 0)" || f4 === "rgba(0,0,0,0)";
2484
2614
  }
2485
2615
  function widthPx(raw) {
2486
- const m2 = /^(-?\d+(?:\.\d+)?)\s*(px)?$/i.exec(raw);
2487
- if (!m2) return NaN;
2488
- const n = parseFloat(m2[1]);
2616
+ const m4 = /^(-?\d+(?:\.\d+)?)\s*(px)?$/i.exec(raw);
2617
+ if (!m4) return NaN;
2618
+ const n = parseFloat(m4[1]);
2489
2619
  return isFinite(n) ? n : NaN;
2490
2620
  }
2491
2621
  function censusHitBands(container, doc) {
@@ -2503,13 +2633,13 @@ function censusHitBands(container, doc) {
2503
2633
  if (!OPEN_TAGS.has(tag)) continue;
2504
2634
  const cs = styleOf2(el, ownerDoc);
2505
2635
  const open = isUnfilled(attrOrComputed(el, "fill", cs));
2506
- const w2 = widthPx(attrOrComputed(el, "stroke-width", cs) || "1");
2636
+ const w3 = widthPx(attrOrComputed(el, "stroke-width", cs) || "1");
2507
2637
  const geom = String(el.getAttribute?.("d") ?? "") || `${tag}#${String(el.getAttribute?.(ROW_IDX_ATTR) ?? "")}`;
2508
2638
  const inert = String(cs?.pointerEvents ?? el.style?.pointerEvents ?? "") === "none";
2509
- rows.push({ el, geom, w: w2, open, inert });
2510
- if (isFinite(w2)) {
2639
+ rows.push({ el, geom, w: w3, open, inert });
2640
+ if (isFinite(w3)) {
2511
2641
  const prev = widestByGeom.get(geom);
2512
- if (prev === void 0 || w2 > prev) widestByGeom.set(geom, w2);
2642
+ if (prev === void 0 || w3 > prev) widestByGeom.set(geom, w3);
2513
2643
  }
2514
2644
  }
2515
2645
  const out = { ...EMPTY3 };
@@ -2542,34 +2672,34 @@ var VALUE_AXIS_MIN_FIT = 0.8;
2542
2672
  var MIN_AXIS_SPAN_PX = 40;
2543
2673
  var EMPTY4 = { marks: 0, axis: "", column: "", fit: 0, offShare: 0, medianOffRadii: 0 };
2544
2674
  function num(el, name) {
2545
- const v2 = el.getAttribute?.(name);
2546
- if (v2 === null || v2 === void 0 || String(v2).trim() === "") return NaN;
2547
- return parseFloat(String(v2));
2675
+ const v = el.getAttribute?.(name);
2676
+ if (v === null || v === void 0 || String(v).trim() === "") return NaN;
2677
+ return parseFloat(String(v));
2548
2678
  }
2549
2679
  function median(xs) {
2550
2680
  if (!xs.length) return NaN;
2551
- const s = [...xs].sort((a2, b4) => a2 - b4);
2552
- const m2 = s.length >> 1;
2553
- return s.length % 2 ? s[m2] : (s[m2 - 1] + s[m2]) / 2;
2681
+ const s2 = [...xs].sort((a3, b4) => a3 - b4);
2682
+ const m4 = s2.length >> 1;
2683
+ return s2.length % 2 ? s2[m4] : (s2[m4 - 1] + s2[m4]) / 2;
2554
2684
  }
2555
- function robustLine(v2, pos) {
2556
- const n = v2.length;
2685
+ function robustLine(v, pos) {
2686
+ const n = v.length;
2557
2687
  const step = Math.max(1, Math.floor(n / FIT_SAMPLE));
2558
2688
  const idx = [];
2559
2689
  for (let i = 0; i < n; i += step) idx.push(i);
2560
2690
  const slopes = [];
2561
- for (let p2 = 0; p2 < idx.length; p2++) {
2562
- for (let q2 = p2 + 1; q2 < idx.length; q2++) {
2563
- const dv = v2[idx[q2]] - v2[idx[p2]];
2691
+ for (let p4 = 0; p4 < idx.length; p4++) {
2692
+ for (let q2 = p4 + 1; q2 < idx.length; q2++) {
2693
+ const dv = v[idx[q2]] - v[idx[p4]];
2564
2694
  if (Math.abs(dv) < 1e-12) continue;
2565
- slopes.push((pos[idx[q2]] - pos[idx[p2]]) / dv);
2695
+ slopes.push((pos[idx[q2]] - pos[idx[p4]]) / dv);
2566
2696
  }
2567
2697
  }
2568
2698
  if (slopes.length < 3) return null;
2569
2699
  const b4 = median(slopes);
2570
2700
  if (!Number.isFinite(b4) || Math.abs(b4) < 1e-12) return null;
2571
- const a2 = median(pos.map((y4, i) => y4 - b4 * v2[i]));
2572
- return Number.isFinite(a2) ? { a: a2, b: b4 } : null;
2701
+ const a3 = median(pos.map((y2, i) => y2 - b4 * v[i]));
2702
+ return Number.isFinite(a3) ? { a: a3, b: b4 } : null;
2573
2703
  }
2574
2704
  function censusValuePlacement(container, data) {
2575
2705
  try {
@@ -2586,50 +2716,50 @@ function censusValuePlacement(container, data) {
2586
2716
  if (!/^\d+$/.test(raw)) continue;
2587
2717
  const i = +raw;
2588
2718
  const row = rows[i];
2589
- const x3 = num(el, "cx"), y4 = num(el, "cy"), r2 = num(el, "r");
2590
- if (!row || !Number.isFinite(x3) || !Number.isFinite(y4) || !(r2 > 0)) continue;
2719
+ const x3 = num(el, "cx"), y2 = num(el, "cy"), r2 = num(el, "r");
2720
+ if (!row || !Number.isFinite(x3) || !Number.isFinite(y2) || !(r2 > 0)) continue;
2591
2721
  seen.add(i);
2592
- dots.push({ row, x: x3, y: y4, r: r2 });
2722
+ dots.push({ row, x: x3, y: y2, r: r2 });
2593
2723
  }
2594
2724
  if (dots.length < MIN_MARKS2 || seen.size < dots.length * 0.9) return EMPTY4;
2595
2725
  let best = null;
2596
2726
  for (let c2 = 0; c2 < columns.length; c2++) {
2597
2727
  if (/^__.*__$/.test(String(columns[c2]?.name ?? ""))) continue;
2598
2728
  const vals = dots.map((d2) => {
2599
- const v2 = d2.row[c2];
2600
- return v2 === null || v2 === void 0 || v2 === "" ? NaN : typeof v2 === "number" ? v2 : Number(v2);
2729
+ const v = d2.row[c2];
2730
+ return v === null || v === void 0 || v === "" ? NaN : typeof v === "number" ? v : Number(v);
2601
2731
  });
2602
2732
  const finite = vals.filter(Number.isFinite);
2603
2733
  if (finite.length < dots.length * 0.9 || new Set(finite).size < 8) continue;
2604
- const logs = finite.every((v2) => v2 > 0) ? [false, true] : [false];
2734
+ const logs = finite.every((v) => v > 0) ? [false, true] : [false];
2605
2735
  for (const log of logs) {
2606
2736
  for (const axis of ["x", "y"]) {
2607
2737
  const keep = [];
2608
- const v2 = [], pos = [];
2738
+ const v = [], pos = [];
2609
2739
  dots.forEach((d2, k3) => {
2610
2740
  if (!Number.isFinite(vals[k3])) return;
2611
2741
  keep.push(k3);
2612
- v2.push(log ? Math.log10(vals[k3]) : vals[k3]);
2742
+ v.push(log ? Math.log10(vals[k3]) : vals[k3]);
2613
2743
  pos.push(axis === "x" ? d2.x : d2.y);
2614
2744
  });
2615
- const line = robustLine(v2, pos);
2745
+ const line = robustLine(v, pos);
2616
2746
  if (!line) continue;
2617
2747
  const lo = Math.min(...pos), hi = Math.max(...pos);
2618
2748
  if (hi - lo < MIN_AXIS_SPAN_PX) continue;
2619
- const mean = pos.reduce((s, p2) => s + p2, 0) / pos.length;
2749
+ const mean = pos.reduce((s2, p4) => s2 + p4, 0) / pos.length;
2620
2750
  let ssRes = 0, ssTot = 0;
2621
- const res = pos.map((p2, k3) => {
2622
- const e = p2 - (line.a + line.b * v2[k3]);
2751
+ const res = pos.map((p4, k3) => {
2752
+ const e = p4 - (line.a + line.b * v[k3]);
2623
2753
  ssRes += e * e;
2624
- ssTot += (p2 - mean) ** 2;
2754
+ ssTot += (p4 - mean) ** 2;
2625
2755
  return e;
2626
2756
  });
2627
2757
  if (ssTot <= 0) continue;
2628
2758
  const fit = 1 - ssRes / ssTot;
2629
2759
  if (fit >= VALUE_AXIS_MIN_FIT && (!best || fit > best.fit)) {
2630
2760
  const full = new Array(dots.length).fill(NaN);
2631
- keep.forEach((k3, j3) => {
2632
- full[k3] = res[j3];
2761
+ keep.forEach((k3, j4) => {
2762
+ full[k3] = res[j4];
2633
2763
  });
2634
2764
  best = { col: c2, axis, fit, res: full, log };
2635
2765
  }
@@ -2662,8 +2792,8 @@ function censusValuePlacement(container, data) {
2662
2792
  }
2663
2793
  function valuePlacementFlag(c2) {
2664
2794
  if (c2.marks === 0) return "";
2665
- const s = c2.offShare;
2666
- const bucket = s <= 0 ? 0 : s < 5 ? 1 : s < 20 ? 5 : s < 50 ? 20 : 50;
2795
+ const s2 = c2.offShare;
2796
+ const bucket = s2 <= 0 ? 0 : s2 < 5 ? 1 : s2 < 20 ? 5 : s2 < 50 ? 20 : 50;
2667
2797
  return "place:d3:off" + bucket;
2668
2798
  }
2669
2799
 
@@ -2680,12 +2810,12 @@ function contentExtentOf(boxes) {
2680
2810
  if (usable.length === 0) return { w: 0, h: 0, source: "none" };
2681
2811
  const inFlow = usable.filter((b4) => !b4.floating);
2682
2812
  const counted = inFlow.length > 0 ? inFlow : usable;
2683
- let w2 = 0, h3 = 0;
2813
+ let w3 = 0, h4 = 0;
2684
2814
  for (const b4 of counted) {
2685
- if (b4.right > w2) w2 = b4.right;
2686
- if (b4.bottom > h3) h3 = b4.bottom;
2815
+ if (b4.right > w3) w3 = b4.right;
2816
+ if (b4.bottom > h4) h4 = b4.bottom;
2687
2817
  }
2688
- return { w: w2, h: h3, source: inFlow.length > 0 ? "in-flow" : "all-floating" };
2818
+ return { w: w3, h: h4, source: inFlow.length > 0 ? "in-flow" : "all-floating" };
2689
2819
  }
2690
2820
  function scrollFitFor(contentW, contentH, viewportW, viewportH, slackPx = SCROLL_SLACK_PX) {
2691
2821
  return {
@@ -2695,8 +2825,8 @@ function scrollFitFor(contentW, contentH, viewportW, viewportH, slackPx = SCROLL
2695
2825
  }
2696
2826
  var FIT_CONTENT_SELECTOR = "text, .d3-mark, .d3-legend-mark";
2697
2827
  var PHANTOM_FRACTION = 0.95;
2698
- function isPhantomBox(w2, h3, refW, refH) {
2699
- return w2 > refW * PHANTOM_FRACTION || h3 > refH * PHANTOM_FRACTION;
2828
+ function isPhantomBox(w3, h4, refW, refH) {
2829
+ return w3 > refW * PHANTOM_FRACTION || h4 > refH * PHANTOM_FRACTION;
2700
2830
  }
2701
2831
  var MAX_FRAME_GROW_FACTOR = 20;
2702
2832
  function planFrameGrow(inkBottomPx, elHeightPx, viewBoxH, ctmScale, slackPx = SCROLL_SLACK_PX, maxFactor = MAX_FRAME_GROW_FACTOR) {
@@ -2771,10 +2901,10 @@ function axisPinPlacement(band, scrollTop, viewportH) {
2771
2901
 
2772
2902
  // src/fitDom.ts
2773
2903
  var FIT_WALK_CAP = 8e3;
2774
- function ctmScaleOf(m2) {
2775
- if (!m2) return 0;
2776
- const s = Math.hypot(m2.a, m2.b);
2777
- return isFinite(s) && s > 0 ? s : 0;
2904
+ function ctmScaleOf(m4) {
2905
+ if (!m4) return 0;
2906
+ const s2 = Math.hypot(m4.a, m4.b);
2907
+ return isFinite(s2) && s2 > 0 ? s2 : 0;
2778
2908
  }
2779
2909
  function svgInkReach(svg) {
2780
2910
  try {
@@ -2939,8 +3069,8 @@ function pinScrolledAxis(container, svg) {
2939
3069
  const view = doc && doc.defaultView || globalThis;
2940
3070
  const svgBox = svg.getBoundingClientRect();
2941
3071
  if (!(svgBox.width > 0) || !(svgBox.height > 0)) return noPin("unmeasurable");
2942
- const m2 = typeof svg.getScreenCTM === "function" ? svg.getScreenCTM() : null;
2943
- if (!m2 || !(m2.a > 0) || !(m2.d > 0) || !isFinite(m2.e) || !isFinite(m2.f)) return noPin("no-ctm");
3072
+ const m4 = typeof svg.getScreenCTM === "function" ? svg.getScreenCTM() : null;
3073
+ if (!m4 || !(m4.a > 0) || !(m4.d > 0) || !isFinite(m4.e) || !isFinite(m4.f)) return noPin("no-ctm");
2944
3074
  const viewportH = container.clientHeight;
2945
3075
  if (!(viewportH > 0)) return noPin("unmeasurable");
2946
3076
  const rel = (r2) => ({ left: r2.left - svgBox.left, top: r2.top - svgBox.top, right: r2.right - svgBox.left, bottom: r2.bottom - svgBox.top });
@@ -2949,11 +3079,11 @@ function pinScrolledAxis(container, svg) {
2949
3079
  for (let i = 0; i < ticks.length; i++) {
2950
3080
  const t = ticks[i];
2951
3081
  if (t.closest("svg") !== svg) continue;
2952
- const p2 = t.parentElement;
2953
- if (!p2) continue;
2954
- const list = byAxis.get(p2);
3082
+ const p4 = t.parentElement;
3083
+ if (!p4) continue;
3084
+ const list = byAxis.get(p4);
2955
3085
  if (list) list.push(t);
2956
- else byAxis.set(p2, [t]);
3086
+ else byAxis.set(p4, [t]);
2957
3087
  }
2958
3088
  const axes = [];
2959
3089
  const cands = [];
@@ -2994,14 +3124,14 @@ function pinScrolledAxis(container, svg) {
2994
3124
  if (r2.top >= band.top && r2.bottom <= band.bottom) carried.push(t);
2995
3125
  }
2996
3126
  const pinSvg = doc.createElementNS(SVG_NS2, "svg");
2997
- for (const a2 of ["font-family", "font-size", "font-weight", "font", "fill", "color", "text-rendering"]) {
2998
- const v2 = svg.getAttribute(a2);
2999
- if (v2) pinSvg.setAttribute(a2, v2);
3127
+ for (const a3 of ["font-family", "font-size", "font-weight", "font", "fill", "color", "text-rendering"]) {
3128
+ const v = svg.getAttribute(a3);
3129
+ if (v) pinSvg.setAttribute(a3, v);
3000
3130
  }
3001
3131
  const styles = svg.querySelectorAll("style");
3002
3132
  for (let i = 0; i < styles.length; i++) pinSvg.appendChild(styles[i].cloneNode(true));
3003
- const vbX = (svgBox.left - m2.e) / m2.a, vbY = (svgBox.top + band.top - m2.f) / m2.d;
3004
- const vbW = svgBox.width / m2.a, vbH = bandPx / m2.d;
3133
+ const vbX = (svgBox.left - m4.e) / m4.a, vbY = (svgBox.top + band.top - m4.f) / m4.d;
3134
+ const vbW = svgBox.width / m4.a, vbH = bandPx / m4.d;
3005
3135
  pinSvg.setAttribute("viewBox", `${vbX} ${vbY} ${vbW} ${vbH}`);
3006
3136
  pinSvg.setAttribute("preserveAspectRatio", "none");
3007
3137
  pinSvg.setAttribute("width", String(svgBox.width));
@@ -3020,17 +3150,17 @@ function pinScrolledAxis(container, svg) {
3020
3150
  for (const t of carried) cloneWithChain(t, svg, pinSvg);
3021
3151
  const overlay = doc.createElement("div");
3022
3152
  overlay.setAttribute("data-bic-axis-pin", "1");
3023
- const o2 = overlay.style;
3024
- o2.position = "absolute";
3025
- o2.margin = "0";
3026
- o2.padding = "0";
3027
- o2.border = "0";
3028
- o2.width = `${svgBox.width}px`;
3029
- o2.height = `${bandPx}px`;
3030
- o2.overflow = "hidden";
3031
- o2.pointerEvents = "none";
3032
- o2.zIndex = "3";
3033
- o2.display = "none";
3153
+ const o4 = overlay.style;
3154
+ o4.position = "absolute";
3155
+ o4.margin = "0";
3156
+ o4.padding = "0";
3157
+ o4.border = "0";
3158
+ o4.width = `${svgBox.width}px`;
3159
+ o4.height = `${bandPx}px`;
3160
+ o4.overflow = "hidden";
3161
+ o4.pointerEvents = "none";
3162
+ o4.zIndex = "3";
3163
+ o4.display = "none";
3034
3164
  overlay.appendChild(pinSvg);
3035
3165
  try {
3036
3166
  const cs = view.getComputedStyle(container);
@@ -3047,12 +3177,12 @@ function pinScrolledAxis(container, svg) {
3047
3177
  const st = container.scrollTop, vh = container.clientHeight;
3048
3178
  const edge2 = axisPinPlacement(contentBand, st, vh);
3049
3179
  if (!edge2) {
3050
- o2.display = "none";
3180
+ o4.display = "none";
3051
3181
  return null;
3052
3182
  }
3053
- o2.display = "block";
3054
- o2.left = `${svgLeft}px`;
3055
- o2.top = `${edge2 === "top" ? st : st + vh - bandPx}px`;
3183
+ o4.display = "block";
3184
+ o4.left = `${svgLeft}px`;
3185
+ o4.top = `${edge2 === "top" ? st : st + vh - bandPx}px`;
3056
3186
  return edge2;
3057
3187
  };
3058
3188
  const onScroll = () => {
@@ -3098,7 +3228,7 @@ function fitRenderedChart(container, opts = {}) {
3098
3228
  };
3099
3229
  if (!container) return result;
3100
3230
  try {
3101
- let svg = null;
3231
+ let svg = container.querySelector(`svg[${SNAPSHOT_SVG_ATTR}]`);
3102
3232
  for (let i = 0; i < container.children.length && !svg; i++) {
3103
3233
  const el = container.children[i];
3104
3234
  if (el.tagName && el.tagName.toLowerCase() === "svg") svg = el;
@@ -3174,13 +3304,13 @@ function fitRenderedChart(container, opts = {}) {
3174
3304
  // src/labelContrast.ts
3175
3305
  function parseRGBA(c2) {
3176
3306
  if (typeof c2 !== "string") return null;
3177
- const s = c2.trim();
3178
- const m2 = s.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i);
3179
- if (m2) return [parseFloat(m2[1]), parseFloat(m2[2]), parseFloat(m2[3]), m2[4] !== void 0 ? parseFloat(m2[4]) : 1];
3180
- let h3 = s.replace(/^#/, "");
3181
- if (h3.length === 3) h3 = h3.split("").map((ch) => ch + ch).join("");
3182
- if (h3.length === 6 && /^[0-9a-fA-F]{6}$/.test(h3)) {
3183
- return [parseInt(h3.slice(0, 2), 16), parseInt(h3.slice(2, 4), 16), parseInt(h3.slice(4, 6), 16), 1];
3307
+ const s2 = c2.trim();
3308
+ const m4 = s2.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i);
3309
+ if (m4) return [parseFloat(m4[1]), parseFloat(m4[2]), parseFloat(m4[3]), m4[4] !== void 0 ? parseFloat(m4[4]) : 1];
3310
+ let h4 = s2.replace(/^#/, "");
3311
+ if (h4.length === 3) h4 = h4.split("").map((ch) => ch + ch).join("");
3312
+ if (h4.length === 6 && /^[0-9a-fA-F]{6}$/.test(h4)) {
3313
+ return [parseInt(h4.slice(0, 2), 16), parseInt(h4.slice(2, 4), 16), parseInt(h4.slice(4, 6), 16), 1];
3184
3314
  }
3185
3315
  return null;
3186
3316
  }
@@ -3191,8 +3321,8 @@ var WHITE_TEXT_BG_LUM = 0.5;
3191
3321
  var PILL_MIN_ALPHA = 0.05;
3192
3322
  var PILL_OPAQUE_ALPHA = 0.85;
3193
3323
  var PAGE_MATCH_TOLERANCE = 2;
3194
- function isPillBackdropAlpha(a2) {
3195
- return a2 >= PILL_MIN_ALPHA && a2 < PILL_OPAQUE_ALPHA;
3324
+ function isPillBackdropAlpha(a3) {
3325
+ return a3 >= PILL_MIN_ALPHA && a3 < PILL_OPAQUE_ALPHA;
3196
3326
  }
3197
3327
  var PILL_MIN_COVERAGE = 0.6;
3198
3328
  function pillBacksGlyph(overlapArea, glyphArea) {
@@ -3220,17 +3350,17 @@ function toRGBA(c2) {
3220
3350
  return parseRGBA(c2);
3221
3351
  }
3222
3352
  function compositeOver(fg, bg) {
3223
- const a2 = Math.max(0, Math.min(1, fg[3]));
3353
+ const a3 = Math.max(0, Math.min(1, fg[3]));
3224
3354
  return [
3225
- Math.round(fg[0] * a2 + bg[0] * (1 - a2)),
3226
- Math.round(fg[1] * a2 + bg[1] * (1 - a2)),
3227
- Math.round(fg[2] * a2 + bg[2] * (1 - a2))
3355
+ Math.round(fg[0] * a3 + bg[0] * (1 - a3)),
3356
+ Math.round(fg[1] * a3 + bg[1] * (1 - a3)),
3357
+ Math.round(fg[2] * a3 + bg[2] * (1 - a3))
3228
3358
  ];
3229
3359
  }
3230
3360
  function relativeLuminance(rgb) {
3231
- const lin = rgb.map((v2) => {
3232
- const s = v2 / 255;
3233
- return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
3361
+ const lin = rgb.map((v) => {
3362
+ const s2 = v / 255;
3363
+ return s2 <= 0.03928 ? s2 / 12.92 : Math.pow((s2 + 0.055) / 1.055, 2.4);
3234
3364
  });
3235
3365
  return 0.2126 * lin[0] + 0.7152 * lin[1] + 0.0722 * lin[2];
3236
3366
  }
@@ -3268,43 +3398,103 @@ function glyphSampleGrid(box, n = GLYPH_SAMPLE_N) {
3268
3398
  if (!box || !(box.width > 0) || !(box.height > 0) || !(n >= 1)) return out;
3269
3399
  const k3 = Math.floor(n);
3270
3400
  for (let i = 0; i < k3; i++) {
3271
- for (let j3 = 0; j3 < k3; j3++) {
3401
+ for (let j4 = 0; j4 < k3; j4++) {
3272
3402
  out.push({
3273
3403
  x: box.left + box.width * (i + 0.5) / k3,
3274
- y: box.top + box.height * (j3 + 0.5) / k3
3404
+ y: box.top + box.height * (j4 + 0.5) / k3
3275
3405
  });
3276
3406
  }
3277
3407
  }
3278
3408
  return out;
3279
3409
  }
3280
- function clamp01(v2) {
3281
- if (typeof v2 !== "number" || !isFinite(v2)) return 1;
3282
- return Math.max(0, Math.min(1, v2));
3410
+ var STRADDLE_COLS = 8;
3411
+ var STRADDLE_ROWS = 2;
3412
+ var STRADDLE_MIN_SHARE = 0.125;
3413
+ var STRADDLE_TARGET_CONTRAST = 4.5;
3414
+ var STRADDLE_PILL_ALPHA = 0.9;
3415
+ function straddleSampleGrid(box) {
3416
+ const out = [];
3417
+ if (!box || !(box.width > 0) || !(box.height > 0)) return out;
3418
+ for (let i = 0; i < STRADDLE_COLS; i++) {
3419
+ for (let j4 = 0; j4 < STRADDLE_ROWS; j4++) {
3420
+ out.push({
3421
+ x: box.left + box.width * (i + 0.5) / STRADDLE_COLS,
3422
+ y: box.top + box.height * (j4 + 0.5) / STRADDLE_ROWS
3423
+ });
3424
+ }
3425
+ }
3426
+ return out;
3427
+ }
3428
+ function backgroundGroups(bgs, tol = 8) {
3429
+ const groups = [];
3430
+ for (const b4 of bgs || []) {
3431
+ const g5 = groups.find((x3) => Math.abs(x3.rgb[0] - b4[0]) <= tol && Math.abs(x3.rgb[1] - b4[1]) <= tol && Math.abs(x3.rgb[2] - b4[2]) <= tol);
3432
+ if (g5) g5.n++;
3433
+ else groups.push({ rgb: [b4[0], b4[1], b4[2]], n: 1 });
3434
+ }
3435
+ return groups.sort((a3, b4) => b4.n - a3.n);
3436
+ }
3437
+ function straddles(bgs) {
3438
+ if (!bgs || bgs.length < 2) return false;
3439
+ const g5 = backgroundGroups(bgs);
3440
+ return g5.length >= 2 && g5[1].n / bgs.length >= STRADDLE_MIN_SHARE;
3441
+ }
3442
+ function minContrastOver(textColor, bgs) {
3443
+ const t = toRGBA(textColor);
3444
+ if (!t || !bgs || !bgs.length) return 0;
3445
+ let worst = Infinity;
3446
+ for (const b4 of bgs) {
3447
+ const tx = compositeOver(t, b4);
3448
+ worst = Math.min(worst, contrastRatio(relativeLuminance(tx), relativeLuminance(b4)));
3449
+ }
3450
+ return worst;
3451
+ }
3452
+ function pickColorOver(textColor, bgs, target = STRADDLE_TARGET_CONTRAST) {
3453
+ const cur = minContrastOver(textColor, bgs);
3454
+ if (cur >= target) return { color: String(textColor), contrast: cur, keep: true };
3455
+ const d2 = minContrastOver(DARK_TEXT, bgs), l2 = minContrastOver(LIGHT_TEXT, bgs);
3456
+ const best = d2 >= l2 ? { color: DARK_TEXT, contrast: d2 } : { color: LIGHT_TEXT, contrast: l2 };
3457
+ return best.contrast > cur ? { ...best, keep: false } : { color: String(textColor), contrast: cur, keep: true };
3458
+ }
3459
+ function clamp01(v) {
3460
+ if (typeof v !== "number" || !isFinite(v)) return 1;
3461
+ return Math.max(0, Math.min(1, v));
3283
3462
  }
3284
3463
  function hexToRGB(hex2) {
3285
- const p2 = toRGBA(hex2);
3286
- return [p2[0], p2[1], p2[2]];
3464
+ const p4 = toRGBA(hex2);
3465
+ return [p4[0], p4[1], p4[2]];
3287
3466
  }
3288
3467
 
3289
3468
  // src/labelContrastDom.ts
3290
3469
  var LABEL_CONTRAST_DONE_ATTR = "data-lch-contrast";
3291
3470
  var LABEL_CONTRAST_CAP = 2e3;
3292
- var EMPTY5 = { rects: 0, scanned: 0, fixed: 0, pillsBoosted: 0, offFill: 0, pageMajority: 0, paintedOver: 0 };
3471
+ var EMPTY5 = {
3472
+ rects: 0,
3473
+ scanned: 0,
3474
+ fixed: 0,
3475
+ pillsBoosted: 0,
3476
+ offFill: 0,
3477
+ pageMajority: 0,
3478
+ paintedOver: 0,
3479
+ straddlePills: 0,
3480
+ pillsExtended: 0,
3481
+ raised: 0
3482
+ };
3293
3483
  function backedSamples(el, pts) {
3294
3484
  try {
3295
3485
  const ge2 = el;
3296
3486
  if (typeof ge2.isPointInFill !== "function" || typeof ge2.getScreenCTM !== "function") return null;
3297
- const m2 = ge2.getScreenCTM();
3487
+ const m4 = ge2.getScreenCTM();
3298
3488
  const svg = ge2.ownerSVGElement;
3299
- if (!m2 || !svg || typeof svg.createSVGPoint !== "function") return null;
3489
+ if (!m4 || !svg || typeof svg.createSVGPoint !== "function") return null;
3300
3490
  if (pts.length === 0) return null;
3301
- const inv = m2.inverse();
3491
+ const inv = m4.inverse();
3302
3492
  const hit = [];
3303
3493
  for (let i = 0; i < pts.length; i++) {
3304
- const p2 = svg.createSVGPoint();
3305
- p2.x = pts[i].x;
3306
- p2.y = pts[i].y;
3307
- hit.push(ge2.isPointInFill(p2.matrixTransform(inv)));
3494
+ const p4 = svg.createSVGPoint();
3495
+ p4.x = pts[i].x;
3496
+ p4.y = pts[i].y;
3497
+ hit.push(ge2.isPointInFill(p4.matrixTransform(inv)));
3308
3498
  }
3309
3499
  return hit;
3310
3500
  } catch {
@@ -3325,6 +3515,109 @@ function drawnBeneath(shape, text, textRoot) {
3325
3515
  if (typeof shape.el.compareDocumentPosition !== "function") return true;
3326
3516
  return (shape.el.compareDocumentPosition(text) & DOC_POSITION_FOLLOWING) !== 0;
3327
3517
  }
3518
+ function sampleBackgrounds(shapes, pts, pageRGB, effAlpha) {
3519
+ if (pts.length === 0 || shapes.length === 0) return null;
3520
+ const ordered = shapes.slice().sort((a3, b4) => a3.ord - b4.ord);
3521
+ const masks = [];
3522
+ for (const mk of ordered) {
3523
+ const m4 = backedSamples(mk.el, pts);
3524
+ if (m4 === null) return null;
3525
+ masks.push(m4);
3526
+ }
3527
+ return pts.map((_4, i) => {
3528
+ let bg = [pageRGB[0], pageRGB[1], pageRGB[2]];
3529
+ for (let k3 = 0; k3 < ordered.length; k3++) {
3530
+ if (!masks[k3][i]) continue;
3531
+ const a3 = effAlpha(ordered[k3]);
3532
+ if (a3 < PILL_MIN_ALPHA) continue;
3533
+ const c2 = toRGBA(ordered[k3].fill);
3534
+ if (c2) bg = compositeOver([c2[0], c2[1], c2[2], a3], bg);
3535
+ }
3536
+ return bg;
3537
+ });
3538
+ }
3539
+ function extendPillOver(pill, tr) {
3540
+ try {
3541
+ if (String(pill.tagName || "").toLowerCase() !== "rect") return false;
3542
+ const ge2 = pill;
3543
+ if (typeof ge2.getScreenCTM !== "function") return false;
3544
+ const m4 = ge2.getScreenCTM();
3545
+ if (!m4 || Math.abs(m4.b) > 1e-6 || Math.abs(m4.c) > 1e-6 || !(m4.a > 0) || !(m4.d > 0)) return false;
3546
+ const inv = m4.inverse();
3547
+ const toUser = (x4, y4) => ({ x: inv.a * x4 + inv.c * y4 + inv.e, y: inv.b * x4 + inv.d * y4 + inv.f });
3548
+ const a3 = toUser(tr.left, tr.top), b4 = toUser(tr.right, tr.bottom);
3549
+ const num2 = (k3) => {
3550
+ const v = parseFloat(pill.getAttribute(k3) || "");
3551
+ return isFinite(v) ? v : NaN;
3552
+ };
3553
+ const x3 = num2("x"), y2 = num2("y"), w3 = num2("width"), h4 = num2("height");
3554
+ if (![x3, y2, w3, h4].every((v) => isFinite(v)) || !(w3 > 0) || !(h4 > 0)) return false;
3555
+ const pad = 1 / m4.a;
3556
+ const x0 = Math.min(x3, Math.min(a3.x, b4.x) - pad), x1 = Math.max(x3 + w3, Math.max(a3.x, b4.x) + pad);
3557
+ const y0 = Math.min(y2, Math.min(a3.y, b4.y) - pad), y1 = Math.max(y2 + h4, Math.max(a3.y, b4.y) + pad);
3558
+ if (x0 >= x3 - 0.01 && x1 <= x3 + w3 + 0.01 && y0 >= y2 - 0.01 && y1 <= y2 + h4 + 0.01) return false;
3559
+ pill.setAttribute("x", String(+x0.toFixed(2)));
3560
+ pill.setAttribute("y", String(+y0.toFixed(2)));
3561
+ pill.setAttribute("width", String(+(x1 - x0).toFixed(2)));
3562
+ pill.setAttribute("height", String(+(y1 - y0).toFixed(2)));
3563
+ return true;
3564
+ } catch {
3565
+ return false;
3566
+ }
3567
+ }
3568
+ function raiseOverOccluders(tx, occluders, tr, effAlpha) {
3569
+ try {
3570
+ const parent = tx.parentNode;
3571
+ if (!parent || typeof parent.contains !== "function") return false;
3572
+ if (!occluders.every((o4) => parent.contains(o4.el))) return false;
3573
+ const pts = straddleSampleGrid(tr);
3574
+ if (pts.length === 0) return false;
3575
+ const covered = pts.map(() => false);
3576
+ let opaque = 0;
3577
+ for (const o4 of occluders) {
3578
+ if (effAlpha(o4) < PILL_OPAQUE_ALPHA) continue;
3579
+ const m4 = backedSamples(o4.el, pts);
3580
+ if (m4 === null) return false;
3581
+ opaque++;
3582
+ for (let i = 0; i < m4.length; i++) if (m4[i]) covered[i] = true;
3583
+ }
3584
+ const n = covered.filter(Boolean).length;
3585
+ if (opaque === 0 || n === 0 || n === pts.length) return false;
3586
+ parent.appendChild(tx);
3587
+ return true;
3588
+ } catch {
3589
+ return false;
3590
+ }
3591
+ }
3592
+ var LABEL_PILL_CLASS = "lch-label-pill";
3593
+ function addPill(tx, fill) {
3594
+ try {
3595
+ const parent = tx.parentNode;
3596
+ if (!parent || typeof tx.getBBox !== "function") return null;
3597
+ const bb = tx.getBBox();
3598
+ if (!bb || !(bb.width > 0) || !(bb.height > 0)) return null;
3599
+ const doc = tx.ownerDocument;
3600
+ if (!doc) return null;
3601
+ const r2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
3602
+ const px = Math.max(2, bb.height * 0.2), py = 1;
3603
+ r2.setAttribute("x", String(+(bb.x - px).toFixed(2)));
3604
+ r2.setAttribute("y", String(+(bb.y - py).toFixed(2)));
3605
+ r2.setAttribute("width", String(+(bb.width + 2 * px).toFixed(2)));
3606
+ r2.setAttribute("height", String(+(bb.height + 2 * py).toFixed(2)));
3607
+ r2.setAttribute("rx", "2");
3608
+ r2.setAttribute("fill", fill);
3609
+ r2.setAttribute("fill-opacity", String(STRADDLE_PILL_ALPHA));
3610
+ r2.setAttribute("pointer-events", "none");
3611
+ r2.setAttribute("class", LABEL_PILL_CLASS);
3612
+ r2.setAttribute(LABEL_CONTRAST_DONE_ATTR, "1");
3613
+ const tf = tx.getAttribute("transform");
3614
+ if (tf) r2.setAttribute("transform", tf);
3615
+ parent.insertBefore(r2, tx);
3616
+ return r2;
3617
+ } catch {
3618
+ return null;
3619
+ }
3620
+ }
3328
3621
  function applyLabelContrast(container, opts = {}) {
3329
3622
  const report = { ...EMPTY5 };
3330
3623
  if (!container) {
@@ -3395,12 +3688,23 @@ function applyLabelContrast(container, opts = {}) {
3395
3688
  const glyphArea = tr.width * tr.height;
3396
3689
  const txRoot = paintRoot(tx, container);
3397
3690
  let over = 0;
3691
+ const occluders = [];
3398
3692
  const boxed = rects.map((mk) => ({ mk, ov: ovArea(mk.r) })).filter((x3) => {
3399
3693
  if (!(x3.ov > 0)) return false;
3400
3694
  if (drawnBeneath(x3.mk, tx, txRoot)) return true;
3401
- if (effAlpha(x3.mk) >= PILL_MIN_ALPHA) over++;
3695
+ if (effAlpha(x3.mk) >= PILL_MIN_ALPHA) {
3696
+ over++;
3697
+ occluders.push(x3.mk);
3698
+ }
3402
3699
  return false;
3403
3700
  });
3701
+ const raised = occluders.length > 0 && raiseOverOccluders(tx, occluders, tr, effAlpha);
3702
+ if (raised) {
3703
+ report.raised++;
3704
+ tx.setAttribute(LABEL_CONTRAST_DONE_ATTR, "1");
3705
+ for (const mk of occluders) boxed.push({ mk, ov: ovArea(mk.r) });
3706
+ over = 0;
3707
+ }
3404
3708
  if (over > 0) report.paintedOver++;
3405
3709
  const pts = glyphSampleGrid({ left: tr.left, top: tr.top, width: tr.width, height: tr.height });
3406
3710
  const painted = pts.map(() => false);
@@ -3422,17 +3726,21 @@ function applyLabelContrast(container, opts = {}) {
3422
3726
  }).filter((x3) => x3.ov > 0);
3423
3727
  if (under.length === 0 && boxed.length > 0) report.offFill++;
3424
3728
  if (under.length === 0) continue;
3729
+ let raisedOnPage = false;
3425
3730
  if (unmeasured === 0 && pts.length > 0) {
3426
3731
  let held = 0;
3427
3732
  for (let i = 0; i < painted.length; i++) if (painted[i]) held++;
3428
3733
  if (!backingHoldsGlyph(glyphArea * (held / pts.length), glyphArea)) {
3429
- report.pageMajority++;
3430
- continue;
3734
+ if (!raised) {
3735
+ report.pageMajority++;
3736
+ continue;
3737
+ }
3738
+ raisedOnPage = true;
3431
3739
  }
3432
3740
  }
3433
3741
  report.scanned++;
3434
3742
  const opaqueUnder = under.filter((x3) => effAlpha(x3.mk) >= PILL_OPAQUE_ALPHA);
3435
- const cellEntry = (opaqueUnder.length ? opaqueUnder : under).reduce((a2, b4) => b4.ov > a2.ov || b4.ov === a2.ov && b4.mk.ord > a2.mk.ord ? b4 : a2);
3743
+ const cellEntry = (opaqueUnder.length ? opaqueUnder : under).reduce((a3, b4) => b4.ov > a3.ov || b4.ov === a3.ov && b4.mk.ord > a3.mk.ord ? b4 : a3);
3436
3744
  const cell = cellEntry.mk;
3437
3745
  const pill = under.find((x3) => x3.mk !== cell && isPillBackdropAlpha(effAlpha(x3.mk)) && x3.mk.ord > cell.ord && pillBacksGlyph(x3.ov, glyphArea))?.mk;
3438
3746
  const cellRGBA = toRGBA(cell.fill);
@@ -3444,9 +3752,27 @@ function applyLabelContrast(container, opts = {}) {
3444
3752
  pill.el.setAttribute("fill", `rgb(${pr[0]}, ${pr[1]}, ${pr[2]})`);
3445
3753
  pill.el.setAttribute("fill-opacity", "0.9");
3446
3754
  report.pillsBoosted++;
3755
+ if (extendPillOver(pill.el, tr)) report.pillsExtended++;
3447
3756
  }
3448
3757
  }
3449
3758
  const cur = tx.getAttribute("fill") || (win && typeof win.getComputedStyle === "function" ? win.getComputedStyle(tx).fill : "");
3759
+ if (!pill && unmeasured === 0) {
3760
+ const bgs = sampleBackgrounds(boxed.map((x3) => x3.mk), straddleSampleGrid(tr), pageRGB, effAlpha);
3761
+ if (bgs && straddles(bgs)) {
3762
+ if (minContrastOver(cur, bgs) >= STRADDLE_TARGET_CONTRAST) continue;
3763
+ const pillEl = addPill(tx, `rgb(${pageRGB[0]}, ${pageRGB[1]}, ${pageRGB[2]})`);
3764
+ const behind = pillEl ? bgs.map((b4) => compositeOver([pageRGB[0], pageRGB[1], pageRGB[2], STRADDLE_PILL_ALPHA], b4)) : bgs;
3765
+ if (pillEl) report.straddlePills++;
3766
+ const pick = pickColorOver(cur, behind);
3767
+ if (!pick.keep) {
3768
+ tx.setAttribute("fill", pick.color);
3769
+ report.fixed++;
3770
+ }
3771
+ tx.setAttribute(LABEL_CONTRAST_DONE_ATTR, "1");
3772
+ continue;
3773
+ }
3774
+ }
3775
+ if (raisedOnPage) continue;
3450
3776
  const normalize = !cellSuppressesNormalize(cell.el.getAttribute("class"));
3451
3777
  const d2 = decideLabelColor(cur, `rgb(${bgRGB[0]}, ${bgRGB[1]}, ${bgRGB[2]})`, 1, pageBg, MIN_CONTRAST, normalize);
3452
3778
  if (d2.fix) {
@@ -3469,9 +3795,9 @@ function isInvalidSentinelError(text) {
3469
3795
  }
3470
3796
  function invalidSentinelReason(text, max = 240) {
3471
3797
  if (!text) return "";
3472
- const m2 = /\bINVALID\s*:\s*([^\r\n]*)/.exec(text);
3473
- if (!m2) return "";
3474
- const reason = m2[1].trim();
3798
+ const m4 = /\bINVALID\s*:\s*([^\r\n]*)/.exec(text);
3799
+ if (!m4) return "";
3800
+ const reason = m4[1].trim();
3475
3801
  const cap = Math.max(0, Math.floor(max));
3476
3802
  if (reason.length <= cap) return reason;
3477
3803
  return cap <= 3 ? reason.slice(0, cap) : reason.slice(0, cap - 3).trimEnd() + "...";
@@ -3495,7 +3821,7 @@ function noopViewStateProvider() {
3495
3821
  return { load: () => ({}), save: () => {
3496
3822
  } };
3497
3823
  }
3498
- var parseRowIdxs = (s) => (s || "").split(",").map((x3) => parseInt(x3, 10)).filter((n) => Number.isFinite(n));
3824
+ var parseRowIdxs = (s2) => (s2 || "").split(",").map((x3) => parseInt(x3, 10)).filter((n) => Number.isFinite(n));
3499
3825
  function assembleD3(base, ...plugins) {
3500
3826
  return Object.assign({}, base, ...plugins);
3501
3827
  }
@@ -3533,27 +3859,27 @@ function requiredD3Plugins(code) {
3533
3859
  const pkg = D3_PLUGIN_PACKAGES[name];
3534
3860
  if (pkg) out.add(pkg);
3535
3861
  };
3536
- for (const m2 of body.matchAll(/\bd3\s*\.\s*(\w+)/g)) add(m2[1]);
3537
- for (const m2 of body.matchAll(/\bd3\s*\[\s*['"](\w+)['"]\s*\]/g)) add(m2[1]);
3538
- for (const m2 of body.matchAll(/\{([^{}]*)\}\s*=\s*d3\b/g)) {
3539
- for (const part of m2[1].split(",")) add(part.split(":")[0].trim());
3862
+ for (const m4 of body.matchAll(/\bd3\s*\.\s*(\w+)/g)) add(m4[1]);
3863
+ for (const m4 of body.matchAll(/\bd3\s*\[\s*['"](\w+)['"]\s*\]/g)) add(m4[1]);
3864
+ for (const m4 of body.matchAll(/\{([^{}]*)\}\s*=\s*d3\b/g)) {
3865
+ for (const part of m4[1].split(",")) add(part.split(":")[0].trim());
3540
3866
  }
3541
3867
  return [...out].sort();
3542
3868
  }
3543
- function explainRenderFailure(err, d3) {
3869
+ function explainRenderFailure(err, d32) {
3544
3870
  const msg = String(err?.message ?? err ?? "");
3545
- if (!d3) {
3871
+ if (!d32) {
3546
3872
  return new Error(
3547
3873
  "[@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: " + msg
3548
3874
  );
3549
3875
  }
3550
- if (typeof d3?.mermaid?.render !== "function" && /\bmermaid\b/i.test(msg)) {
3876
+ if (typeof d32?.mermaid?.render !== "function" && /\bmermaid\b/i.test(msg)) {
3551
3877
  return new Error(
3552
3878
  "[@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: " + msg
3553
3879
  );
3554
3880
  }
3555
- const m2 = /d3\.(\w+) is not a function|(\w+) is not a function/.exec(msg);
3556
- const name = m2?.[1] ?? m2?.[2] ?? "";
3881
+ const m4 = /d3\.(\w+) is not a function|(\w+) is not a function/.exec(msg);
3882
+ const name = m4?.[1] ?? m4?.[2] ?? "";
3557
3883
  const pkg = D3_PLUGIN_PACKAGES[name];
3558
3884
  if (pkg) {
3559
3885
  return new Error(
@@ -3567,12 +3893,12 @@ var ESM_EXPORT_DECL = /^([ \t]*)export[ \t]+(?=(?:async[ \t]+)?function\b|const\
3567
3893
  function stripEsmExports(code) {
3568
3894
  return String(code || "").replace(ESM_EXPORT_CLAUSE, "").replace(ESM_EXPORT_DECL, "$1");
3569
3895
  }
3570
- function writableD3(d3) {
3571
- if (d3 == null || typeof d3 !== "object") return d3;
3572
- if (Object.isExtensible(d3)) return d3;
3573
- return { ...d3 };
3896
+ function writableD3(d32) {
3897
+ if (d32 == null || typeof d32 !== "object") return d32;
3898
+ if (Object.isExtensible(d32)) return d32;
3899
+ return { ...d32 };
3574
3900
  }
3575
- function compileRenderFn(code, win, doc, d3) {
3901
+ function compileRenderFn(code, win, doc, d32) {
3576
3902
  const body = stripEsmExports(code) + "\n;return (typeof render === 'function') ? render : null;";
3577
3903
  let factory;
3578
3904
  try {
@@ -3584,20 +3910,20 @@ function compileRenderFn(code, win, doc, d3) {
3584
3910
  "[@bicharts/chart-host] the generated code could not be COMPILED, so nothing was drawn. This path evaluates the chart as a code string, which cannot contain ES-module syntax" + (modular ? " \u2014 and this code still has `import`/`export` in it after the export clause was stripped. Either request the plain form from the generator, or `import` the module yourself and pass the render function directly." : ".") + " Original error: " + msg
3585
3911
  );
3586
3912
  }
3587
- const fn2 = factory.call(null, null, null, null, win, doc, writableD3(d3));
3588
- if (typeof fn2 !== "function") throw new Error("generated code did not define render(container, data, options)");
3589
- return fn2;
3913
+ const fn3 = factory.call(null, null, null, null, win, doc, writableD3(d32));
3914
+ if (typeof fn3 !== "function") throw new Error("generated code did not define render(container, data, options)");
3915
+ return fn3;
3590
3916
  }
3591
3917
  var ASYNC_RENDER_TIMEOUT_MS = 15e3;
3592
- var isThenable = (v2) => !!v2 && (typeof v2 === "object" || typeof v2 === "function") && typeof v2.then === "function";
3918
+ var isThenable = (v) => !!v && (typeof v === "object" || typeof v === "function") && typeof v.then === "function";
3593
3919
  function createChartHost(container, config) {
3594
3920
  const doc = container.ownerDocument;
3595
3921
  const win = doc?.defaultView ?? globalThis;
3596
- const d3 = config.d3 ?? globalThis.d3 ?? win?.d3;
3922
+ const d32 = config.d3 ?? globalThis.d3 ?? win?.d3;
3597
3923
  let data = config.data;
3598
3924
  {
3599
3925
  const stamped = config.data?.meta?.hostContract;
3600
- const major = (v2) => (v2 || "").split(".")[0];
3926
+ const major = (v) => (v || "").split(".")[0];
3601
3927
  if (stamped && major(stamped) !== major(HOST_CONTRACT_VERSION)) {
3602
3928
  try {
3603
3929
  (win?.console ?? console)?.warn(
@@ -3619,10 +3945,10 @@ function createChartHost(container, config) {
3619
3945
  if (raw.uiState && typeof raw.uiState === "object" && Object.keys(bag).length === 0)
3620
3946
  Object.assign(bag, raw.uiState);
3621
3947
  raw.uiState = bag;
3622
- raw.setUiState = (s) => {
3623
- if (!s || typeof s !== "object") return;
3948
+ raw.setUiState = (s2) => {
3949
+ if (!s2 || typeof s2 !== "object") return;
3624
3950
  try {
3625
- provider.save(s);
3951
+ provider.save(s2);
3626
3952
  } catch {
3627
3953
  }
3628
3954
  };
@@ -3638,9 +3964,9 @@ function createChartHost(container, config) {
3638
3964
  let warnedBlank = false;
3639
3965
  let renderSeq = 0;
3640
3966
  let renderedPromise = Promise.resolve();
3641
- const settle = (p2) => {
3642
- renderedPromise = p2;
3643
- p2.catch(() => {
3967
+ const settle = (p4) => {
3968
+ renderedPromise = p4;
3969
+ p4.catch(() => {
3644
3970
  });
3645
3971
  };
3646
3972
  let current = null;
@@ -3718,10 +4044,10 @@ function createChartHost(container, config) {
3718
4044
  if (active && tickStillDrawn) activeTickEl.classList?.add(ACTIVE_TICK_CLASS);
3719
4045
  const wanted = new Set(sel ?? []);
3720
4046
  const marks = container.querySelectorAll(`.${MARK_CLASS}[${ROW_IDX_ATTR}], .${LEGEND_MARK_CLASS}[${ROW_IDX_ATTR}]`);
3721
- for (const m2 of Array.from(marks)) {
3722
- const rows = parseRowIdxs(m2.getAttribute(ROW_IDX_ATTR));
4047
+ for (const m4 of Array.from(marks)) {
4048
+ const rows = parseRowIdxs(m4.getAttribute(ROW_IDX_ATTR));
3723
4049
  const on = active && rows.some((r2) => wanted.has(r2));
3724
- m2.classList?.[on ? "add" : "remove"](MARK_SELECTED_CLASS);
4050
+ m4.classList?.[on ? "add" : "remove"](MARK_SELECTED_CLASS);
3725
4051
  }
3726
4052
  } catch {
3727
4053
  }
@@ -3788,10 +4114,10 @@ function createChartHost(container, config) {
3788
4114
  const fitOpts = config.fit ?? true;
3789
4115
  const labelContrastOpts = config.labelContrast ?? true;
3790
4116
  const stopAnim = () => {
3791
- const s = container[CONTAINER_SLOT_ANIM_STOP];
3792
- if (typeof s === "function") {
4117
+ const s2 = container[CONTAINER_SLOT_ANIM_STOP];
4118
+ if (typeof s2 === "function") {
3793
4119
  try {
3794
- s();
4120
+ s2();
3795
4121
  } catch {
3796
4122
  }
3797
4123
  }
@@ -3817,7 +4143,8 @@ function createChartHost(container, config) {
3817
4143
  markCount: census.markCount,
3818
4144
  rows: data.rows ? data.rows.length : 0,
3819
4145
  animated: config.animated,
3820
- contractUntagged: config.contractUntagged
4146
+ contractUntagged: config.contractUntagged,
4147
+ declaresNoRowMarks: census.declaresNoRowMarks
3821
4148
  })) {
3822
4149
  if (!warnedBlank) {
3823
4150
  warnedBlank = true;
@@ -3866,7 +4193,7 @@ function createChartHost(container, config) {
3866
4193
  config.onInvalidSentinel({ reason: invalidSentinelReason(message), message });
3867
4194
  return null;
3868
4195
  }
3869
- return explainRenderFailure(err, d3);
4196
+ return explainRenderFailure(err, d32);
3870
4197
  };
3871
4198
  const host = {
3872
4199
  render() {
@@ -3876,11 +4203,11 @@ function createChartHost(container, config) {
3876
4203
  container.innerHTML = "";
3877
4204
  if (!renderFn) {
3878
4205
  if (!config.code) throw new Error("createChartHost: provide code or renderFn");
3879
- renderFn = compileRenderFn(config.code, win, doc, d3);
4206
+ renderFn = compileRenderFn(config.code, win, doc, d32);
3880
4207
  }
3881
4208
  if (resolved.geo === void 0 && config.geoKind) {
3882
- const g3 = config.geoProvider?.(config.geoKind) ?? geoFromCache(config.geoKind);
3883
- if (g3) resolved = { ...resolved, geo: g3 };
4209
+ const g5 = config.geoProvider?.(config.geoKind) ?? geoFromCache(config.geoKind);
4210
+ if (g5) resolved = { ...resolved, geo: g5 };
3884
4211
  else if (!warnedGeo) {
3885
4212
  warnedGeo = true;
3886
4213
  try {
@@ -3918,9 +4245,9 @@ function createChartHost(container, config) {
3918
4245
  `[@bicharts/chart-host] the chart did not finish drawing within ${Math.round(ASYNC_RENDER_TIMEOUT_MS / 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.`
3919
4246
  ));
3920
4247
  }, ASYNC_RENDER_TIMEOUT_MS);
3921
- const done = (fn2) => {
4248
+ const done = (fn3) => {
3922
4249
  clearTimeout(timer);
3923
- fn2();
4250
+ fn3();
3924
4251
  };
3925
4252
  Promise.resolve(outcome).then(
3926
4253
  () => done(() => {
@@ -3966,10 +4293,10 @@ function createChartHost(container, config) {
3966
4293
  return () => subs.delete(cb);
3967
4294
  },
3968
4295
  clear() {
3969
- const s = container[CONTAINER_SLOT_XF_CLEAR];
3970
- if (typeof s === "function") {
4296
+ const s2 = container[CONTAINER_SLOT_XF_CLEAR];
4297
+ if (typeof s2 === "function") {
3971
4298
  try {
3972
- s();
4299
+ s2();
3973
4300
  } catch {
3974
4301
  }
3975
4302
  }
@@ -4007,16 +4334,16 @@ function toSourceRows(rowMap, payloadRowIdxs) {
4007
4334
  return payloadRowIdxs.map((i) => rowMap[i]).filter((i) => i !== void 0);
4008
4335
  }
4009
4336
  function toPayloadRows(rowMap, sourceRowIdxs) {
4010
- const at2 = /* @__PURE__ */ new Map();
4337
+ const at = /* @__PURE__ */ new Map();
4011
4338
  rowMap.forEach((src, k3) => {
4012
- if (!at2.has(src)) at2.set(src, k3);
4339
+ if (!at.has(src)) at.set(src, k3);
4013
4340
  });
4014
- return sourceRowIdxs.map((s) => at2.get(s)).filter((k3) => k3 !== void 0);
4341
+ return sourceRowIdxs.map((s2) => at.get(s2)).filter((k3) => k3 !== void 0);
4015
4342
  }
4016
- var sameRows = (a2, b4) => {
4017
- if (a2.length !== b4.length) return false;
4018
- const x3 = a2.slice().sort((p2, q2) => p2 - q2), y4 = b4.slice().sort((p2, q2) => p2 - q2);
4019
- return x3.every((v2, i) => v2 === y4[i]);
4343
+ var sameRows = (a3, b4) => {
4344
+ if (a3.length !== b4.length) return false;
4345
+ const x3 = a3.slice().sort((p4, q2) => p4 - q2), y2 = b4.slice().sort((p4, q2) => p4 - q2);
4346
+ return x3.every((v, i) => v === y2[i]);
4020
4347
  };
4021
4348
  function syncMemberSelection(host, selection, id, highlight, incoming, rowMap) {
4022
4349
  const mine = selection.sourceId === id && selection.rows.length > 0;
@@ -4045,18 +4372,18 @@ function createChartGroup(columns, rows, opts = {}) {
4045
4372
  for (const cb of Array.from(subs)) cb(selection, change);
4046
4373
  };
4047
4374
  const incomingFor = (id, filteredBy) => {
4048
- const s = selection;
4049
- const forId = s.rows.length && s.sourceId && s.sourceId !== id ? s.rows.slice() : null;
4050
- if (filteredBy) return s.sourceId === filteredBy ? forId : null;
4375
+ const s2 = selection;
4376
+ const forId = s2.rows.length && s2.sourceId && s2.sourceId !== id ? s2.rows.slice() : null;
4377
+ if (filteredBy) return s2.sourceId === filteredBy ? forId : null;
4051
4378
  return forId;
4052
4379
  };
4053
4380
  const payloadFor = (sourceRowIdxs) => {
4054
- const idxs = sourceRowIdxs ? sourceRowIdxs.slice() : table.map((_3, i) => i);
4381
+ const idxs = sourceRowIdxs ? sourceRowIdxs.slice() : table.map((_4, i) => i);
4055
4382
  const subset = idxs.map((i) => table[i]);
4056
4383
  const payload = buildRenderPayload(cols, subset, geo ?? void 0, point ?? void 0);
4057
4384
  return { payload, rowMap: idxs };
4058
4385
  };
4059
- const memberPayload = (id, o2 = {}) => payloadFor(o2.respondsWith === "highlight" ? null : incomingFor(id, o2.filteredBy));
4386
+ const memberPayload = (id, o4 = {}) => payloadFor(o4.respondsWith === "highlight" ? null : incomingFor(id, o4.filteredBy));
4060
4387
  const group = {
4061
4388
  get selection() {
4062
4389
  return selection;
@@ -4078,11 +4405,11 @@ function createChartGroup(columns, rows, opts = {}) {
4078
4405
  selection = { sourceId: null, rows: [] };
4079
4406
  notify("clear");
4080
4407
  },
4081
- setSource(nextColumns, nextRows, o2 = {}) {
4408
+ setSource(nextColumns, nextRows, o4 = {}) {
4082
4409
  cols = nextColumns;
4083
4410
  table = nextRows;
4084
- geo = o2.geo ?? null;
4085
- point = o2.point ?? null;
4411
+ geo = o4.geo ?? null;
4412
+ point = o4.point ?? null;
4086
4413
  notify("source");
4087
4414
  },
4088
4415
  onChange(cb) {
@@ -4091,19 +4418,19 @@ function createChartGroup(columns, rows, opts = {}) {
4091
4418
  subs.delete(cb);
4092
4419
  };
4093
4420
  },
4094
- attach(id, host, o2 = {}) {
4095
- const highlight = o2.respondsWith === "highlight";
4096
- let rowMap = memberPayload(id, o2).rowMap;
4421
+ attach(id, host, o4 = {}) {
4422
+ const highlight = o4.respondsWith === "highlight";
4423
+ let rowMap = memberPayload(id, o4).rowMap;
4097
4424
  const filterKey = (incoming) => highlight || !incoming ? "*" : incoming.join(",");
4098
- let drawnUnder = filterKey(incomingFor(id, o2.filteredBy));
4425
+ let drawnUnder = filterKey(incomingFor(id, o4.filteredBy));
4099
4426
  const offHost = host.selection.onChange((payloadIdxs, source) => {
4100
4427
  if (source === "host") return;
4101
4428
  const sourceIdxs = toSourceRows(rowMap, payloadIdxs);
4102
4429
  if (id) group.publish(id, sourceIdxs);
4103
- o2.onSelect?.(sourceIdxs);
4430
+ o4.onSelect?.(sourceIdxs);
4104
4431
  });
4105
4432
  const offGroup = group.onChange((sel, change) => {
4106
- const incoming = incomingFor(id, o2.filteredBy);
4433
+ const incoming = incomingFor(id, o4.filteredBy);
4107
4434
  const key = filterKey(incoming);
4108
4435
  if (change === "source" || key !== drawnUnder) {
4109
4436
  const next = payloadFor(highlight ? null : incoming);
@@ -4127,7 +4454,7 @@ function createChartGroup(columns, rows, opts = {}) {
4127
4454
  return member;
4128
4455
  },
4129
4456
  destroy() {
4130
- for (const m2 of Array.from(members)) m2.detach();
4457
+ for (const m4 of Array.from(members)) m4.detach();
4131
4458
  subs.clear();
4132
4459
  }
4133
4460
  };
@@ -4143,6 +4470,8 @@ export {
4143
4470
  LIFT_SELECTED_CLASS,
4144
4471
  CONTROL_CLASS,
4145
4472
  ROW_IDX_ATTR,
4473
+ NO_ROW_MARKS_ATTR,
4474
+ SNAPSHOT_SVG_ATTR,
4146
4475
  XFILTER_REFRESH_EVENT,
4147
4476
  CONTAINER_SLOT_ANIM_STOP,
4148
4477
  CONTAINER_SLOT_XF_CLEAR,
@@ -4171,6 +4500,8 @@ export {
4171
4500
  COLOR_SCALE_SELF_CLAMP_PCT_MIN,
4172
4501
  COLOR_SCALE_SELF_CLAMP_PCT_MAX,
4173
4502
  FLIP_MODE_DEFAULT,
4503
+ FLIP_INTERVAL_MIN_MS,
4504
+ FLIP_INTERVAL_MAX_MS,
4174
4505
  APPROXIMATE_POSITIONS_DEFAULT,
4175
4506
  VALUE_AXIS_BASELINE_DEFAULT,
4176
4507
  SEASONAL_MARKERS_DEFAULT,
@@ -4195,7 +4526,9 @@ export {
4195
4526
  clearGeoCache,
4196
4527
  le,
4197
4528
  L2 as L,
4198
- L3,
4529
+ l,
4530
+ o,
4531
+ _3,
4199
4532
  qe,
4200
4533
  Qe,
4201
4534
  Zn2 as Zn,
@@ -4264,8 +4597,18 @@ export {
4264
4597
  decideLabelColor,
4265
4598
  GLYPH_SAMPLE_N,
4266
4599
  glyphSampleGrid,
4600
+ STRADDLE_COLS,
4601
+ STRADDLE_ROWS,
4602
+ STRADDLE_MIN_SHARE,
4603
+ STRADDLE_TARGET_CONTRAST,
4604
+ STRADDLE_PILL_ALPHA,
4605
+ straddleSampleGrid,
4606
+ straddles,
4607
+ minContrastOver,
4608
+ pickColorOver,
4267
4609
  LABEL_CONTRAST_DONE_ATTR,
4268
4610
  LABEL_CONTRAST_CAP,
4611
+ LABEL_PILL_CLASS,
4269
4612
  applyLabelContrast,
4270
4613
  isInvalidSentinelError,
4271
4614
  invalidSentinelReason,