timezone_teleporter 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9da1e3774d2eb580162d1c13189efb3a2047c1b6079dc81054cc89d70b66121d
4
+ data.tar.gz: 98a0b6c484c8645a9b520a65e9610fc1d32413233daba91846e432721e1ce16f
5
+ SHA512:
6
+ metadata.gz: ca47460fb521caac37437bda0b8a1beac34e7c183244d4455f791415924cd256c08e636dd8b40ebdbaf02004b5b5ca2768d3c2ad20665857bc578f8d6085fe43
7
+ data.tar.gz: c6a2491299f178fe1914c4bdee84278f33cc0696df508484e539fd470b662ac8d13d11c699389a1fccf015946a2d2f2f7c32e435dbbe2673abce9c3febf10c68
data/README.md ADDED
@@ -0,0 +1,67 @@
1
+ ![TimezoneTeleporter](./timezone_teleporter.png)
2
+
3
+ # TimezoneTeleporter
4
+
5
+ TimezoneTeleporter anonymizes users' GPS coordinates by generating random coordinates in the same time zone. These new coordinates may be used then safely by 3rd party systems to process the users' location, without disclosing their actual physical position, providing more privacy, and anonymity to users.
6
+
7
+ ## Dependencies
8
+
9
+ * Uses the gem [timezone_finder](https://github.com/gunyarakun/timezone_finder) for time zone lookup.
10
+ * Uses the gem [timezone](https://github.com/panthomakos/timezone).
11
+
12
+ ## Installation
13
+
14
+ Add this line to your application's Gemfile:
15
+
16
+ gem 'timezone_teleporter'
17
+
18
+ And then execute:
19
+
20
+ $ bundle
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install timezone_teleporter
25
+
26
+ ### Configuration
27
+
28
+ TimezoneTeleporter can be configured in an initializer:
29
+
30
+ ```ruby
31
+ TimezoneTeleporter.configure do |c|
32
+ c.silent_mode = false
33
+ c.use_proximity_algorithm = true
34
+ c.delta_degree = 1
35
+ end
36
+ ```
37
+
38
+ Use following configuration flags to customise the library's behaviour:
39
+
40
+ * `silent_mode`: if set to true, no errors are raised (default is false),
41
+ * `use_proximity_algorithm`: if the timezone is not found, TimezoneTeleporter tries to find the closest timezone within +-1 delta_degree longitude and +-1 delta_degree latitude (default is true),
42
+ * `delta_degree`: defines the radius for the proximity algorithm (default is 1).
43
+
44
+ ### Usage
45
+
46
+ Use `TimezoneTeleporter.teleport(latitude, longitude)` to generate randomized coordinates in the same time zone:
47
+
48
+ ```ruby
49
+ TimezoneTeleporter.teleport(52.520007, 13.404954)
50
+ # => [51.165691, 10.451526]
51
+ ```
52
+
53
+ *Note: If time zone is not found, `TimezoneTeleporter.teleport` will return the origin coordinates unless silent_mode is set to false.*
54
+
55
+ ## Development
56
+
57
+ After checking out the repo, run bin/setup to install dependencies. Then, run `rake spec` to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
58
+
59
+ To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
60
+
61
+ ## License
62
+
63
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
64
+
65
+ ## Code of Conduct
66
+
67
+ Everyone interacting in the TimezoneTeleporter project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/blinkist/TimezoneTeleporter/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+ require "rubocop/rake_task"
4
+
5
+ RuboCop::RakeTask.new
6
+ RSpec::Core::RakeTask.new :spec
7
+
8
+ task default: %i[rubocop spec]
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "timezone_finder"
4
+
5
+ require_relative "timezone_teleporter/timezone_locations"
6
+ require_relative "timezone_teleporter/configuration"
7
+ require_relative "timezone_teleporter/errors"
8
+
9
+ module TimezoneTeleporter
10
+ class << self
11
+ def configure
12
+ self.configuration ||= Configuration.new
13
+ yield(configuration)
14
+ end
15
+
16
+ def configuration
17
+ @configuration ||= Configuration.new
18
+ end
19
+
20
+ def teleport(lat, lng)
21
+ TIMEZONE_LOCATIONS[timezone_at(lat, lng)]
22
+ rescue StandardError => e
23
+ raise e unless configuration.silent_mode
24
+
25
+ [lat, lng]
26
+ end
27
+
28
+ def timezone_at(lat, lng)
29
+ timezone_name = timezone_finder.timezone_at(lat: lat, lng: lng)
30
+
31
+ if configuration.use_proximity_algorithm
32
+ timezone_name ||= timezone_finder.closest_timezone_at(lat: lat, lng: lng, delta_degree: configuration.delta_degree)
33
+ end
34
+
35
+ raise TimeZoneNotFoundError unless timezone_name
36
+
37
+ timezone_name
38
+ end
39
+
40
+ private
41
+
42
+ def timezone_finder
43
+ @timezone_finder ||= TimezoneFinder.create
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TimezoneTeleporter
4
+ class Configuration
5
+ attr_accessor :silent_mode
6
+ attr_accessor :use_proximity_algorithm
7
+ attr_accessor :delta_degree
8
+
9
+ def initialize
10
+ @silent_mode = false
11
+ @use_proximity_algorithm = true
12
+ @delta_degree = 1
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TimezoneTeleporter
4
+ class TimeZoneNotFoundError < StandardError; end
5
+ end
@@ -0,0 +1,1670 @@
1
+ # frozen_string_literal => true
2
+
3
+ module TimezoneTeleporter
4
+ TIMEZONE_LOCATIONS = {
5
+ "Indian/Mauritius" => [
6
+ -20.348404,
7
+ 57.55215200000001
8
+ ],
9
+ "Indian/Chagos" => [
10
+ -6.343194,
11
+ 71.876519
12
+ ],
13
+ "Indian/Mayotte" => [
14
+ -12.8275,
15
+ 45.166244
16
+ ],
17
+ "Indian/Christmas" => [
18
+ -10.447525,
19
+ 105.690449
20
+ ],
21
+ "Indian/Cocos" => [
22
+ -12.164165,
23
+ 96.87095599999999
24
+ ],
25
+ "Indian/Maldives" => [
26
+ 3.202778,
27
+ 73.22068
28
+ ],
29
+ "Indian/Comoro" => [
30
+ -11.6455,
31
+ 43.3333
32
+ ],
33
+ "Indian/Reunion" => [
34
+ -21.115141,
35
+ 55.536384
36
+ ],
37
+ "Indian/Mahe" => [
38
+ -4.679574,
39
+ 55.491977
40
+ ],
41
+ "Indian/Kerguelen" => [
42
+ -49.280366,
43
+ 69.3485571
44
+ ],
45
+ "Indian/Antananarivo" => [
46
+ -18.766947,
47
+ 46.869107
48
+ ],
49
+ "Atlantic/Faroe" => [
50
+ 61.89263500000001,
51
+ -6.9118061
52
+ ],
53
+ "Atlantic/Canary" => [
54
+ 28.729454,
55
+ -13.866048
56
+ ],
57
+ "Atlantic/Stanley" => [
58
+ -51.796253,
59
+ -59.523613
60
+ ],
61
+ "Atlantic/Bermuda" => [
62
+ 32.3078,
63
+ -64.7505
64
+ ],
65
+ "Atlantic/South_Georgia" => [
66
+ -54.429579,
67
+ -36.587909
68
+ ],
69
+ "Atlantic/St_Helena" => [
70
+ -15.9650104,
71
+ -5.7089241
72
+ ],
73
+ "Atlantic/Reykjavik" => [
74
+ 64.963051,
75
+ -19.020835
76
+ ],
77
+ "Atlantic/Cape_Verde" => [
78
+ 14.9452652,
79
+ -23.5014213
80
+ ],
81
+ "Atlantic/Azores" => [
82
+ 37.7401299,
83
+ -25.6644397
84
+ ],
85
+ "Atlantic/Madeira" => [
86
+ 32.6382416,
87
+ -16.9307524
88
+ ],
89
+ "Pacific/Port_Moresby" => [
90
+ -6.314992999999999,
91
+ 143.95555
92
+ ],
93
+ "Pacific/Chuuk" => [
94
+ 7.1386759,
95
+ 151.5593065
96
+ ],
97
+ "Pacific/Easter" => [
98
+ -27.112723,
99
+ -109.3496865
100
+ ],
101
+ "Pacific/Kwajalein" => [
102
+ 8.716667,
103
+ 167.733333
104
+ ],
105
+ "Pacific/Tongatapu" => [
106
+ -21.178986,
107
+ -175.198242
108
+ ],
109
+ "Pacific/Yap" => [
110
+ 9.5556503,
111
+ 138.1399232
112
+ ],
113
+ "Pacific/Wallis" => [
114
+ -14.2938,
115
+ -178.1165
116
+ ],
117
+ "Pacific/Apia" => [
118
+ -13.759029,
119
+ -172.104629
120
+ ],
121
+ "Pacific/Norfolk" => [
122
+ -29.040835,
123
+ 167.954712
124
+ ],
125
+ "Pacific/Efate" => [
126
+ -15.376706,
127
+ 166.959158
128
+ ],
129
+ "Pacific/Fiji" => [
130
+ -17.713371,
131
+ 178.065032
132
+ ],
133
+ "Pacific/Funafuti" => [
134
+ -7.109534999999999,
135
+ 177.64933
136
+ ],
137
+ "Pacific/Palau" => [
138
+ 7.514979999999999,
139
+ 134.58252
140
+ ],
141
+ "Pacific/Guam" => [
142
+ 13.444304,
143
+ 144.793731
144
+ ],
145
+ "Pacific/Saipan" => [
146
+ 15.0979,
147
+ 145.6739
148
+ ],
149
+ "Pacific/Kosrae" => [
150
+ 5.346693999999999,
151
+ 163.02097
152
+ ],
153
+ "Pacific/Niue" => [
154
+ -19.054445,
155
+ -169.867233
156
+ ],
157
+ "Pacific/Wake" => [
158
+ 19.2823192,
159
+ 166.647047
160
+ ],
161
+ "Pacific/Galapagos" => [
162
+ -0.383106,
163
+ -90.4233344
164
+ ],
165
+ "Pacific/Johnston" => [
166
+ 16.7295035,
167
+ -169.5336477
168
+ ],
169
+ "Pacific/Midway" => [
170
+ 28.2072168,
171
+ -177.3734926
172
+ ],
173
+ "Pacific/Nauru" => [
174
+ -0.522778,
175
+ 166.931503
176
+ ],
177
+ "Pacific/Guadalcanal" => [
178
+ -9.64571,
179
+ 160.156194
180
+ ],
181
+ "Pacific/Chatham" => [
182
+ -44.0237474,
183
+ -175.9304546
184
+ ],
185
+ "Pacific/Auckland" => [
186
+ -40.900557,
187
+ 174.885971
188
+ ],
189
+ "Pacific/Noumea" => [
190
+ -20.904305,
191
+ 165.618042
192
+ ],
193
+ "Pacific/Fakaofo" => [
194
+ -9.200199999999999,
195
+ -171.8484
196
+ ],
197
+ "Pacific/Tahiti" => [
198
+ -17.679742,
199
+ -149.406843
200
+ ],
201
+ "Pacific/Gambier" => [
202
+ -23.1096583,
203
+ -134.9743477
204
+ ],
205
+ "Pacific/Majuro" => [
206
+ 7.131474,
207
+ 171.184478
208
+ ],
209
+ "Pacific/Honolulu" => [
210
+ 21.3145797,
211
+ -157.8713845
212
+ ],
213
+ "Pacific/Pohnpei" => [
214
+ 6.982228,
215
+ 158.203691
216
+ ],
217
+ "Pacific/Pago_Pago" => [
218
+ -14.270972,
219
+ -170.132217
220
+ ],
221
+ "Pacific/Pitcairn" => [
222
+ -24.3767537,
223
+ -128.3242376
224
+ ],
225
+ "Pacific/Marquesas" => [
226
+ -9.781216200000001,
227
+ -139.0817124
228
+ ],
229
+ "Pacific/Bougainville" => [
230
+ -6.375391899999999,
231
+ 155.3807101
232
+ ],
233
+ "Pacific/Tarawa" => [
234
+ 1.4518171,
235
+ 172.9716617
236
+ ],
237
+ "Pacific/Rarotonga" => [
238
+ -21.236736,
239
+ -159.777671
240
+ ],
241
+ "Pacific/Kiritimati" => [
242
+ 1.8721347,
243
+ -157.4278119
244
+ ],
245
+ "Pacific/Enderbury" => [
246
+ -3.122106,
247
+ -171.08711
248
+ ],
249
+ "Arctic/Longyearbyen" => [
250
+ 77.55360399999999,
251
+ 23.6702719
252
+ ],
253
+ "America/Puerto_Rico" => [
254
+ 18.220833,
255
+ -66.590149
256
+ ],
257
+ "America/Recife" => [
258
+ -8.0522404,
259
+ -34.9286096
260
+ ],
261
+ "America/Resolute" => [
262
+ 74.697299,
263
+ -94.82972889999999
264
+ ],
265
+ "America/Manaus" => [
266
+ -3.1190275,
267
+ -60.0217314
268
+ ],
269
+ "America/New_York" => [
270
+ 40.7127753,
271
+ -74.0059728
272
+ ],
273
+ "America/Rankin_Inlet" => [
274
+ 62.808375,
275
+ -92.0852853
276
+ ],
277
+ "America/Lima" => [
278
+ -9.189967,
279
+ -75.015152
280
+ ],
281
+ "America/St_Barthelemy" => [
282
+ 17.9,
283
+ -62.833333
284
+ ],
285
+ "America/Santo_Domingo" => [
286
+ 18.735693,
287
+ -70.162651
288
+ ],
289
+ "America/Detroit" => [
290
+ 42.331427,
291
+ -83.0457538
292
+ ],
293
+ "America/Paramaribo" => [
294
+ 3.919305,
295
+ -56.027783
296
+ ],
297
+ "America/Yakutat" => [
298
+ 59.5469878,
299
+ -139.7272808
300
+ ],
301
+ "America/Santarem" => [
302
+ -2.4506291,
303
+ -54.7009228
304
+ ],
305
+ "America/Scoresbysund" => [
306
+ 70.486916,
307
+ -21.962528
308
+ ],
309
+ "America/Santiago" => [
310
+ -35.675147,
311
+ -71.542969
312
+ ],
313
+ "America/Guyana" => [
314
+ 4.860416,
315
+ -58.93018
316
+ ],
317
+ "America/Coral_Harbour" => [
318
+ 64.138834,
319
+ -83.16989699999999
320
+ ],
321
+ "America/Rio_Branco" => [
322
+ -9.975337399999999,
323
+ -68.42932139999999
324
+ ],
325
+ "America/Nipigon" => [
326
+ 49.0157351,
327
+ -88.268316
328
+ ],
329
+ "America/Edmonton" => [
330
+ 53.544389,
331
+ -113.4909267
332
+ ],
333
+ "America/Port_of_Spain" => [
334
+ 10.691803,
335
+ -61.222503
336
+ ],
337
+ "America/Lower_Princes" => [
338
+ 18.04248,
339
+ -63.05483
340
+ ],
341
+ "America/St_Thomas" => [
342
+ 18.335765,
343
+ -64.896335
344
+ ],
345
+ "America/Guatemala" => [
346
+ 15.783471,
347
+ -90.23075899999999
348
+ ],
349
+ "America/Antigua" => [
350
+ 17.060816,
351
+ -61.796428
352
+ ],
353
+ "America/Porto_Velho" => [
354
+ -8.761160499999999,
355
+ -63.9004303
356
+ ],
357
+ "America/Chicago" => [
358
+ 37.09024,
359
+ -95.712891
360
+ ],
361
+ "America/Creston" => [
362
+ 49.0955401,
363
+ -116.5135079
364
+ ],
365
+ "America/Managua" => [
366
+ 12.865416,
367
+ -85.207229
368
+ ],
369
+ "America/Nassau" => [
370
+ 25.03428,
371
+ -77.39627999999999
372
+ ],
373
+ "America/Bogota" => [
374
+ 4.570868,
375
+ -74.297333
376
+ ],
377
+ "America/Cancun" => [
378
+ 21.161908,
379
+ -86.8515279
380
+ ],
381
+ "America/Chihuahua" => [
382
+ 28.4854458,
383
+ -105.7820674
384
+ ],
385
+ "America/Campo_Grande" => [
386
+ -20.4697105,
387
+ -54.6201211
388
+ ],
389
+ "America/Halifax" => [
390
+ 44.64876350000001,
391
+ -63.5752387
392
+ ],
393
+ "America/Boise" => [
394
+ 43.6150186,
395
+ -116.2023137
396
+ ],
397
+ "America/Montreal" => [
398
+ 45.5016889,
399
+ -73.567256
400
+ ],
401
+ "America/Goose_Bay" => [
402
+ 53.3016826,
403
+ -60.3260842
404
+ ],
405
+ "America/Sao_Paulo" => [
406
+ -23.5505199,
407
+ -46.63330939999999
408
+ ],
409
+ "America/Blanc-Sablon" => [
410
+ 51.4264451,
411
+ -57.1313148
412
+ ],
413
+ "America/Phoenix" => [
414
+ 33.4483771,
415
+ -112.0740373
416
+ ],
417
+ "America/Atikokan" => [
418
+ 48.7597531,
419
+ -91.6181716
420
+ ],
421
+ "America/Cayenne" => [
422
+ 3.933889,
423
+ -53.125782
424
+ ],
425
+ "America/Boa_Vista" => [
426
+ 2.8235098,
427
+ -60.6758331
428
+ ],
429
+ "America/Bahia_Banderas" => [
430
+ 20.8074834,
431
+ -105.2480864
432
+ ],
433
+ "America/Indiana/Vevay" => [
434
+ 38.7478401,
435
+ -85.0671725
436
+ ],
437
+ "America/Indiana/Indianapolis" => [
438
+ 39.768403,
439
+ -86.158068
440
+ ],
441
+ "America/Indiana/Winamac" => [
442
+ 41.0514299,
443
+ -86.6030648
444
+ ],
445
+ "America/Indiana/Tell_City" => [
446
+ 37.9514447,
447
+ -86.76776629999999
448
+ ],
449
+ "America/Indiana/Petersburg" => [
450
+ 38.4919935,
451
+ -87.2786244
452
+ ],
453
+ "America/Indiana/Vincennes" => [
454
+ 38.677269,
455
+ -87.5286325
456
+ ],
457
+ "America/Indiana/Knox" => [
458
+ 41.2958751,
459
+ -86.6250139
460
+ ],
461
+ "America/Indiana/Marengo" => [
462
+ 38.36922759999999,
463
+ -86.34359169999999
464
+ ],
465
+ "America/Dominica" => [
466
+ 15.414999,
467
+ -61.37097600000001
468
+ ],
469
+ "America/Argentina/Salta" => [
470
+ -38.416097,
471
+ -63.61667199999999
472
+ ],
473
+ "America/Argentina/Ushuaia" => [
474
+ -54.8019121,
475
+ -68.3029511
476
+ ],
477
+ "America/Argentina/Catamarca" => [
478
+ -28.4715877,
479
+ -65.7877209
480
+ ],
481
+ "America/Argentina/San_Juan" => [
482
+ -31.5351074,
483
+ -68.5385941
484
+ ],
485
+ "America/Argentina/San_Luis" => [
486
+ -33.3017267,
487
+ -66.3377522
488
+ ],
489
+ "America/Argentina/Rio_Gallegos" => [
490
+ -51.6230485,
491
+ -69.2168291
492
+ ],
493
+ "America/Argentina/Jujuy" => [
494
+ -24.1857864,
495
+ -65.2994767
496
+ ],
497
+ "America/Argentina/Tucuman" => [
498
+ -26.8082848,
499
+ -65.2175903
500
+ ],
501
+ "America/Argentina/Buenos_Aires" => [
502
+ -34.6036844,
503
+ -58.3815591
504
+ ],
505
+ "America/Argentina/Cordoba" => [
506
+ -31.42008329999999,
507
+ -64.1887761
508
+ ],
509
+ "America/Argentina/La_Rioja" => [
510
+ -29.4193793,
511
+ -66.8559932
512
+ ],
513
+ "America/Argentina/Mendoza" => [
514
+ -32.8894587,
515
+ -68.8458386
516
+ ],
517
+ "America/La_Paz" => [
518
+ -16.290154,
519
+ -63.58865299999999
520
+ ],
521
+ "America/Dawson" => [
522
+ 64.06006959999999,
523
+ -139.4320347
524
+ ],
525
+ "America/Moncton" => [
526
+ 46.0878165,
527
+ -64.7782313
528
+ ],
529
+ "America/Matamoros" => [
530
+ 25.8690294,
531
+ -97.50273759999999
532
+ ],
533
+ "America/St_Vincent" => [
534
+ 12.984305,
535
+ -61.287228
536
+ ],
537
+ "America/Regina" => [
538
+ 56.130366,
539
+ -106.346771
540
+ ],
541
+ "America/Yellowknife" => [
542
+ 62.4539717,
543
+ -114.3717887
544
+ ],
545
+ "America/Rainy_River" => [
546
+ 48.7216623,
547
+ -94.5695247
548
+ ],
549
+ "America/Kralendijk" => [
550
+ 12.1783611,
551
+ -68.2385339
552
+ ],
553
+ "America/Monterrey" => [
554
+ 25.6866142,
555
+ -100.3161126
556
+ ],
557
+ "America/Jamaica" => [
558
+ 18.109581,
559
+ -77.297508
560
+ ],
561
+ "America/Havana" => [
562
+ 21.521757,
563
+ -77.781167
564
+ ],
565
+ "America/Tegucigalpa" => [
566
+ 15.199999,
567
+ -86.241905
568
+ ],
569
+ "America/Guayaquil" => [
570
+ -1.831239,
571
+ -78.18340599999999
572
+ ],
573
+ "America/Metlakatla" => [
574
+ 55.1291667,
575
+ -131.5722222
576
+ ],
577
+ "America/Mazatlan" => [
578
+ 23.2494148,
579
+ -106.4111425
580
+ ],
581
+ "America/Belize" => [
582
+ 17.189877,
583
+ -88.49765
584
+ ],
585
+ "America/Cuiaba" => [
586
+ -14.235004,
587
+ -51.92528
588
+ ],
589
+ "America/Merida" => [
590
+ 20.9673702,
591
+ -89.5925857
592
+ ],
593
+ "America/Cayman" => [
594
+ 19.3133,
595
+ -81.2546
596
+ ],
597
+ "America/Belem" => [
598
+ -1.4557292,
599
+ -48.4901785
600
+ ],
601
+ "America/Eirunepe" => [
602
+ -6.6618796,
603
+ -69.8674865
604
+ ],
605
+ "America/St_Lucia" => [
606
+ 13.909444,
607
+ -60.978893
608
+ ],
609
+ "America/Bahia" => [
610
+ -12.579738,
611
+ -41.7007272
612
+ ],
613
+ "America/Whitehorse" => [
614
+ 60.7211871,
615
+ -135.0568448
616
+ ],
617
+ "America/Tortola" => [
618
+ 18.420695,
619
+ -64.639968
620
+ ],
621
+ "America/Vancouver" => [
622
+ 49.2827291,
623
+ -123.1207375
624
+ ],
625
+ "America/Inuvik" => [
626
+ 68.3607437,
627
+ -133.7230178
628
+ ],
629
+ "America/Port-au-Prince" => [
630
+ 18.971187,
631
+ -72.285215
632
+ ],
633
+ "America/Fortaleza" => [
634
+ -3.7327144,
635
+ -38.5269981
636
+ ],
637
+ "America/Noronha" => [
638
+ -3.8447976,
639
+ -32.4268917
640
+ ],
641
+ "America/Los_Angeles" => [
642
+ 34.0522342,
643
+ -118.2436849
644
+ ],
645
+ "America/El_Salvador" => [
646
+ 13.794185,
647
+ -88.89653
648
+ ],
649
+ "America/Denver" => [
650
+ 39.7392358,
651
+ -104.990251
652
+ ],
653
+ "America/Kentucky/Louisville" => [
654
+ 38.2775702,
655
+ -85.7371847
656
+ ],
657
+ "America/Kentucky/Monticello" => [
658
+ 36.8297937,
659
+ -84.8491126
660
+ ],
661
+ "America/North_Dakota/New_Salem" => [
662
+ 46.844999,
663
+ -101.4112545
664
+ ],
665
+ "America/North_Dakota/Center" => [
666
+ 47.1163849,
667
+ -101.2995941
668
+ ],
669
+ "America/North_Dakota/Beulah" => [
670
+ 47.2633403,
671
+ -101.7779462
672
+ ],
673
+ "America/Glace_Bay" => [
674
+ 46.1969191,
675
+ -59.9570044
676
+ ],
677
+ "America/Montserrat" => [
678
+ 16.742498,
679
+ -62.187366
680
+ ],
681
+ "America/Toronto" => [
682
+ 43.653226,
683
+ -79.3831843
684
+ ],
685
+ "America/Panama" => [
686
+ 8.537981,
687
+ -80.782127
688
+ ],
689
+ "America/Ojinaga" => [
690
+ 29.5458844,
691
+ -104.4082908
692
+ ],
693
+ "America/Thule" => [
694
+ 77.4670434,
695
+ -69.2284827
696
+ ],
697
+ "America/Caracas" => [
698
+ 6.42375,
699
+ -66.58973
700
+ ],
701
+ "America/Araguaina" => [
702
+ -7.192773300000001,
703
+ -48.20482699999999
704
+ ],
705
+ "America/Cambridge_Bay" => [
706
+ 69.1168641,
707
+ -105.0596814
708
+ ],
709
+ "America/Winnipeg" => [
710
+ 49.895136,
711
+ -97.13837439999999
712
+ ],
713
+ "America/Grand_Turk" => [
714
+ 21.694025,
715
+ -71.797928
716
+ ],
717
+ "America/Anchorage" => [
718
+ 61.2180556,
719
+ -149.9002778
720
+ ],
721
+ "America/Costa_Rica" => [
722
+ 9.748916999999999,
723
+ -83.753428
724
+ ],
725
+ "America/Nome" => [
726
+ 64.5011111,
727
+ -165.4063889
728
+ ],
729
+ "America/Grenada" => [
730
+ 12.1165,
731
+ -61.67899999999999
732
+ ],
733
+ "America/St_Johns" => [
734
+ 47.5615096,
735
+ -52.7125768
736
+ ],
737
+ "America/Asuncion" => [
738
+ -23.442503,
739
+ -58.443832
740
+ ],
741
+ "America/Hermosillo" => [
742
+ 29.0729673,
743
+ -110.9559192
744
+ ],
745
+ "America/Tijuana" => [
746
+ 32.5149469,
747
+ -117.0382471
748
+ ],
749
+ "America/Marigot" => [
750
+ 18.0708298,
751
+ -63.0500809
752
+ ],
753
+ "America/Juneau" => [
754
+ 58.3019444,
755
+ -134.4197221
756
+ ],
757
+ "America/Montevideo" => [
758
+ -32.522779,
759
+ -55.765835
760
+ ],
761
+ "America/Godthab" => [
762
+ 71.706936,
763
+ -42.604303
764
+ ],
765
+ "America/Guadeloupe" => [
766
+ 16.265,
767
+ -61.55099999999999
768
+ ],
769
+ "America/Maceio" => [
770
+ -9.6498487,
771
+ -35.7089492
772
+ ],
773
+ "America/Pangnirtung" => [
774
+ 66.1465578,
775
+ -65.7012182
776
+ ],
777
+ "America/St_Kitts" => [
778
+ 17.357822,
779
+ -62.782998
780
+ ],
781
+ "America/Barbados" => [
782
+ 13.193887,
783
+ -59.543198
784
+ ],
785
+ "America/Iqaluit" => [
786
+ 63.74669300000001,
787
+ -68.5169669
788
+ ],
789
+ "America/Menominee" => [
790
+ 45.10776269999999,
791
+ -87.6142737
792
+ ],
793
+ "America/Martinique" => [
794
+ 14.641528,
795
+ -61.024174
796
+ ],
797
+ "America/Mexico_City" => [
798
+ 23.634501,
799
+ -102.552784
800
+ ],
801
+ "America/Swift_Current" => [
802
+ 50.285069,
803
+ -107.7971722
804
+ ],
805
+ "America/Miquelon" => [
806
+ 46.8852,
807
+ -56.3159
808
+ ],
809
+ "America/Curacao" => [
810
+ 12.16957,
811
+ -68.99002
812
+ ],
813
+ "America/Dawson_Creek" => [
814
+ 55.75962740000001,
815
+ -120.2376623
816
+ ],
817
+ "America/Adak" => [
818
+ 51.88,
819
+ -176.6580556
820
+ ],
821
+ "America/Thunder_Bay" => [
822
+ 48.3808951,
823
+ -89.2476823
824
+ ],
825
+ "America/Aruba" => [
826
+ 12.52111,
827
+ -69.968338
828
+ ],
829
+ "America/Fort_Nelson" => [
830
+ 58.8050174,
831
+ -122.697236
832
+ ],
833
+ "America/Sitka" => [
834
+ 57.0530556,
835
+ -135.33
836
+ ],
837
+ "America/Anguilla" => [
838
+ 18.220554,
839
+ -63.06861499999999
840
+ ],
841
+ "America/Danmarkshavn" => [
842
+ 79.059994,
843
+ -19.77234
844
+ ],
845
+ "Australia/Melbourne" => [
846
+ -37.8136276,
847
+ 144.9630576
848
+ ],
849
+ "Australia/Lord_Howe" => [
850
+ -31.5553263,
851
+ 159.0821211
852
+ ],
853
+ "Australia/Adelaide" => [
854
+ -34.9284989,
855
+ 138.6007456
856
+ ],
857
+ "Australia/Sydney" => [
858
+ -33.8688197,
859
+ 151.2092955
860
+ ],
861
+ "Australia/Eucla" => [
862
+ -31.6772316,
863
+ 128.8897862
864
+ ],
865
+ "Australia/Brisbane" => [
866
+ -27.4697707,
867
+ 153.0251235
868
+ ],
869
+ "Australia/Hobart" => [
870
+ -42.8821377,
871
+ 147.3271949
872
+ ],
873
+ "Australia/Perth" => [
874
+ -31.9505269,
875
+ 115.8604572
876
+ ],
877
+ "Australia/Lindeman" => [
878
+ -20.4447841,
879
+ 149.0410504
880
+ ],
881
+ "Australia/Darwin" => [
882
+ -25.274398,
883
+ 133.775136
884
+ ],
885
+ "Australia/Broken_Hill" => [
886
+ -31.9539135,
887
+ 141.4539396
888
+ ],
889
+ "Australia/Currie" => [
890
+ -39.931111,
891
+ 143.8505559
892
+ ],
893
+ "Asia/Dushanbe" => [
894
+ 38.861034,
895
+ 71.276093
896
+ ],
897
+ "Asia/Urumqi" => [
898
+ 43.825592,
899
+ 87.61684799999999
900
+ ],
901
+ "Asia/Karachi" => [
902
+ 30.375321,
903
+ 69.34511599999999
904
+ ],
905
+ "Asia/Khandyga" => [
906
+ 62.65640789999999,
907
+ 135.5539801
908
+ ],
909
+ "Asia/Thimphu" => [
910
+ 27.514162,
911
+ 90.433601
912
+ ],
913
+ "Asia/Vladivostok" => [
914
+ 43.1198091,
915
+ 131.8869243
916
+ ],
917
+ "Asia/Vientiane" => [
918
+ 19.85627,
919
+ 102.495496
920
+ ],
921
+ "Asia/Shanghai" => [
922
+ 31.2303904,
923
+ 121.4737021
924
+ ],
925
+ "Asia/Aden" => [
926
+ 15.552727,
927
+ 48.516388
928
+ ],
929
+ "Asia/Muscat" => [
930
+ 21.4735329,
931
+ 55.975413
932
+ ],
933
+ "Asia/Damascus" => [
934
+ 34.80207499999999,
935
+ 38.996815
936
+ ],
937
+ "Asia/Jerusalem" => [
938
+ 31.046051,
939
+ 34.851612
940
+ ],
941
+ "Asia/Brunei" => [
942
+ 4.535277,
943
+ 114.727669
944
+ ],
945
+ "Asia/Ulaanbaatar" => [
946
+ 46.862496,
947
+ 103.846656
948
+ ],
949
+ "Asia/Amman" => [
950
+ 30.585164,
951
+ 36.238414
952
+ ],
953
+ "Asia/Kuching" => [
954
+ 1.553504,
955
+ 110.3592927
956
+ ],
957
+ "Asia/Seoul" => [
958
+ 35.907757,
959
+ 127.766922
960
+ ],
961
+ "Asia/Pyongyang" => [
962
+ 40.339852,
963
+ 127.510093
964
+ ],
965
+ "Asia/Hovd" => [
966
+ 47.9795218,
967
+ 91.634756
968
+ ],
969
+ "Asia/Hebron" => [
970
+ 31.952162,
971
+ 35.233154
972
+ ],
973
+ "Asia/Kuwait" => [
974
+ 29.31166,
975
+ 47.481766
976
+ ],
977
+ "Asia/Tomsk" => [
978
+ 56.5010397,
979
+ 84.9924506
980
+ ],
981
+ "Asia/Manila" => [
982
+ 12.879721,
983
+ 121.774017
984
+ ],
985
+ "Asia/Chita" => [
986
+ 52.0515032,
987
+ 113.4711906
988
+ ],
989
+ "Asia/Gaza" => [
990
+ 31.3546763,
991
+ 34.3088255
992
+ ],
993
+ "Asia/Samarkand" => [
994
+ 41.377491,
995
+ 64.585262
996
+ ],
997
+ "Asia/Taipei" => [
998
+ 23.69781,
999
+ 120.960515
1000
+ ],
1001
+ "Asia/Tashkent" => [
1002
+ 41.2994958,
1003
+ 69.2400734
1004
+ ],
1005
+ "Asia/Yekaterinburg" => [
1006
+ 56.83892609999999,
1007
+ 60.6057025
1008
+ ],
1009
+ "Asia/Macau" => [
1010
+ 22.198745,
1011
+ 113.543873
1012
+ ],
1013
+ "Asia/Qyzylorda" => [
1014
+ 44.6922613,
1015
+ 62.6571885
1016
+ ],
1017
+ "Asia/Tokyo" => [
1018
+ 36.204824,
1019
+ 138.252924
1020
+ ],
1021
+ "Asia/Baku" => [
1022
+ 40.143105,
1023
+ 47.576927
1024
+ ],
1025
+ "Asia/Barnaul" => [
1026
+ 53.3547792,
1027
+ 83.7697833
1028
+ ],
1029
+ "Asia/Irkutsk" => [
1030
+ 52.28697409999999,
1031
+ 104.3050183
1032
+ ],
1033
+ "Asia/Qatar" => [
1034
+ 25.354826,
1035
+ 51.183884
1036
+ ],
1037
+ "Asia/Bahrain" => [
1038
+ 26.0667,
1039
+ 50.5577
1040
+ ],
1041
+ "Asia/Yerevan" => [
1042
+ 40.069099,
1043
+ 45.038189
1044
+ ],
1045
+ "Asia/Almaty" => [
1046
+ 48.019573,
1047
+ 66.923684
1048
+ ],
1049
+ "Asia/Dili" => [
1050
+ -8.874217,
1051
+ 125.727539
1052
+ ],
1053
+ "Asia/Chongqing" => [
1054
+ 29.4315861,
1055
+ 106.912251
1056
+ ],
1057
+ "Asia/Ust-Nera" => [
1058
+ 64.5596103,
1059
+ 143.2244252
1060
+ ],
1061
+ "Asia/Magadan" => [
1062
+ 59.5611525,
1063
+ 150.8301413
1064
+ ],
1065
+ "Asia/Colombo" => [
1066
+ 7.873053999999999,
1067
+ 80.77179699999999
1068
+ ],
1069
+ "Asia/Krasnoyarsk" => [
1070
+ 61.52401,
1071
+ 105.318756
1072
+ ],
1073
+ "Asia/Kamchatka" => [
1074
+ 56.1327377,
1075
+ 159.5314398
1076
+ ],
1077
+ "Asia/Jakarta" => [
1078
+ -6.17511,
1079
+ 106.8650395
1080
+ ],
1081
+ "Asia/Kolkata" => [
1082
+ 20.593684,
1083
+ 78.96288
1084
+ ],
1085
+ "Asia/Kabul" => [
1086
+ 33.93911,
1087
+ 67.709953
1088
+ ],
1089
+ "Asia/Oral" => [
1090
+ 51.227821,
1091
+ 51.3865431
1092
+ ],
1093
+ "Asia/Jayapura" => [
1094
+ -2.5916025,
1095
+ 140.6689995
1096
+ ],
1097
+ "Asia/Pontianak" => [
1098
+ -0.789275,
1099
+ 113.921327
1100
+ ],
1101
+ "Asia/Makassar" => [
1102
+ -5.147665099999999,
1103
+ 119.4327314
1104
+ ],
1105
+ "Asia/Tbilisi" => [
1106
+ 41.7151377,
1107
+ 44.827096
1108
+ ],
1109
+ "Asia/Singapore" => [
1110
+ 1.352083,
1111
+ 103.819836
1112
+ ],
1113
+ "Asia/Harbin" => [
1114
+ 45.80377499999999,
1115
+ 126.534967
1116
+ ],
1117
+ "Asia/Kashgar" => [
1118
+ 39.467685,
1119
+ 75.99378999999999
1120
+ ],
1121
+ "Asia/Dhaka" => [
1122
+ 23.684994,
1123
+ 90.356331
1124
+ ],
1125
+ "Asia/Yakutsk" => [
1126
+ 62.0354523,
1127
+ 129.6754745
1128
+ ],
1129
+ "Asia/Kuala_Lumpur" => [
1130
+ 4.210484,
1131
+ 101.975766
1132
+ ],
1133
+ "Asia/Tehran" => [
1134
+ 32.427908,
1135
+ 53.688046
1136
+ ],
1137
+ "Asia/Beirut" => [
1138
+ 33.854721,
1139
+ 35.862285
1140
+ ],
1141
+ "Asia/Aqtobe" => [
1142
+ 50.2839339,
1143
+ 57.166978
1144
+ ],
1145
+ "Asia/Anadyr" => [
1146
+ 64.7336613,
1147
+ 177.4968265
1148
+ ],
1149
+ "Asia/Bishkek" => [
1150
+ 41.20438,
1151
+ 74.766098
1152
+ ],
1153
+ "Asia/Dubai" => [
1154
+ 23.424076,
1155
+ 53.847818
1156
+ ],
1157
+ "Asia/Riyadh" => [
1158
+ 23.885942,
1159
+ 45.079162
1160
+ ],
1161
+ "Asia/Novokuznetsk" => [
1162
+ 53.7595935,
1163
+ 87.12157049999999
1164
+ ],
1165
+ "Asia/Aqtau" => [
1166
+ 43.6410973,
1167
+ 51.1985113
1168
+ ],
1169
+ "Asia/Omsk" => [
1170
+ 54.9884804,
1171
+ 73.3242361
1172
+ ],
1173
+ "Asia/Sakhalin" => [
1174
+ 50.6909848,
1175
+ 142.9505689
1176
+ ],
1177
+ "Asia/Hong_Kong" => [
1178
+ 22.396428,
1179
+ 114.109497
1180
+ ],
1181
+ "Asia/Phnom_Penh" => [
1182
+ 12.565679,
1183
+ 104.990963
1184
+ ],
1185
+ "Asia/Nicosia" => [
1186
+ 35.126413,
1187
+ 33.429859
1188
+ ],
1189
+ "Asia/Baghdad" => [
1190
+ 33.223191,
1191
+ 43.679291
1192
+ ],
1193
+ "Asia/Srednekolymsk" => [
1194
+ 67.43730699999999,
1195
+ 153.728674
1196
+ ],
1197
+ "Asia/Ashgabat" => [
1198
+ 38.969719,
1199
+ 59.556278
1200
+ ],
1201
+ "Asia/Kathmandu" => [
1202
+ 28.394857,
1203
+ 84.12400799999999
1204
+ ],
1205
+ "Asia/Choibalsan" => [
1206
+ 48.0951271,
1207
+ 114.5356247
1208
+ ],
1209
+ "Asia/Bangkok" => [
1210
+ 15.870032,
1211
+ 100.992541
1212
+ ],
1213
+ "Asia/Novosibirsk" => [
1214
+ 55.00835259999999,
1215
+ 82.9357327
1216
+ ],
1217
+ "Asia/Rangoon" => [
1218
+ 21.916221,
1219
+ 95.955974
1220
+ ],
1221
+ "Asia/Ho_Chi_Minh" => [
1222
+ 14.058324,
1223
+ 108.277199
1224
+ ],
1225
+ "Antarctica/Macquarie" => [
1226
+ -54.62081149999999,
1227
+ 158.855615
1228
+ ],
1229
+ "Europe/Zurich" => [
1230
+ 46.818188,
1231
+ 8.227511999999999
1232
+ ],
1233
+ "Europe/Paris" => [
1234
+ 46.227638,
1235
+ 2.213749
1236
+ ],
1237
+ "Europe/Moscow" => [
1238
+ 55.755826,
1239
+ 37.6172999
1240
+ ],
1241
+ "Europe/Luxembourg" => [
1242
+ 49.815273,
1243
+ 6.129582999999999
1244
+ ],
1245
+ "Europe/Ljubljana" => [
1246
+ 46.151241,
1247
+ 14.995463
1248
+ ],
1249
+ "Europe/Helsinki" => [
1250
+ 61.92410999999999,
1251
+ 25.7481511
1252
+ ],
1253
+ "Europe/Minsk" => [
1254
+ 53.709807,
1255
+ 27.953389
1256
+ ],
1257
+ "Europe/Skopje" => [
1258
+ 41.608635,
1259
+ 21.745275
1260
+ ],
1261
+ "Europe/Dublin" => [
1262
+ 53.1423672,
1263
+ -7.692053599999999
1264
+ ],
1265
+ "Europe/Jersey" => [
1266
+ 49.214439,
1267
+ -2.13125
1268
+ ],
1269
+ "Europe/San_Marino" => [
1270
+ 43.94236,
1271
+ 12.457777
1272
+ ],
1273
+ "Europe/Gibraltar" => [
1274
+ 36.140751,
1275
+ -5.353585
1276
+ ],
1277
+ "Europe/Belgrade" => [
1278
+ 44.016521,
1279
+ 21.005859
1280
+ ],
1281
+ "Europe/Guernsey" => [
1282
+ 49.465691,
1283
+ -2.585278
1284
+ ],
1285
+ "Europe/Ulyanovsk" => [
1286
+ 54.3181598,
1287
+ 48.3837915
1288
+ ],
1289
+ "Europe/Vaduz" => [
1290
+ 47.166,
1291
+ 9.555373
1292
+ ],
1293
+ "Europe/Istanbul" => [
1294
+ 38.963745,
1295
+ 35.243322
1296
+ ],
1297
+ "Europe/Lisbon" => [
1298
+ 39.39987199999999,
1299
+ -8.224454
1300
+ ],
1301
+ "Europe/Uzhgorod" => [
1302
+ 48.6208,
1303
+ 22.287883
1304
+ ],
1305
+ "Europe/Kirov" => [
1306
+ 58.6035321,
1307
+ 49.6667983
1308
+ ],
1309
+ "Europe/Tirane" => [
1310
+ 41.153332,
1311
+ 20.168331
1312
+ ],
1313
+ "Europe/Sarajevo" => [
1314
+ 43.915886,
1315
+ 17.679076
1316
+ ],
1317
+ "Europe/Madrid" => [
1318
+ 40.46366700000001,
1319
+ -3.74922
1320
+ ],
1321
+ "Europe/Podgorica" => [
1322
+ 42.708678,
1323
+ 19.37439
1324
+ ],
1325
+ "Europe/Busingen" => [
1326
+ 47.6969939,
1327
+ 8.6904196
1328
+ ],
1329
+ "Europe/Vatican" => [
1330
+ 41.902916,
1331
+ 12.453389
1332
+ ],
1333
+ "Europe/Bratislava" => [
1334
+ 48.669026,
1335
+ 19.699024
1336
+ ],
1337
+ "Europe/Kiev" => [
1338
+ 48.379433,
1339
+ 31.1655799
1340
+ ],
1341
+ "Europe/Kaliningrad" => [
1342
+ 54.7104264,
1343
+ 20.4522144
1344
+ ],
1345
+ "Europe/Zaporozhye" => [
1346
+ 47.8388,
1347
+ 35.139567
1348
+ ],
1349
+ "Europe/Vienna" => [
1350
+ 47.516231,
1351
+ 14.550072
1352
+ ],
1353
+ "Europe/Budapest" => [
1354
+ 47.162494,
1355
+ 19.5033041
1356
+ ],
1357
+ "Europe/Vilnius" => [
1358
+ 55.169438,
1359
+ 23.881275
1360
+ ],
1361
+ "Europe/Oslo" => [
1362
+ 60.47202399999999,
1363
+ 8.468945999999999
1364
+ ],
1365
+ "Europe/Astrakhan" => [
1366
+ 46.3588045,
1367
+ 48.0599345
1368
+ ],
1369
+ "Europe/Simferopol" => [
1370
+ 44.952117,
1371
+ 34.102417
1372
+ ],
1373
+ "Europe/Volgograd" => [
1374
+ 48.708048,
1375
+ 44.5133035
1376
+ ],
1377
+ "Europe/Isle_of_Man" => [
1378
+ 54.236107,
1379
+ -4.548056
1380
+ ],
1381
+ "Europe/London" => [
1382
+ 55.378051,
1383
+ -3.435973
1384
+ ],
1385
+ "Europe/Riga" => [
1386
+ 56.879635,
1387
+ 24.603189
1388
+ ],
1389
+ "Europe/Andorra" => [
1390
+ 42.506285,
1391
+ 1.521801
1392
+ ],
1393
+ "Europe/Prague" => [
1394
+ 49.81749199999999,
1395
+ 15.472962
1396
+ ],
1397
+ "Europe/Berlin" => [
1398
+ 51.165691,
1399
+ 10.451526
1400
+ ],
1401
+ "Europe/Tallinn" => [
1402
+ 58.595272,
1403
+ 25.0136071
1404
+ ],
1405
+ "Europe/Rome" => [
1406
+ 41.87194,
1407
+ 12.56738
1408
+ ],
1409
+ "Europe/Malta" => [
1410
+ 35.937496,
1411
+ 14.375416
1412
+ ],
1413
+ "Europe/Zagreb" => [
1414
+ 45.1,
1415
+ 15.2000001
1416
+ ],
1417
+ "Europe/Amsterdam" => [
1418
+ 52.132633,
1419
+ 5.291265999999999
1420
+ ],
1421
+ "Europe/Bucharest" => [
1422
+ 45.943161,
1423
+ 24.96676
1424
+ ],
1425
+ "Europe/Copenhagen" => [
1426
+ 56.26392,
1427
+ 9.501785
1428
+ ],
1429
+ "Europe/Chisinau" => [
1430
+ 47.411631,
1431
+ 28.369885
1432
+ ],
1433
+ "Europe/Mariehamn" => [
1434
+ 60.1785247,
1435
+ 19.9156105
1436
+ ],
1437
+ "Europe/Sofia" => [
1438
+ 42.733883,
1439
+ 25.48583
1440
+ ],
1441
+ "Europe/Athens" => [
1442
+ 39.074208,
1443
+ 21.824312
1444
+ ],
1445
+ "Europe/Stockholm" => [
1446
+ 60.12816100000001,
1447
+ 18.643501
1448
+ ],
1449
+ "Europe/Samara" => [
1450
+ 53.2415041,
1451
+ 50.2212463
1452
+ ],
1453
+ "Europe/Brussels" => [
1454
+ 50.503887,
1455
+ 4.469936
1456
+ ],
1457
+ "Europe/Warsaw" => [
1458
+ 51.919438,
1459
+ 19.145136
1460
+ ],
1461
+ "Africa/Sao_Tome" => [
1462
+ 0.18636,
1463
+ 6.613080999999999
1464
+ ],
1465
+ "Africa/Conakry" => [
1466
+ 9.945587,
1467
+ -9.696645
1468
+ ],
1469
+ "Africa/Dakar" => [
1470
+ 14.497401,
1471
+ -14.452362
1472
+ ],
1473
+ "Africa/Ndjamena" => [
1474
+ 15.454166,
1475
+ 18.732207
1476
+ ],
1477
+ "Africa/Casablanca" => [
1478
+ 31.791702,
1479
+ -7.092619999999999
1480
+ ],
1481
+ "Africa/Lome" => [
1482
+ 8.619543,
1483
+ 0.824782
1484
+ ],
1485
+ "Africa/Algiers" => [
1486
+ 28.033886,
1487
+ 1.659626
1488
+ ],
1489
+ "Africa/Mogadishu" => [
1490
+ 5.152149,
1491
+ 46.199616
1492
+ ],
1493
+ "Africa/Lagos" => [
1494
+ 9.081999,
1495
+ 8.675277
1496
+ ],
1497
+ "Africa/Brazzaville" => [
1498
+ -0.228021,
1499
+ 15.827659
1500
+ ],
1501
+ "Africa/Nouakchott" => [
1502
+ 21.00789,
1503
+ -10.940835
1504
+ ],
1505
+ "Africa/Maseru" => [
1506
+ -29.609988,
1507
+ 28.233608
1508
+ ],
1509
+ "Africa/Libreville" => [
1510
+ -0.803689,
1511
+ 11.609444
1512
+ ],
1513
+ "Africa/Harare" => [
1514
+ -19.015438,
1515
+ 29.154857
1516
+ ],
1517
+ "Africa/Malabo" => [
1518
+ 1.650801,
1519
+ 10.267895
1520
+ ],
1521
+ "Africa/Bangui" => [
1522
+ 6.611110999999999,
1523
+ 20.939444
1524
+ ],
1525
+ "Africa/Nairobi" => [
1526
+ -0.023559,
1527
+ 37.906193
1528
+ ],
1529
+ "Africa/Kinshasa" => [
1530
+ -4.4419311,
1531
+ 15.2662931
1532
+ ],
1533
+ "Africa/Porto-Novo" => [
1534
+ 9.30769,
1535
+ 2.315834
1536
+ ],
1537
+ "Africa/Cairo" => [
1538
+ 26.820553,
1539
+ 30.802498
1540
+ ],
1541
+ "Africa/Douala" => [
1542
+ 7.369721999999999,
1543
+ 12.354722
1544
+ ],
1545
+ "Africa/Juba" => [
1546
+ 6.876991899999999,
1547
+ 31.3069788
1548
+ ],
1549
+ "Africa/Gaborone" => [
1550
+ -22.328474,
1551
+ 24.684866
1552
+ ],
1553
+ "Africa/Tunis" => [
1554
+ 33.886917,
1555
+ 9.537499
1556
+ ],
1557
+ "Africa/Kampala" => [
1558
+ 1.373333,
1559
+ 32.290275
1560
+ ],
1561
+ "Africa/Mbabane" => [
1562
+ -26.522503,
1563
+ 31.465866
1564
+ ],
1565
+ "Africa/Addis_Ababa" => [
1566
+ 9.145000000000001,
1567
+ 40.489673
1568
+ ],
1569
+ "Africa/Maputo" => [
1570
+ -18.665695,
1571
+ 35.529562
1572
+ ],
1573
+ "Africa/Bissau" => [
1574
+ 11.803749,
1575
+ -15.180413
1576
+ ],
1577
+ "Africa/Blantyre" => [
1578
+ -13.254308,
1579
+ 34.301525
1580
+ ],
1581
+ "Africa/Niamey" => [
1582
+ 17.607789,
1583
+ 8.081666
1584
+ ],
1585
+ "Africa/Banjul" => [
1586
+ 13.443182,
1587
+ -15.310139
1588
+ ],
1589
+ "Africa/Abidjan" => [
1590
+ 7.539988999999999,
1591
+ -5.547079999999999
1592
+ ],
1593
+ "Africa/Asmara" => [
1594
+ 15.179384,
1595
+ 39.782334
1596
+ ],
1597
+ "Africa/Bamako" => [
1598
+ 17.570692,
1599
+ -3.996166
1600
+ ],
1601
+ "Africa/Ouagadougou" => [
1602
+ 12.238333,
1603
+ -1.561593
1604
+ ],
1605
+ "Africa/Lusaka" => [
1606
+ -13.133897,
1607
+ 27.849332
1608
+ ],
1609
+ "Africa/Luanda" => [
1610
+ -11.202692,
1611
+ 17.873887
1612
+ ],
1613
+ "Africa/Lubumbashi" => [
1614
+ -4.038333,
1615
+ 21.758664
1616
+ ],
1617
+ "Africa/Accra" => [
1618
+ 7.946527,
1619
+ -1.023194
1620
+ ],
1621
+ "Africa/Khartoum" => [
1622
+ 12.862807,
1623
+ 30.217636
1624
+ ],
1625
+ "Africa/Ceuta" => [
1626
+ 35.897395,
1627
+ -5.288314
1628
+ ],
1629
+ "Africa/Bujumbura" => [
1630
+ -3.373056,
1631
+ 29.918886
1632
+ ],
1633
+ "Africa/Windhoek" => [
1634
+ -22.95764,
1635
+ 18.49041
1636
+ ],
1637
+ "Africa/El_Aaiun" => [
1638
+ 24.215527,
1639
+ -12.885834
1640
+ ],
1641
+ "Africa/Tripoli" => [
1642
+ 26.3351,
1643
+ 17.228331
1644
+ ],
1645
+ "Africa/Monrovia" => [
1646
+ 6.428055,
1647
+ -9.429499000000002
1648
+ ],
1649
+ "Africa/Dar_es_Salaam" => [
1650
+ -6.369028,
1651
+ 34.888822
1652
+ ],
1653
+ "Africa/Johannesburg" => [
1654
+ -30.559482,
1655
+ 22.937506
1656
+ ],
1657
+ "Africa/Kigali" => [
1658
+ -1.940278,
1659
+ 29.873888
1660
+ ],
1661
+ "Africa/Djibouti" => [
1662
+ 11.825138,
1663
+ 42.590275
1664
+ ],
1665
+ "Africa/Freetown" => [
1666
+ 8.460555,
1667
+ -11.779889
1668
+ ]
1669
+ }.freeze
1670
+ end